一分钟带你了解Artifactory

什么是二进制软件制品仓库

软件制品是指可在服务器上直接运行的二进制形式的文件,通常称之为二进制软件制品。 不同开发语言所产生的制品的获取、使用、共享方式不同,二进制制品仓库能够统一管理所有开发语言类型的二进制制品,同时无缝对接现有的标准化构建和发布工具。

于 JFrog Artifactory

JFrog Artifactory 企业通用制品库,支持所有开发语言,是整个 DevOps 流水线中所有软件包、容器映像和 Helm 图表的单一数据源。被 Amazon、Google、Netflix、Uber、VMware、Facebook 和 Spotify 使用。 Artifactory 对元数据和资产具有丰富的可见性,可以自动化您的开发生命周期,是在当今 DevSecOps 环境中提高开发速度的完美解决方案。

 

JFrog Artifactory 核心能力:

Artifactory 仓库类型

Artifactory 仓库主要有四种类型,远程仓库、本地仓库、虚拟仓库及分发仓库,分别应用在如下不同的场景:

远程仓库

Artifactory 仓库支持代理公网或内网二进制软件制品仓库(Artifactory, Nexus,Harbor等),按需获取后在本地进行缓存,可大幅度提升构建效率。

本地仓库

Artifactory 本地仓库用来存储本地构建产出的软件制品。本地仓库中的软件制品通常都带有丰富的元数据,并且通过基于角色的访问控制(RBAC)实现资源隔离。

虚拟仓库

为满足制品管理的多团队协作需求,虚拟仓库通过打包任意数量的远程仓库和本地仓库,暴露唯一的访问入口的方式,将制品提供者和消费者之间的耦合度降到最低,提升协作效率。

分发仓库

分发仓库通过JFrog Bintray SaaS服务满足软件制品公网分发的需求,提供默认的全球CDN加速服务。

 

• 企业软件制品资产管理

软件制品天然具有高度复用性的属性,在进行新项目开发的初始阶段,都会考虑充分使用已有的软件研发成果。随着软件资产的规模快速增长、时间的流逝及管理人员变换,软件制品的元数据变得越来越不可追溯,导致大量软件资产不可重用。

 

元数据管理通过给二进制制品加标签的方式,记录软件制品产生的需求、测试类型及结果、开源协议、性能表现、设计及API文档等关键数据,确保软件制品资产属性的完整性,并且保证在制品分发、升级过程中,元数据不会丢失,从而最大限度地提升软件资产复用程度。

 

• 软件发布流程管控

软件交付涉及的环节、人员众多,每个角色和阶段都会对制品进行相应的测试,测试结果往往存放在测试工具或相关负责人手中。在进入下一个阶段时,需要确认之前各阶段是否按照既定的标准完成相应的任务。尤其是在外包团队交付软件最终构建包给企业内部的时候,这种问题变得更加突出,反复沟通的场景在所难免。

 

如果把每个阶段执行的任务和结果都作为元数据记录在软件制品上,然后在各个交付阶段之间设置准入关卡,就可以通过系统自动化的方式解决各个阶段准入准出的合规性问题,从而降低大量的沟通成本,并且对于交付过程有很好的可追溯性,比如哪个阶段最耗时,哪个阶段经常容易出问题以及交付质量的变化趋势。

 

• Artifactory 依赖解析

传统制品仓库无法管理构建过程,因此对构建过程中的依赖也无法统一管理,但架构师、安全负责人对于制品依赖必须有清晰的了解。开发人员经常要确认自己开发的内容是否被正确打包并部署到测试环境中,这时候也需要对二进制制品的所有内容有一个清晰的视图。

 

Artifactory 将构建任务、构建历史及依赖信息有条理地管理起来,方便架构师在微服务拆分时,对正反向依赖进行追踪,安全负责人清晰地了解安全威胁传递的路径、影响范围(项目、团队、产品)等信息,为管理人员提供深度的洞察力。

 

 

• 高可用架构

Artifactory 支持多活节点模式部署,通过负载均衡提供服务,后端通过共享存储和数据库保证数据一致性。对于本地存储、NFS和S3存储都有很好的支持,数据库可选择常用的Mysql, MSSQL及Oracle,理想情况下并发可以打满网卡流量。

 

 

• 多数据中心分发

Artifactory 支持在跨地多数据中心之间分发二进制制品,于此同时,还默认提供元数据、统计信息(下载量等)的同步分发,有效提升多研发中心之间协同能力。比如,著名汽车品牌奔驰通过分发能力,解决了在印度、北美、德国不同国家之间的构建依赖传输效率问题。