Artifactory与其他二进制存储库管理器的比较
执行概要
的好处使用二进制存储库管理器在您的软件开发管道中是无可争辩的。对远程工件的可靠和一致的访问、与构建环境的集成、工件的分发和存储库的复制只是其中几个原因。目前市场上可用的存储库管理器可以分为两大类:针对单一包格式的技术特定解决方案,如Docker、npm、Maven等;以及支持更广泛的包格式、构建工具和技术的通用解决方案。JFrog Artifactory属于通用类别。本文介绍了Artifactory与市场上下列竞争产品的比较要点:Docker、Docker Trusted Registry、Nexus 2、Nexus 3、Quay、Amazhth华体会最新官方网站on ECR和谷歌Container Registry。下表强调了一些使Artifactory是最好的存储库管理器目前市面上有售的:
JFrog Artifactory:通用工件库
JFrog x射线:通用神器分析
JFrog任务控制:集中存储库管理
JFrog Bintray:通用分发平台
支持多种企业级存储能力,包括S3对象存储、谷歌云存储和文件存储分片,提供无限的可扩展性、灾难恢复和无与伦比的稳定性和可靠性。
用户,构建服务器和交互
适应大负载爆发而不影响性能。通过水平服务器可伸缩性将容量增加到任何程度,以服务任意数量的并发用户,构建服务器和交互。
简介
在软件开发管道中使用二进制存储库管理器的好处是无可争辩的。对远程工件的可靠和一致的访问、与构建环境的集成、工件的分发和存储库的复制只是其中几个原因。目前市场上可用的存储库管理器可以分为两大类:特定于技术的解决方案和通用解决方案。
技术特定解决方案
每种不同的打包技术都有一个客户端应用程序,开发人员用它来构建他们的包。这些应用程序提供不同的服务,如包管理、依赖项解析、将包上载到私有或公共存储库等等。在Docker的情况下,有几个管理映像的解决方案。随着Docker越来越受欢迎,对安全存储Docker映像的简单解决方案的需求也相应增加。这开启了一波只专注于存储Docker映像的存储库管理器的浪潮,一些相对有限的特性如Docker Trusted Registry、Quay、Amazon ECR和谷歌Container Registry如雨后笋般出现。对于任何解决方案都需要注意的关键点是,它们(在某种程度上)仅为一种技术提供存储库管理服务。
通用解决方案
通用解决方案支持更广泛的包格式、构建工具、技术和功能。Artifactory是一个很好的例子,目前支持Maven, Gradle, Docker, Vagrant, Debian, YUM, P2, Ivy, NuGet, NPM, PHP, RubyGems, PyPI, Bower, CocoaPods, GitLFS, PHP等,以及所有常用的构建工具和CI服务器。另一个例子是JFrog Artifactory vs Sonatype Nexus它还支持各种包格式和技术。然而,这两种产品之间有一个根本的区别。hth华体会最新官方网站Nexus最初是作为Maven的伙伴,后来增加了对其他格式的支持,而Artifactory从一开始就被设计为支持不同的打包系统和技术的灵活性。当你比较产品时,这个根本的区别就显现出来了。hth华体会最新官方网站虽然这两个产品的简单比较矩阵可能表明它们具有相似的功能集,但更深入的调查揭示了它们在基hth华体会最新官方网站本架构上的显著差异,以及对不同包装格式的非常不同的支持级别。本文介绍了Artifactory与市场上一些竞争产品的比较要点。hth华体会最新官方网站hth华体会最新官方网站用于比较的产品包括Docker、Docker可信注册表、Nexus 2、Nexus 3、Quay、Amazon ECR和谷歌容器注册表。这些产品的简单比较矩阵可能表明它们非常相似,然而,如果你深入挖掘,你会发现hth华体会最新官方网站表面上看起来相同的东西可能内部非常不同。
通用解决方案
没有单一的包装格式或技术足以支持现代组织中的开发。有大量的格式、各种各样的构建工具、不同的持续集成系统和其他技术用于构建灵活且可维护的软件开发生态系统。管理所有不同打包格式的二进制文件并与生态系统的所有移动部分集成可能成为工具和维护的噩梦。
有了Artifactory,就不需要使用专用的解决方案管理每种不同包格式的开发。Artifactory从头开始设计,以适应任何开发生态系统。Artifactory独特地构建在基于校验和的存储上,支持任何存储库布局,因此可以为任何打包格式提供本地级支持。本质上,无论您使用何种打包格式,Artifactory都可以存储和管理二进制文件,并且对相应的打包客户端是透明的。Artifactory目前支持以下打包技术:Maven, Gradle, Docker, Vagrant, Debian, YUM, P2, Ivy, NuGet, NPM, RubyGems, PyPI, Bower, CocoaPods, PHP, GitLFS等。
但是开发只是软件交付管道的一端。在一个包成为一个产品之前,它需要经历构建和集成的过程。市场上有许多构建和集成工具,但只有一种产品可以与所有工具一起工作。通过一组插件,Artifactory提供了与当今流行的CI系统(如Jenkins、Bamboo、TeamCity和TFS)的紧密集成。这些系统在创建构建时使用Artifactory来提供工件和解决依赖关系,并且还将其作为部署构建输出的目标。为了支持您无法应用插件的基于云的CI系统,Artifactory为您使用的构建工具(如Maven和Gradle)提供了插件,这些工具最终提供了相同级别的构建自动化。
端到端工件管理
JFrog Artifactory只是一个完整的、紧密集成的端到端解决方案的一个组件构件管理可以通过JFrog的产品套件获得。hth华体会最新官方网站作为组织软件交付管道的完整解决方案,Artifactory可以与套件中的其他产品无缝地工作。hth华体会最新官方网站

普遍的分布
JFrog的软件分发本机支持所有主要软件包格式,允许您与行业标准开发、构建和部署工具无缝协作。
JFrog任务控制-通用存储库管理
任务控制为您在全球范围内的所有企业工件资产提供集中控制、管理和监控。通过提供不同开发组织之间的关系和流程的清晰和即时的图像,任务控制为您的IT和运维领导者提供了对软件包的全球开发、分发和消费的实时可见性。
要了解更多关于JFrog任务控制,请访问www.si-fil.com/mission-control或从以下网址下载白皮书www.si-fil.com/support-service/whitepapers/.
JFrog x射线-通用神器分析
Xray与JFrog Artifactory合作分析软件工件并揭示各种问题和问题安全漏洞在软件应用程序生命周期的任何阶段。通过扫描二进制组件及其元数据,递归地通过任何级别的依赖关系,JFrog Xray提供了对潜伏在组织中任何地方的脆弱组件的前所未有的可见性。
要了解更多关于JFrog x射线,请访问www.si-fil.com/xray或从以下网址下载白皮书www.si-fil.com/support-service/whitepapers/.
企业准备好了
Artifactory提供了许多其他二进制存储库管理器没有或仅部分提供的企业特性:
高可用性配置
二进制存储库管理器在二进制文件管理中扮演着如此核心的角色,它可以成为组织的关键任务组件,这意味着任何停机都可能产生严重的后果。
Artifactory是唯一支持高可用性网络配置的二进制存储管理程序。
通过在同一个局域网上的2个或更多服务器的集群,Artifactory可以最大限度地提高您的正常运行时间,并可以将其提高到“五个9”的可用性级别。
冗余服务器架构支持非中断升级,并允许您的系统适应更大的负载爆发,而不影响性能。通过水平服务器可伸缩性,您可以轻松地增加容量,以满足组织增长时的任何负载需求。
Multi-push复制
Artifactory是唯一提供多推送复制的二进制存储库管理器,允许您
同时将本地存储库复制到多个地理位置遥远的目标站点。
这个关键功能支持地理分布的团队
共享相同的存储库和开发管道,
并支持平滑的地理故障转移和快速恢复
一旦发生灾难。由于复制是异步的,
这个过程很快,它能最大限度地缩短时间
存储库没有同步,也不会引起任何同步
响应速度减慢。
企业级存储
Artifactory提供了多种存储选项,并允许完全自由地组合不同的存储解决方案,以满足任何规模的企业需求。
S3对象存储和谷歌云存储
Artifactory无缝地管理存储在云上的任何存储提供商的二进制文件。这
提供:
•无限的可扩展性:由于您的文件在云上,您的文件存储是可大规模扩展的
有效的无限的
•安全:由您的S3存储提供商或谷歌的安全模型提供
•灾难恢复:由于二进制文件位于分布式文件系统上,因此可以使用
存储提供商提供的容灾能力。
Filestore分片
分片文件存储是在数字上实现的文件存储
用于存储二进制对象的物理挂载(M)
冗余度(R),其中R <= M。
分片克服了扩大企业规模的挑战
文件存储有以下几个原因:
无与伦比的稳定性和可靠性
由于二进制文件的冗余存储,系统可以
在剩下的坐骑中,能承受任何下坠的坐骑
挂载可以支持冗余配置(即M >= R)。
无限的可扩展性
如果底层可用存储接近耗尽,您只需要添加另一个挂载;
不需要文件存储停机的进程。一旦安装好并开始运行,
系统调用平衡机制来重新生成文件存储冗余根据
配置您控制的参数。
文件存储性能优化
Artifactory的文件存储分片实现提供了几个配置参数
您可以根据您的具体需求优化如何从文件存储中读取或写入二进制文件
系统的需求。当二进制文件被上传或删除时,分片机制会调用
平衡进程,以确保二进制文件均匀地分布在文件存储中
根据系统中配置的冗余进行挂载。
安全、身份验证和权限
Artifactory提供对包的可靠和一致的访问,以实现安全的上传和下载。
您可以通过为。赋予不同权限的能力来实施细粒度的访问控制
不同的存储库对特定的组和用户,并使用各种
行业标准,如LDAP,基于http的SSO, Atlassian Crowd, SAML, OAuth等。
通过基于校验和的存储实现卓越性能
Artifactory通过确保任何二进制文件在文件系统上只存储一次来优化存储。
Artifactory不是将文件以其原始名称存储在特定路径下,而是创建文件的校验和(MD5和SHA1)并将其重命名为其校验和。然后,关于文件的所有元数据存储在Artifactory数据库中。

使用基于校验和的存储,在工件上执行的任何操作(复制、移动、删除)实际上都是通过更改存储在Artifactory数据库中的元数据来实现的。由于数据库事务比文件系统操作快得多,这导致了性能提升,使Artifactory比竞争产品快5倍。hth华体会最新官方网站
让我们首先考虑删除一组文件的简单操作。当存储直接在文件系统上时,您需要等待直到所有文件都消失。如果我们的文件很大,这可能会花费一些时间。使用Artifactory的基于校验和的存储,删除操作是有效的即时操作。所有文件都被标记为通过快速数据库事务删除,从文件系统中实际删除仅在下一次计划的垃圾处理期间在后台透明地发生
收集。现在考虑通过部署管道提升构建。这意味着从一个存储库复制或移动数百兆字节的数据到另一个存储库;一个可能需要几分钟的操作,并在此过程中锁定文件。如果你一天做几次,它真的会影响发育。在Artifactory中,这是一个快速的数据库事务,有效地即时。
混合解决方案- On-Prem或SaaS
Artifactory提供了多种就地安装选项,包括ZIP, Debian, RPM, Docker和
家酿。Artifactory也是唯一的存储库管理器,它也作为基于saas的解决方案提供,托管在您选择的AWS或谷歌云平台上,这提供了几个好处:
•快速设置和配置-几分钟内你就可以出发了。
•保持更新拥有Artifactory Pro的最新版本和所有功能。
•交互式仪表板管理您的存储库和帐户
•减少硬件占用因为您不需要购买、安装、配置、维护或监控服务器。
•安全可靠因为所有的硬件都是完全冗余的,并且经常被监控。
•定期备份为您的存储库内容和配置运行。
•隐私和保护.您的数据通过SSL安全访问。
•完全的访问控制通过管理内部用户和组
每服务器定价和无与伦比的支持
JFrog为存储库管理提供了当今市场上最具竞争力的定价模型。你只需要为每个Artifactory实例支付一次。每个实例的座位或用户数量没有限制。一旦你走上了Artifactory的道路,你就永远不会孤独。
JFrog提供主动和响应式的基于sla的支持包:
•从第一反应开始提供研发级支持
•无与伦比的响应时间
•全天候基于sla的任何时区支持(电子邮件和电话)
•拥有不断更新的详细知识库的客户支持门户,并可即时访问您的案例和联系人。
JFrog无与伦比的支持水平已多次被客户注意到,这是一个重要的
为我们卓越的客户保留率做出了贡献。
通过REST API和CLI实现自动化
Artifactory通过大量功能强大的REST命令集提供了对存储库管理和发布生命周期的完全自动化控制,其中一些命令还封装在命令行接口中。
REST API
为了与自动化工具(如Build Servers和Continuous Integration系统)集成,Artifactory公开了一个广泛的REST API,该API在开发周期的任何地方都提供了对其特性的访问,从而有效地让您自动化通过UI可以执行的任何操作。通过API可以使用的一些关键操作有:
•管理构建、存储库和工件
•执行搜索
•应用配置,如创建存储库,用户,组,权限目标和更多
•执行维护任务,如备份,导入,导出等。
JFrog CLI
JFrog CLI是一个紧凑而智能的客户端,提供了一个简单的界面,可以自动访问
Artifactory(以及所有其他JFrog产品通过它们各自的Rhth华体会最新官方网站EST api)。通过使用JFrog CLI,您可以极大地简化和优化您的自动化脚本,使它们更易于阅读,更容易维护和高效。使用JFrog CLI的一些主要优势是:
•并行上传和下载
JFrog CLI允许您根据可配置的数量同时上传和下载工件
线程可以帮助您的自动化构建运行得更快。
•执行维护任务
JFrog CLI通过检查工件的校验和来跳过已经存在于目标位置的工件,从而优化上传和下载操作。如果它已经存在于Artifactory的存储中,CLI将跳过发送该文件,并且,如果有必要,Artifactory只更新其数据库以反映工件上传。
•通配符和正则表达式
JFrog CLI支持通配符和正则表达式,为您提供了一种简单的方法来收集您希望上传或下载的所有工件。
•上传预览
所有上传操作都可以使用-dry-run选项来预览使用当前命令上传的所有文件。
全面支持Docker
Artifactory是一个成熟的码头工人注册表支持所有Docker Registry api,提供企业Docker用户所需的安全特性。Artifactory比其他Docker解决方案(如Docker Trusted Registry,谷歌Cloud Registry (GCR)或Amazon的EC2)有一些优势
货柜注册处(ECR)包括:
码头工人版本
Artifactory同时支持Docker V1和Docker V2。
每个实例有多个注册中心
Artifactory允许你为每个实例创建任意数量的Docker注册表。使用本地存储库作为安全的私有Docker注册中心,通过细粒度的访问控制在整个组织中分发和共享Docker映像。通过远程存储库代理和缓存远程Docker注册表(例如Docker Hub),并在单个虚拟Docker注册表下聚合本地和远程Docker资源。2022世界杯阿根廷预选赛赛程支持多个Docker注册表可以让你建立一个推广管道
为Docker开发提供了清晰的开发、分期和生产环境分离,以及不同项目和团队之间的分离。

详细元数据
Artifactory提供了用可搜索属性标记工件和文件夹的选项,并提供构建信息作为CI服务器集成的一部分。这有助于使用Artifactory Query Language (AQL)基于Docker映像的元数据高效搜索。
独特的高级功能
Artifactory提供了一组先进的功能,这些功能源于其专有和独特的架构,并与互补的JFrog产品进行了集成hth华体会最新官方网站
分布存储库
Artifactory对任何受支持的包格式的多个存储库的支持允许您建立一个提升管道,其中包在通过不同的质量闸门时从一个存储库移动到下一个存储库,沿着组织中定义的管道向上移动。此过程的最后一步是发布已批准的包,以便分发给最终用户。Artifactory通过分布存储库支持完全自动化的分发管道。
分发存储库与JFrog Bintray紧密集成。它们由一组规则管理,这些规则清楚地定义了如何将任何提升到它们的包路由到Bintray中相应的存储库。像Artifactory一样,Bintray提供了对所有主要包格式的本地支持,这意味着,例如,你可以上传你的Docker映像到私有或公共Docker注册表,以便在Bintray上分发。Artifactory和Bintray一起提供了全生命周期工件管理的唯一解决方案——从最初的开发阶段到最终产品包的分发。

用完全可复制的构建快速解决生产问题
在生产中发现的bug可能会变成噩梦,急需修复。但是要修复错误,重要的是重新创建报告错误的确切构建和环境。Artifactory是唯一的二进制存储库管理器,它存储基于固有包属性、自定义用户属性和自动生成的构建信息的详尽元数据。其中包括特定的工件版本、模块、依赖关系、系统属性、环境变量、用户信息、时间戳等等。有了这个“材料清单”,在任何时候都很容易忠实地重现一个构建。此外,使用内置的“Diff”工具,您可以比较构建,从而确切地知道从一个版本到另一个版本引入了哪些更改。

使用自定义属性和用户插件适应任何生命周期策略
没有一种产品能够开箱即用地提供客户想要的所有功能。然而,重要的是提供工具,允许每个组织定制您的产品,以满足他们在开发周期中的特定需求。
自定义属性是Artifactory中的一个独特特性,它允许您将任何属性附加到工件元数据上。Artifactory基于所有这些属性搜索工件的能力可用于实现任何公司策略。让我们考虑一个例子,在这个例子中,一个构建版本只有通过以下“质量门槛”才能被提升到生产环境:
•它已经通过了三层QA(每一层都是一个独立的属性)
•获得法律部门的批准
•它得到了市场的认可
•已备份
使用Artifactory,您可以为每个门定义一个自定义属性,以确定构建是否已经准备好投入生产。您可以通过Artifactory UI找到所有生产就绪的构建,但更重要的是,您的构建工具可以自动确定哪些构建可以提升到您的生产存储库。
用户插件允许开发人员实现可以被工件上的任何操作触发的自定义行为。与自定义属性一起,用户插件可以轻松支持组织所需的任何工作流。为了保持简单,用户插件被编写为Groovy脚本,并使用简单的领域特定语言(DSL)将它们包装为闭包。因此,可以非常容易地开发插件,并在没有停机时间的情况下进行动态部署。虽然其他存储库管理器也支持用户插件,但它们必须用Java编写,这使得它更加复杂。在许多情况下,由于这种额外的复杂性,许多组织只是不愿意编写插件,而遵守组织策略就变成了一个手动过程。
AQL高级搜索
对于Artifactory来说,AQL在如何搜索工件方面为您提供了前所未有的灵活性。它提供了一种简单的方法来制定复杂的查询,指定任意数量的搜索条件、过滤器、排序选项和输出字段。作为一个使用数据流提供输出数据的RESTful API,它非常快速和高效,具有无与伦比的响应时间和较低的内存消耗,这将继续改善您的构建时间。无论您的组织可能创建多少个文件,AQL都允许您使用任何组件集组装构建,定义高度特定的清理策略,在任何工件集上查找所有奇怪或不寻常的许可等等。使用AQL,您不受存储库类型的限制,可以搜索存储库中的任何字段或属性。您的存储库中的每一点数据现在都可供您挖掘。
虚拟存储库
与大多数其他存储库管理器一样,Artifactory支持本地存储库(其中工件和构建可以在内部部署)和远程存储库(为远程资源提供代理和缓存功能)。2022世界杯阿根廷预选赛赛程Artifactory通过虚拟存储库将存储库的概念进一步推进了一步。
虚拟存储库封装了任意数量的本地和远程存储库,并将它们表示为从单个URL访问的统一存储库。它为您提供了一种管理开发人员访问哪些存储库的方法,因为您可以自由地混合、匹配和修改虚拟存储库中包含的实际存储库。您还可以通过定义底层存储库顺序来优化工件解析,这样Artifactory将首先查看本地存储库,然后查看远程存储库缓存,只有这样Artifactory才会通过网络并直接从远程资源请求工件。您甚至可以设置一个提升管道,其中推送到虚拟存储库的工件将自动定向到特定的包含的本地存储库。然后,当它们通过质量闸门时,它们在内部通过其他存储库进行提升,直到它们到达生产存储库,并根据需要从生产存储库中提取它们。对于开发人员来说,这很简单。当一个包准备好进行QA或请求一个构建所需的包时,只需推送它,Artifactory将根据您组织的策略安全且优化地访问它。
总结
Artifactory的先进功能集,对所有主要打包格式的全面元数据支持,与所有主要构建工具和CI系统的集成以及独特的先进技术使其成为每个行业中数千家公司的选择。苹果、Netflix、甲骨文(Oracle)、VMware、Twitter、雅虎、瑞士信贷(Credit Suisse)等最具竞争力的行业巨头享受着其他存储库管理公司无法提供的企业功能。通过VMware、Pivotal (Cloud Foundry)、CA (Nolio部署工具)、Microsoft (Azure)、IBM (uDeploy)、Chef、CloudBees和其他公司提供开箱即用的集成,Artifactory将继续在二进制存储库管理和持续集成领域保持技术和商业上的领先地位。


