您的位置:首页>资讯 >

JFrog帮助制造业企业管理超大制品包实现全球分发

2021-10-19 14:07:09    来源:榕城网
图片 2.JPG

随着车企、手机厂商、家电等制造企业业务的快速发展,软件应用开发规模也随之不断扩大。不同类型的交付制品的管理也成为DevOps落地的一大难题。制品分散管理,存储随意,下载困难,分发缓慢等现象长期受到产线用户挑战,急需快速解决。经过业务场景分析及用户调研后,总结为以下通用问题:

痛点

1,制品存量大

制品达到PB级别,分散存储到S3及EMC存储上,管理分散,浪费存储,并且数据量在成倍增长。

没有合理的制品清理机制,导致过多无效存储

2,制品质量缺失

制品无质量标签,筛选版本复杂,增加迭代时间,测试人员经常下错版本,浪费时间

制品无版本概念,经常出现制品覆盖现象,最终导致发布失败

3,制品分发复杂

由于存量过大,国内多地研发中心、海外研发中心同步制品不可行,多地传输浪费带宽

制品无统一管理,分散到不同团队,不同集群上,不便于数据资产梳理

制品往往需要分发到不同的工厂、合作伙伴、售后站及IoT终端,场景复杂

4,制品下载缓慢

单文件最大达到100G+,下载时经常出现丢包、中断等现象,用户体验极差,浪费时间

解决方案

1,解决性能瓶颈

在下述部署条件下进行性能测试,得到了一份超级满意的测试报告,在极端数据读写的压力下,6节点Artifactory的每小时吞吐量达到了10TB级别,目前基本可以承载国内所有软件研发企业制品的吞吐量,具体测试报告可以联系JFrog的工程蛙们了解测试细节。

图片 5.JPG

2,解决制品大批量下载问题

JFrog提供高性能下载工具jfrog cli,可实现分片、多线程、断点续传等下载方式,基本可以打满网络带宽

JFrog在服务端提供cache技术,可实现有ssd磁盘缓存热文件策略,如缓存空间大,可缓存所有热文件,提升下载速度

由于服务端网络端口依然存在瓶颈,可使用p2p技术进行分流,提升下载速度3-4倍

图片 6.JPG

3,异地分发能力

私有化部署+Saas服务,实现制品库多云多数据中心混合架构,通过仓库联邦及高速分发两种策略,链接世界所有节点,实现制品分发

图片 7.JPG

用户案例

某手机厂商案例

1,某手机厂商,使用JFrog Artifactory 6个节点,架构设计如下:

图片 1.JPG

承载业务量:

接管整机构建daily及Release项目50个,每月420T整机制品包,目前共存储4PB+数据

接管组件构建项目11000个,每周组件个数231000,150T组件包,目前共存储1PB+数据

每小时上传流量接近3TB,下载流量接近2TB

峰值上传流量15G/S,下载流量5G/S

制品库存储总量达到了6PB

2,解决质量缺失

通过JFrog Artifactory的元数据及AQL功能,确保每个制品均具备10条以上的质量数据标签,实现开发与测试之间零沟通,使版本具备自动化筛选能力,避免下错版本,浪费时间。

具体实现为,开发团队构建制品版本,并将过程数据、需求数据、测试数据、匹配机型数据等自动补全在制品的元数据属性中,如未携带此数据,则无法成功上传。测试人员在使用制品进行烧机测试时,则通过自动化脚本,自动筛选符合自己机型并具备一定质量属性的制品,自动测试,整个版本筛选过程无需人与人的沟通,一切自动化完成,提高效率,避免出错。

图片 3.JPG

通过此项改进,获取了如下收益:

打造制品可信平台,确保所有交付组件包携带质量元数据,便于快速定位版本

制品清理机制,定期实现制品清理

3,解决制品分发

在此方案架构下,为了统一管理集团所有产线制品,后期将制品分布在5个Artifactory集群中管理,其中app应用使用一个物理集群,不同产线整机版本各使用一个集群,私服及Docker镜像使用一个集群。由前段CI工具统一控制制品写入位置及读取位置。另外在成都、重庆、上海分中心建立只读集群、实现制品快速分发,多地可读。同时在印度、印尼、孟加拉、阿尔及利亚等地工厂建立只读集群,按需分发制品到工厂。

为了优化下载速度,该方案中使用了JFrog Artifactory的p2p下载功能,在不同地域的分厂中没有设置只读节点,而是使用p2p的peer节点,节约成本,加速下载。整体制品库架构如下:

图片 4.JPG

关键词: 实现 全球 分发

相关阅读