华为云CodeArts Artifact,5大特性守护制品质量与安全
摘要:2023年2月23日,华为云CodeArts Artifact制品仓库服务正式上线,目标进一步赋能企业伙伴与开发者,实现软件作业中可信制品生产与应用活动快速落地,提高软件交付效率与质量。
本文分享自华为云社区《安如泰山 华为云发布制品仓库CodeArts Artifact》,作者:华为云头条。
随着国内外信息化产业快速发展,数字化应用已经深入到人们生活的方方面面,软件研发的规模与复杂度也随之迅速扩大。
在此背景下,开发者们不得不频繁更新软件版本,以应对不同细分领域、不同型号终端所需的功能迭代。在这一过程中,开发的繁琐性以及海量制品存储与版本管理,都为研发团队带来了巨大挑战和沉重成本,也影响了创新的速度。
即使在华为,同样的困扰也并不少见。以华为终端业务为例,每一年,终端产品面对着全球上百个国家和地区、数万个软件商用版本和数百万个过程版本的需求交付,其安全合规和高效协同无疑是一个巨大挑战。
例如,需要解决超大文件的跨区稳定传输,传输速度达到300MB/s,同时具备防丢失篡改的能力;在制品量达30PB、数千万版本迭代的庞大规模下,依旧能保障软件的稳定存储与高效获取。因此稳定高效、安全可靠的制品仓库,是软件研发不可或缺的平台。
2023年2月23日,华为云CodeArts Artifact制品仓库服务将于22:00正式上线,目标进一步赋能企业伙伴与开发者,实现软件作业中可信制品生产与应用活动快速落地,提高软件交付效率与质量。
制品仓库工具是制品管理与可信的最佳选择
在软件研发中,制品仓库用于存放由源码编译生成的、可运行的二进制文件。作为开发的成果性产物,这些二进制文件可运行于服务器上提供服务,或作为进一步集成的编译依赖参与应用构建。
可以说,整个软件研发作业过程与目标的达成,都基于制品的获取、生产、归档、应用而运作。流畅、高效、可靠的制品仓库,是软件开发工具不可或缺的基础。
当前,不少研发组织依旧使用着较为简易并且粗粒度的制品存储(如搭建FTP或者网盘存储等),缺乏智能的制品管理与防护体系,这也为制品的高效使用、版本可信追溯、开源漏洞治理、跨团队协作等带来严峻的困难与挑战,极大地拖延了研发周期并增大了出错几率。
基于华为三十多年的研发经验和数字化转型实践,华为云总结出建设与运用专业制品仓的三大实践创新。
第一,生命周期管理,保证制品安全可靠
软件开发离不开跨组织的协作,这也必然带来代码制品的复杂管理需求。华为公司对供应商或者开源社区引入的制品,构建了一系列完整的管理流程。
首先,制品选型时会进行下载地址验证、软件包的哈希校验、数字签名验证与恶意软件扫描,验证全部通过才能入库到公司级制品中心仓库,保证制品来源安全可信;
其次,定期对中心仓库进行开源漏洞和恶意软件扫描,下线存在严重漏洞的制品,持续保证制品开源安全可靠。需要在开源软件基础上定制开发等场景,新生成的制品包也要重新进行恶意软件扫描、华为哈希值和数字签名生成;
最后,在集成验证和发布阶段,构建在封闭环境中下载验证华为哈希值,发布时生成《开源及第三方软件来源完整性报告》。
基于对开源和第三方软件产品数据及流程的可信管理,华为落地了开源全生命周期运作的机制,实现开源软件的来源、过程、结果可信,消除和防止开源软件的使用风险。
第二:生产存储可信,让协同开发高效敏捷
首先,制品仓作为二进制文件的存储载体,其重要作用是实现制品文件的可信存储,支撑软件开发活动使用。华为公司内部建设了制品中心仓,让所有研发团队可以按需、在权限范围内存储与获取制品,从而提高协作水平。
此外,制品仓具备制品细粒度的生命周期管理,元数据归档关联等能力,便于进行数据治理的同时实现制品可溯源与跟踪,构建可预测和重复。
第三:高效稳定传输,提供极致性能体验
依托制品仓库中心、卫星节点部署,实现就近下载,和华为对网络架构核心技术的积累,在公司内针对远程代理,聚合下载,多种语言(Maven、PyPI、npm等10+种)等场景突破了异地50MB/s、同地域300MB/s的速度,并且保证传输稳定率到达99.99%。
基于以上三大核心实践,通过持续构建安全可信、稳定高效的制品中心仓,实现制品安全可追溯,能应对软件供应链攻击,支撑华为产品和解决方案在170多个国家和地区持续安全稳定运行,赢得全球企业客户信任。
华为云CodeArts Artifact,全面守护制品质量与安全
在华为的数字化转型浪潮中,华为内部制品仓库工具也在不断演进。从最初始的单机存储、到分布式集群制品托管、再到提供制品的完整性保护与供应链的安全保护。
如今,制品仓库已很好地支撑了华为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等),同时提供全面、直观的风险汇总信息,确保客户的服务上线之前能够实时感知开源高危风险,并且能及时修复问题,避免不可估量的损失。

特性三:支持10+种仓库类型,充分满足用户各种使用场景
华为云CodeArts Artifact制品仓库支持Generic、Maven、npm、Go、PyPI、RPM、Debian、Conan、Nuget等10+种主流制品仓库类型,满足嵌入式、WEB应用、移动应用等开发场景所需,可以与本地各构建、部署工具和云上的持续集成、持续部署无缝结合。
华为云CodeArts Artifact也提供制品和元数据的完整性校验能力,支持细粒度控制和按版本的细粒度包锁定权限,保障发布软件测试完整性,全面看护企业制品安全。

特性四:无缝连接第三方仓库,提供统一聚合仓地址,极大提升用户体验和下载性能
针对用户同时使用多个镜像源或制品库的场景,华为云CodeArts Artifact提供仓库聚合能力,允许灵活组合多个代理仓,提供统一制品仓库入口,解决用户找不到制品包的痛点,并简化客户配置。
CodeArts Artifact新增自定义代理仓功能,允许用户创建自定义代理仓库来代理开源社区仓库和三方依赖仓库,通过代理仓下载文件后支持将对应文件缓存到制品仓库,解决用户三方依赖下载慢痛点,实现下载三方依赖和本地仓库一样的极致体验。

特性五:按文件名和checksum搜索,亿级制品包秒级查询与精准定位
华为云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将不断沉淀大型企业制品管理的最佳实践,提升制品生命周期管理、制品安全、制品分发等核心能力,携手国内外客户、伙伴以及开发者,共同提升软件发布质量和效率。
华为云CodeArts Artifact服务已上线
扫描下方二维码立即体验

华为云CodeArts Artifact,5大特性守护制品质量与安全的更多相关文章
- 为测试管理正名,华为云CodeArts TestPlan的守护之道
		摘要:华为云CodeArts TestPlan既有公有云版本,也有下沉到私有云的版本. 本文分享自华为云社区<为测试管理正名,华为云CodeArts TestPlan的守护之道>,作者:云 ... 
- 揭开华为云CodeArts TestPlan启发式测试设计神秘面纱!
		摘要:质量是产品的生死线. 本文分享自华为云社区<揭开华为云CodeArts TestPlan启发式测试设计神秘面纱!>,作者:华为云PaaS服务小智 . 2019年12月20日,是美国波 ... 
- 《一张图看懂华为云BigData Pro鲲鹏大数据解决方案》
		8月27日,华为云重磅发布了业界首个鲲鹏大数据解决方案--BigData Pro.该方案采用基于公有云的存储与计算分离架构,以可无限弹性扩容的鲲鹏算力作为计算资源,以支持原生多协议的OBS对象存储服务 ... 
- 不想业务被中断?快来解锁华为云RDS for MySQL新特性
		摘要:新特性上线!华为云RDS for MySQL又添新技能,实力保障业务连续性. 本文分享自华为云社区<不想业务被中断?快来解锁华为云RDS for MySQL新特性>,作者:Gauss ... 
- 纷繁复杂见真章,华为云产品需求管理利器CodeArts Req解读
		摘要:到底什么是需求?又该如何做好需求管理? 本文分享自华为云社区<纷繁复杂见真章,华为云产品需求管理利器 CodeArts Req 解读>,作者:华为云头条 . 2022 年 8 月,某 ... 
- MySQL 8.0新增特性详解【华为云技术分享】
		版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ... 
- 华为云BigData Pro解读: 鲲鹏云容器助力大数据破茧成蝶
		华为云鲲鹏云容器 见证BigData Pro蝶变之旅大数据之路顺应人类科技的进步而诞生,一直顺风顺水,不到20年时间,已渗透到社会生产和人们生活的方方面面,.然而,伴随着信息量的指数级增长,大数据也开 ... 
- 解密华为云FusionInsight MRS新特性:一架构三湖
		摘要:华为云安全网关产品总监郭冕在"华为云TechWave云原生2.0专题日"上发表<华为云FusionInsight MRS,一个架构实现三种数据湖>的主题演讲,分享 ... 
- 华为云Volcano:让企业AI算力像火山一样爆发
		欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ... 
- “洞察千里”,华为云HiLens如何让无人车智行天下
		作者:华为云 Rosie 随着人工智能的普及和渗透,"无人"的场景越来越丰富,无人超市.无人车.无人机等已经融入我们的生活. 乘着这股热浪,华为云携手上海交通大学学生创新中心举办了 ... 
随机推荐
- 关于linux mint新增加的鼠标样式的示例图片不能正确显示的解决办法
			前言 我相信你在linux mint 做鼠标主题美化的时候一定遇到过这样的问题 没错!!! 下载的鼠标的主题的示例图片不能正确显示,当然这样虽然不影响正常的鼠标主题更换使用,但是对于我这种强迫症来说简 ... 
- -webkit-box-orient:vertical 编译报错之autoprefixer问题
			由于各大浏览器的兼容问题,autoprefixer 插件 就可以帮我们自动补齐前缀.它和 less.scss 这样的预处理器不同,它属于后置处理器. 预处理器:在打包之前进行处理 后置处理器:在代码打 ... 
- Day30.1:Math的常用方法
			Math 1.1 Math概述 Math类在Java.lang包下,不需要导包 public final class Math extends Object Math含有基本的数字运算方法,没有构造器 ... 
- Dart语言简介
			简单介绍Dart语言 Dart是一种针对客户优化的语言,亦可在任何平台上快速开发的应用陈旭. 目标是为多平台开发提供最高效的变成语言,并为应用程序框架搭配了领会的运行时执行平台. Dart特点 Dar ... 
- Java单例模式的最佳实践?
			"读过书,--我便考你一考.茴香豆的茴字,怎样写的?"--鲁迅<孔乙己> 0x00 大纲 目录 0x00 大纲 0x01 前言 0x02 单例的正确性 new关键字 c ... 
- 4.1IDA基础设置--《恶意代码分析实战》
			1.加载一个可执行文件 ① 选项一:当加载一个文件(如PE文件),IDA像操作系统加载器一样将文件映射到内存中. ② 选项三:Binary File:将文件作为一个原始的二进制文件进行反汇编,例如文件 ... 
- Linux 下的输入输出和重定向示例
			Linux 下的输入输出和重定向示例 作者:Grey 原文地址: 博客园:Linux 下的输入输出和重定向示例 CSDN:Linux 下的输入输出和重定向示例 说明 Linux 下的输入输出有如下三种 ... 
- Django静态文件配置(from表单-request对象方法-get请求与post请求-视图函数书写)
			目录 一:静态文件配置 1.静态文件配置 2.什么是静态文件? 3.静态文件的创建 4.解决使用django后端代码修改前端不显示(缓存问题) 5.settings.py 静态文件配置 6.静态文接口 ... 
- Blazor组件自做十三: 使用 Video.js 在 Blazor 中播放视频
			Video.js 是一个具有大量功能的流行的视频和音频 JavaScript 库,今天我们试试集成到 Blazor . Blazor VideoPlayer 视频播放器 组件 示例 https://b ... 
- 关于jQuery的操作
			jQuery简介 简化了JS  类似于 后端 JDBC(操作数据库的基本API) dbutils(封装JDBC) xxx.jar 前端 JS ... 
