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


中华网|JFrog帮助制造业企业管理超大制品包实现全球分发
图片
随着车企、手机厂商、家电等制造企业业务的快速发展 , 软件应用开发规模也随之不断扩大 。 不同类型的交付制品的管理也成为DevOps落地的一大难题 。 制品分散管理 , 存储随意 , 下载困难 , 分发缓慢等现象长期受到产线用户挑战 , 急需快速解决 。 经过业务场景分析及用户调研后 , 总结为以下通用问题:
痛点
1 , 制品存量大
制品达到PB级别 , 分散存储到S3及EMC存储上 , 管理分散 , 浪费存储 , 并且数据量在成倍增长 。
没有合理的制品清理机制 , 导致过多无效存储
2 , 制品质量缺失
制品无质量标签 , 筛选版本复杂 , 增加迭代时间 , 测试人员经常下错版本 , 浪费时间
制品无版本概念 , 经常出现制品覆盖现象 , 最终导致发布失败
3 , 制品分发复杂
由于存量过大 , 国内多地研发中心、海外研发中心同步制品不可行 , 多地传输浪费带宽
制品无统一管理 , 分散到不同团队 , 不同集群上 , 不便于数据资产梳理
制品往往需要分发到不同的工厂、合作伙伴、售后站及IoT终端 , 场景复杂
4 , 制品下载缓慢
单文件最大达到100G+ , 下载时经常出现丢包、中断等现象 , 用户体验极差 , 浪费时间
解决方案
1 , 解决性能瓶颈
在下述部署条件下进行性能测试 , 得到了一份超级满意的测试报告 , 在极端数据读写的压力下 , 6节点Artifactory的每小时吞吐量达到了10TB级别 , 目前基本可以承载国内所有软件研发企业制品的吞吐量 , 具体测试报告可以联系JFrog的工程蛙们了解测试细节 。

中华网|JFrog帮助制造业企业管理超大制品包实现全球分发
图片
2 , 解决制品大批量下载问题
JFrog提供高性能下载工具jfrog cli , 可实现分片、多线程、断点续传等下载方式 , 基本可以打满网络带宽
JFrog在服务端提供cache技术 , 可实现有ssd磁盘缓存热文件策略 , 如缓存空间大 , 可缓存所有热文件 , 提升下载速度
由于服务端网络端口依然存在瓶颈 , 可使用p2p技术进行分流 , 提升下载速度3-4倍

中华网|JFrog帮助制造业企业管理超大制品包实现全球分发
图片
3 , 异地分发能力
私有化部署+Saas服务 , 实现制品库多云多数据中心混合架构 , 通过仓库联邦及高速分发两种策略 , 链接世界所有节点 , 实现制品分发

中华网|JFrog帮助制造业企业管理超大制品包实现全球分发
图片
用户案例
某手机厂商案例
1 , 某手机厂商 , 使用JFrog Artifactory 6个节点 , 架构设计如下:

中华网|JFrog帮助制造业企业管理超大制品包实现全球分发
图片
承载业务量:
接管整机构建daily及Release项目50个 , 每月420T整机制品包 , 目前共存储4PB+数据
接管组件构建项目11000个 , 每周组件个数231000 , 150T组件包 , 目前共存储1PB+数据
每小时上传流量接近3TB , 下载流量接近2TB
峰值上传流量15G/S , 下载流量5G/S
制品库存储总量达到了6PB
2 , 解决质量缺失
通过JFrog Artifactory的元数据及AQL功能 , 确保每个制品均具备10条以上的质量数据标签 , 实现开发与测试之间零沟通 , 使版本具备自动化筛选能力 , 避免下错版本 , 浪费时间 。
具体实现为 , 开发团队构建制品版本 , 并将过程数据、需求数据、测试数据、匹配机型数据等自动补全在制品的元数据属性中 , 如未携带此数据 , 则无法成功上传 。 测试人员在使用制品进行烧机测试时 , 则通过自动化脚本 , 自动筛选符合自己机型并具备一定质量属性的制品 , 自动测试 , 整个版本筛选过程无需人与人的沟通 , 一切自动化完成 , 提高效率 , 避免出错 。

中华网|JFrog帮助制造业企业管理超大制品包实现全球分发
图片
通过此项改进 , 获取了如下收益:
打造制品可信平台 , 确保所有交付组件包携带质量元数据 , 便于快速定位版本
制品清理机制 , 定期实现制品清理
3 , 解决制品分发
在此方案架构下 , 为了统一管理集团所有产线制品 , 后期将制品分布在5个Artifactory集群中管理 , 其中app应用使用一个物理集群 , 不同产线整机版本各使用一个集群 , 私服及Docker镜像使用一个集群 。 由前段CI工具统一控制制品写入位置及读取位置 。 另外在成都、重庆、上海分中心建立只读集群、实现制品快速分发 , 多地可读 。 同时在印度、印尼、孟加拉、阿尔及利亚等地工厂建立只读集群 , 按需分发制品到工厂 。