HERE 使用 AWS EF 和 JFrog Artifactory 打造百万级工件 CI&CD

本篇文章是根据 AWS 发布在 Youtube 上的视频资料翻译并整理而来,介绍的是 AWS re:Invent 2017大会上分享的 HERE Technology 使用 AWS EF 和 JFrog Artifactory 打造百万级工件 CI&CD 系统,支持数千活跃开发者的案例。 本次主讲人有三位,分别是 Suresh Prem(HERE principal system engineer),Yoav Landman(JFrog CTO、Co-Founder)和 Yong Kim(AWS Storage Business Development)。

AWS 存储和 EF 概览

AWS EF 是涵盖了块存储、文件存储和对象存储的托管云存储服务,全称是 AWS Elatic File System(https://aws.amazon.com/efs/)。

AWS EF 主要特点是高可用、低延迟和成本低廉(相对于在 AWS 上 DIY 存储方案),众多行业领军企业都采用了 AWS EF 的存储方案,这些企业包括 Netflix、GE、Atlassian 等等。

JFrog Artifactory

JFrog Artifactory 是全球领先的企业级二进制制品管理解决方案,包括谷歌、苹果、思科、甲骨文等等众多行业标杆企业都是其付费用户。二进制制品作为软件研发的成果,会被部署到生产环境,最终提供服务给用户,所以,这些制品应该被很好地管理起来。

随着 DevOps 潮流的到来,二进制制品的量呈爆炸式增长,对存储也提出了很多的要求。挑战不只是存储这些二进制文件,还包括如何在文件管理层提供 API,如何提供各种语言的仓库,甚至还包括一些自动化流程的等等。Artifactory 本身能够支持从源代码到部署环境的自动化流程,自动化的普及更加速了二进制的产生速率。

在这个过程中,Xray 负责对二进制进行漏洞扫描,而 Bintray 负责二进制的分发,Mission Control 负责整个流程的控制和管理,核心作用是确保整个流程更顺畅,这些产品协作起来就构成了一条从源代码到 Kubernetes 的流水线。随着流水线越来越成熟,软件供应链会逐渐建立起来,软件会像管道中的流水一样流动起来。整个软件的交付流程会越来越快,交付效率也会大幅度提升,这正是 DevOps 所追求的。

当然,Artifactory 也支持在 AWS 云环境中部署,所以,用户可以使用 JFrog 部署在 AWS 上的 Artifactory,也可以在自己私有的 AWS 资源中部署。

Artifactory 目前支持了几乎所有开发语言仓库,因此使用 Artifactory 的开发者数量非常庞大。据统计有超过5万开发者在使用,性能上可以支持超过1.5万次每秒的并发请求,每天有超过 10TB 的数据在系统中流转。Artifactory 支持高度自定义的元数据,可以记录 DevOps 整个生命周期的信息,因此可以将其作为"DevOps 数据库"来使用。另外,Artifactory 通常以集群模式提供服务,支持随时扩容和缩容,具有良好的"弹性"。

Artifactory 中的二进制文件基于 CheckSum 码进行存储,具有相同的 CheckSum 编码的文件只存储一份,因此大幅度提升了存储资源的使用率,有效减低了存储成本。在仓库复制的时候,也只会复制增量的部分,提升转储效率,也更方便垃圾回收。

面对各种异构的存储类型,Artifactory 提供了可扩展的存储架构,方便对接企业已有的存储资源,于此同时增加了缓存机制,从而进一步提升整体性能。整体架构如下图所示:

下面给出了一个配置的示例。

这个示例里面提供了多种的 BinaryProvider,组成一个复杂的配置结构,每一份数据有2个实例互为冗余作为备份。

Aritfactory 另一个非常重要的特性就是复制,支持跨地域的多实例间复制,满足异地协同开发的需求,也可作为灾备方案,如下图所示:

实例和实例之间复制可支持 Push 和 Pull 另种模式,支持事件驱动和定时执行等方式。

以上这些特性基本构成了整个流水线,这个流水线比传统我们所理解的 CI&CD 流水线更宏观,是整个组织结构级别,当然其影响对于多地域协同的组织也是非常显著的。随着各种自动化工具的完善,这个流程运转将更加流畅,自动化使得开发人员更多,而运维人数迅速下降,但每个人的能力会得到很大提升。

案例分享

HERE Technology 是一家提供基于位置服务(LBS)的公司,服务场景主要包括无人机导航,车载导航,地图服务等等。

HERE 已经有大量的用户,这些用户包括具体的人、汽车、地图应用等等,公司在超过56个国家拥有超过7000名员工。公司有超过30年的位置信息服务的经验,详情如下;

HERE Technology 一直采取云优先(Cloud First)的策略,那么整个公司的产品研发也自然基于云端来完成。公司是 AWS 客户,同时8年以来一直是 AWS 的合作伙伴。如此庞大的跨国研发团队是如何协作呢?他们采用了在 AWS 上部署 JFrog Artifactory 的方式。

通过 Artifactory 托管 NPM、YUM 和 Docker 等仓库,同时将 Artifactory 与其他的一些工具结合,实现了端到端的生产环境自动化部署方案。三个实例同时提供服务,通过负载均衡器分分流,确保集群的高可用。

之前采用 AWS EBS 服务作为存储,后来切换成 EFS,但总体架构并没有改变,在多个 Region 之间进行复制,以满足容灾备份的需求,具体架构如下:

由于 EFS 性能比 EBS 更优,整个方案的能力也大幅提升,目前托管了超过300个仓库,有120多万工件存储在 Artifactory 中,整个工件存储量达到21TB,值得注意的是,虽然系统如此庞大,依然能够提供99.5%的服务水平。从监控数据可以看到,整个系统的吞吐量水平达到2.8GB/s, 每天的上传和下载量也是非常可观。

总结

HERE 科技作为一家一直专注在位置服务的技术公司,一直追逐最先进的技术和最高的效率。在云优先的策略的驱动下,采用了基于 AWS+Artifactory 作为云端 DevOps 方案,实现了端到端的自动化解决方案的同时,也大幅度提升了公司的研发能力。其工件规模达到百万级别,且数千研发人员分布全球多地,对于众多希望落地 DevOps 的公司来说,是一个很值得借鉴的案例。

作者:付辉,JFrog 资深工程师

欢迎转载,但转载请注明作者与出处。谢谢!

HERE 使用 AWS EF 和 JFrog Artifactory 打造百万级工件 CI&CD

原文地址:http://blog.51cto.com/jfrogchina/2083038

时间: 2024-08-13 19:34:55

HERE 使用 AWS EF 和 JFrog Artifactory 打造百万级工件 CI&CD的相关文章

用Mochiweb打造百万级Comet应用(一)

原文:A Million-user Comet Application with Mochiweb, Part 1 参考资料:Comet--基于 HTTP 长连接.无须在浏览器端安装插件的“服务器推”技术为“Comet” MochiWeb--建立轻量级HTTP服务器的Erlang库 在这个系列中,我将详述我所发现的mochiweb是怎样支持那么巨大的网络连接的,为大家展示怎样用mochiweb构建一个comet应用,这个应用中每个mochiweb连接都被注册到负责为不同用户派送消息的路由器上.最

用Mochiweb打造百万级Comet应用(二)

原文:A Million-user Comet Application with Mochiweb, Part 2 参考资料:Comet--基于 HTTP 长连接.无须在浏览器端安装插件的“服务器推”技术为“Comet” MochiWeb--建立轻量级HTTP服务器的Erlang库 在第一部分 , 我们构建了一个每10秒向客户端发送一条消息的mochiweb comet应用(没什么用处).我们微调了一下linux内核,做了一个能够建立大量网络连接以测试应用性能和所耗内存的工具 .我们发现每个连接

jfrog artifactory jenkins pipeline 集成

1. 预备环境 artifactory ( 开源版本 ) maven jenkins jenkins artifactory plugin (在插件管理安装即可) 2. 配置artifactory a. maven local 仓库 b. jenkins 配置(添加 artifactory 账户信息) 3.  jenkins  pipeline 配置(实例使用github 实例) jenkinsfile 内容如下: node("docker-64") { def server = Ar

在Kubernetes集群上部署和管理JFrog Artifactory

JFrog Artifactory是一个artifacts仓库管理平台,它支持所有的主流打包格式.构建工具和持续集成(CI)服务器.它将所有二进制内容保存在一个单一位置并提供一个接口,这使得用户在整个应用程序开发和交付过程中,能更易于上传.查找和使用二进制文件. 在本文中我们将介绍如何使用Rancher在Kubernetes集群上部署和管理JFrog Artifactory.在看完本文后,你将会系统地了解JFrog Artifactory OSS的安装设置,并且能够按照同样的步骤在任何Kuber

Maven仓库从Nexus迁移到JFrog Artifactory踩坑

 1.概述 部门内用Nexus搭建Maven仓库,仓库中除了有配置阿里云仓库代理和中央仓库代理,也有部门自己封装的crmd平台jar包. 总体依赖传递为 spring-boot(官方) --> base-parent(crmd平台包) --> platform-parent(crmd平台包) --> app-parent(crmd平台包) --> 应用代码,平台的jar包在中间做了一些封装和优化,比如统一spring boot等版本号,部门所有的应用的引用的spring boot版

为什么5000+企业放弃Sonatype,选择JFrog Artifactory

一.背景 制品,artifact,也称为工件,是指在构建或持续集成过程中从源码创建而成的二进制包,而这些二进制包通常是通过赋予其的版本号来唯一定位和管理的.制品仓库,artifact repository,则是存储和管理这些版本化的二进制包,并对外提供检索和访问方法的应用程序. 制品仓库通常分为中央仓库.企业仓库和本地仓库.中央仓库面向公众开放,存储和管理预先构建好的二进制包,通常提供软件开发的各种公共框架和通用工具库,如面向Java的Maven中央仓库,面向Docker镜像的DockerHub

“匿名聊聊”作者谈如何打造现象级爆款小程序

前段时间小程序“匿名聊聊”刷爆了朋友圈,可惜后面被屏蔽了.作为第一款现象级呈现爆炸级传播的小程序它是如何做到的呢?我们就跟随“匿名聊聊”作者来聊聊如何打造现象级爆款小程序. 作为第一款现象级呈现爆炸级传播的小程序,“匿名聊聊”背后的公司:朋友印象是一家深耕社交产品的公司,创始人栗浩洋和魏志成两人都公开表示,这次的“匿名聊聊”是扔出的一个问路的石子,真正的生化武器和核弹还在后面. 被寄予厚望的小程序自今年1月上线以来,一直表现的冷冷清清.流量入口没有优先级的倾斜,用户获取提供的也是模糊搜索,即便微

基于Saltstack、Artifactory打造传统模式下持续部署平台

一. 持续部署 1. 现状 由于没有建立标准的持续部署流程,导致了版本管理混乱,制品管理混乱,上线持续时间长,上线测试覆盖不全面,业务流量上升后故障较多,排查复杂.运维.测试.开发人员每次版本迭代的时候,都要可能需要经历一次通宵的历练,并且这种在上线的第二天依然会出现很多线上故障. 2. 痛点 ·自动化发布体系覆盖率低.·无标准化发布的流程.a) 只注重敏捷.忽视质量问题:b) 变更频繁导致故障率增加:c) 开发语言种类多,发布制品管理混乱,发布方式复杂:·安全问题容易被忽视. 二. 工具介绍

jfrog artifactory docker 安装试用

预备环境(docker 安装模式,使用的免费版本): docker-ce (启用镜像加速) 1. 镜像拉取 docker.bintray.io/jfrog/artifactory-oss 2. 启动 docker run -d -p 8081:8081 docker.bintray.io/jfrog/artifactory-oss 3.  界面 4. 总结 免费版本功能还是不错的,只是部分npm bower 的功能待发现(免费版本是否支持),还有就是进行jenkins 的集成, 目前官方提供了对