随着国内外信息化产业快速发展,数字化应用已经深入到人们生活的方方面面,软件研发的规模与复杂度也随之迅速扩大。
在此背景下,开发者们不得不频繁更新软件版本,以应对不同细分领域、不同型号终端所需的功能迭代。在这一过程中,开发的繁琐性以及海量制品存储与版本管理,都为研发团队带来了巨大挑战和沉重成本,也影响了创新的速度。
即使在华为,同样的困扰也并不少见。以华为终端业务为例,每一年,终端产品面对着全球上百个国家和地区、数万个软件商用版本和数百万个过程版本的需求交付,其安全合规和高效协同无疑是一个巨大挑战。
例如,需要解决超大文件的跨区稳定传输,传输速度达到300MB/s,同时具备防丢失篡改的能力;在制品量达30PB、数千万版本迭代的庞大规模下,依旧能保障软件的稳定存储与高效获取。因此稳定高效、安全可靠的制品仓库,是软件研发不可或缺的平台。
2023年2月23日,华为云CodeArts Artifact制品仓库服务将于22:00正式上线,目标进一步赋能企业伙伴与开发者,实现软件作业中可信制品生产与应用活动快速落地,提高软件交付效率与质量。
在软件研发中,制品仓库用于存放由源码编译生成的、可运行的二进制文件。作为开发的成果性产物,这些二进制文件可运行于服务器上提供服务,或作为进一步集成的编译依赖参与应用构建。
可以说,整个软件研发作业过程与目标的达成,都基于制品的获取、生产、归档、应用而运作。流畅、高效、可靠的制品仓库,是软件开发工具不可或缺的基础。
当前,不少研发组织依旧使用着较为简易并且粗粒度的制品存储(如搭建FTP或者网盘存储等),缺乏智能的制品管理与防护体系,这也为制品的高效使用、版本可信追溯、开源漏洞治理、跨团队协作等带来严峻的困难与挑战,极大地拖延了研发周期并增大了出错几率。
基于华为三十多年的研发经验和数字化转型实践,华为云总结出建设与运用专业制品仓的三大实践创新。
软件开发离不开跨组织的协作,这也必然带来代码制品的复杂管理需求。华为公司对供应商或者开源社区引入的制品,构建了一系列完整的管理流程。
首先,制品选型时会进行下载地址验证、软件包的哈希校验、数字签名验证与恶意软件扫描,验证全部通过才能入库到公司级制品中心仓库,保证制品来源安全可信;
其次,定期对中心仓库进行开源漏洞和恶意软件扫描,下线存在严重漏洞的制品,持续保证制品开源安全可靠。需要在开源软件基础上定制开发等场景,新生成的制品包也要重新进行恶意软件扫描、华为哈希值和数字签名生成;
最后,在集成验证和发布阶段,构建在封闭环境中下载验证华为哈希值,发布时生成《开源及第三方软件来源完整性报告》。
基于对开源和第三方软件产品数据及流程的可信管理,华为落地了开源全生命周期运作的机制,实现开源软件的来源、过程、结果可信,消除和防止开源软件的使用风险。
首先,制品仓作为二进制文件的存储载体,其重要作用是实现制品文件的可信存储,支撑软件开发活动使用。华为公司内部建设了制品中心仓,让所有研发团队可以按需、在权限范围内存储与获取制品,从而提高协作水平。
此外,制品仓具备制品细粒度的生命周期管理,元数据归档关联等能力,便于进行数据治理的同时实现制品可溯源与跟踪,构建可预测和重复。
依托制品仓库中心、卫星节点部署,实现就近下载,和华为对网络架构核心技术的积累,在公司内针对远程代理,聚合下载,多种语言(Maven、PyPI、npm等10+种)等场景突破了异地50MB/s、同地域300MB/s的速度,并且保证传输稳定率到达99.99%。
基于以上三大核心实践,通过持续构建安全可信、稳定高效的制品中心仓,实现制品安全可追溯,能应对软件供应链攻击,支撑华为产品和解决方案在170多个国家和地区持续安全稳定运行,赢得全球企业客户信任。
在华为的数字化转型浪潮中,华为内部制品仓库工具也在不断演进。从最初始的单机存储、到分布式集群制品托管、再到提供制品的完整性保护与供应链的安全保护。
如今,制品仓库已很好地支撑了华为ICT、云计算、终端、汽车等各个业务的高速发展,保证软件制品能在大规模、跨地域、高复杂的全球海量市场中安全、快速交付。
目前,华为云CodeArts Artifact已经高效支撑华为超过15万用户可信中心仓服务,管理超过20亿制品包、70PB+的制品文件,日均上传下载次数超过20亿,同地域100GB版本包5分钟下载完毕。
具体来看,华为云CodeArts Artifact能力体现在如下五个方面:
华为云CodeArts Artifact制品仓库,基于云原生架构自研,解决外界不可控因素导致的业务连续性问题。
在安全性方面:华为云CodeArts Artifact提供多维度、细粒度的权限控制,支持企业内不同角色对制品仓库访问控制的诉求。制品仓库存储采用物理隔离存储方式,减少恶意盗取制品风险,同时提供记录用户操作功能,保证操作可追溯。
在可靠性方面:华为云CodeArts Artifact支持双AZ容灾和跨地域容灾、API限流与降级、服务依赖和隔离、实现服务故障自探测以及99.99%的SLA保证。
在性能方面:华为云CodeArts Artifact提供热点文件缓存加速,增量上传下载,大小文件充分利用缓存加速优势,极速传输,提升用户构建速度,突破底层存储带宽限制,实现同地域高速并发传输,对比开源同类产品超过5倍的上传和超过10倍的下载性能提升。
近年来,开源软件供应链安全事件频发,各行业对供应安全解决方案有强烈诉求。例如,全球知名开源日志组件Apache Log4j被曝存在严重漏洞,利用门槛极低,但是造成危害极其严重。
华为云CodeArts Artifact制品安全扫描是通过特征匹配的方式,分析制品包中的开源软件及版本,然后通过漏洞库匹配的方式进行开源漏洞检测。
漏洞库会实时同步NVD、CNVD、CNNVD等的漏洞数据,并且有专业团队负责漏洞检测技术的更新开发,不断提升服务的检测能力和检测效率;
制品安全扫描能覆盖主流编程语言(C/C++、Java、Go、Python、JavaScript等),同时提供全面、直观的风险汇总信息,确保客户的服务上线之前能够实时感知开源高危风险,并且能及时修复问题,避免不可估量的损失。
华为云CodeArts Artifact制品仓库支持Generic、Maven、npm、Go、PyPI、RPM、Debian、Conan、Nuget等10+种主流制品仓库类型,满足嵌入式、WEB应用、移动应用等开发场景所需,可以与本地各构建、部署工具和云上的持续集成、持续部署无缝结合。
华为云CodeArts Artifact也提供制品和元数据的完整性校验能力,支持细粒度控制和按版本的细粒度包锁定权限,保障发布软件测试完整性,全面看护企业制品安全。
针对用户同时使用多个镜像源或制品库的场景,华为云CodeArts Artifact提供仓库聚合能力,允许灵活组合多个代理仓,提供统一制品仓库入口,解决用户找不到制品包的痛点,并简化客户配置。
CodeArts Artifact新增自定义代理仓功能,允许用户创建自定义代理仓库来代理开源社区仓库和三方依赖仓库,通过代理仓下载文件后支持将对应文件缓存到制品仓库,解决用户三方依赖下载慢痛点,实现下载三方依赖和本地仓库一样的极致体验。
华为云CodeArts Artifact具备强大的搜索能力,依托于华为数据引擎检索能力,支持内部研发近百亿制品文件的多维度的快速搜索。
CodeArts Artifact当前覆盖Maven、npm、Go、PyPI、RPM、Debian、Conan、Nuget多种制品类型,用户可以通过文件名称或HASH信息(MD5、SHA1、SHA256、SHA512等四种类型),实现秒级检索定位。
以此为基础,CodeArts Artifact也演进出上亿级别的元数据和SBOM的高效关联查询,以便对制品文件进行快速溯源,对比开源同类产品搜索性能提升超过20倍。
基于以上五大特性,华为云CodeArts Artifact丰富了常用语言的制品库管理,实现制品开源合规扫描、制品生命周期管理、高效查看和搜索、自定义代理仓库和聚合仓,持续为客户提供全面、高效、可信的制品管理。
得益于以上特性,华为云CodeArts Artifact支撑了华为各个领域的业务软件研发流程变革。
例如,CodeArts Artifact制品仓库帮助无线、终端产品线提升研发团队协作,将制品获取与共享时间耗时缩短20%,识别并且释放50%重复、过期冗余空间。同时CodeArts Artifact制品仓库实现归档,杀毒,溯源,分发等流程的一体化集成,使整个版本管理全流程耗时缩短40%。
展望未来,华为云CodeArts Artifact将不断沉淀大型企业制品管理的最佳实践,提升制品生命周期管理、制品安全、制品分发等核心能力,携手国内外客户、伙伴以及开发者,共同提升软件发布质量和效率。
关注@华为云,了解更多资讯