Artifactory与其他二进制存储库管理器的比较
执行概要
的好处使用二进制存储库管理器在您的软件开发管道中是无可争议的。对远程工件的可靠和一致的访问、与构建环境的集成、工件的分发和存储库的复制只是其中的几个原因。目前市场上可用的存储库管理器可以分为两大类:一类是针对单一包格式的特定技术解决方案,如Docker、npm、Maven等;另一类是支持更广泛的包格式、构建工具和技术的通用解决方案。JFrog Artifactory属于通用类型。本文提出了Artifactory与以下市场竞争产品的比较要点:Docker、Docker Trusted Registry、Nexus 2、Nexus 3、Quay、Amazohth华体会最新官方网站n ECR和Google Container Registry。下表强调了一些区别创建最好的存储库管理器目前市面上可供选择的产品有:
JFrog Artifactory:通用工件库
JFrog x射线:通用人工制品分析
JFrog任务控制:集中存储库管理
JFrog Bintray:通用分发平台
支持多种企业级存储功能,包括S3对象存储、谷歌云存储和文件存储分片,提供无限的可扩展性、灾难恢复以及无与伦比的稳定性和可靠性。
用户、构建服务器和交互
适应大负载突发而不影响性能。通过水平服务器可伸缩性任意程度地增加容量,以服务任意数量的并发用户、构建服务器和交互。
介绍
在软件开发管道中使用二进制存储库管理器的好处是无可争议的。对远程工件的可靠和一致的访问、与构建环境的集成、工件的分发和存储库的复制只是其中的几个原因。目前市场上可用的存储库管理器可以分为两大类:特定于技术的解决方案和通用解决方案。
技术特定的解决方案
每种不同的打包技术都有一个客户端应用程序,开发人员可以使用它来构建自己的包。这些应用程序提供不同的服务,如包管理、依赖解析、将包上传到私有或公共存储库等等。对于Docker,有几种管理映像的解决方案。随着Docker的普及,对安全存储Docker映像的简单解决方案的需求也相应增加。这引发了一波存储库管理器的浪潮,这些存储库管理器只专注于存储Docker映像,而一组相对有限的特性如雨后春笋般出现,比如Docker Trusted Registry、Quay、Amazon ECR和Google 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 Trusted Registry、Nexus 2、Nexus 3、Quay、Amazon ECR和Google Container Registry。这些产品的浅层比较矩阵可能会表明它们非常相似,但是,如果你深入挖掘,你会发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任务控制-通用存储库管理
Mission Control为您的所有企业工件资产提供集中控制、管理和监视。通过提供不同开发组织之间的关系和流程的清晰和即时的图像,Mission Control为您的IT和Ops领导者提供了对软件包的全球开发、分发和消费的实时可见性。
要了解更多关于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可以最大化您的正常运行时间,并可以将其提高到“5个9”可用性的级别。
冗余服务器架构支持非中断升级,并允许系统在不影响性能的情况下适应更大的负载突发。有了水平服务器可伸缩性,随着组织的增长,您可以轻松地增加容量以满足任何负载需求。
Multi-push复制
Artifactory是唯一提供多推送复制的二进制存储库管理器,允许您
将本地存储库同时复制到多个地理位置较远的目标站点。
这个关键功能支持地理上分布的团队
共享相同的存储库和开发管道,
并支持平滑的地理故障转移和快速恢复
一旦发生灾难。由于复制是异步的,
这个过程是快速的,它最大限度地减少了时间
存储库没有同步,也不会产生任何问题
反应迟钝。
企业级存储
Artifactory提供了多种存储选项,并允许完全自由地组合不同的存储解决方案,以满足任何规模的企业需求。
S3对象存储和谷歌云存储
Artifactory无缝地管理存储在云上任何存储提供商的二进制文件。这
提供:
•无限的可扩展性由于你的文件在云上,你的文件存储是可大规模扩展的
有效的无限的
•安全:由S3存储提供商或Google的安全模型提供
•灾难恢复由于二进制文件位于分布式文件系统上,因此可以使用
存储提供商提供的灾难恢复功能。
Filestore分片
分片文件存储是基于数字实现的文件存储
存储二进制对象的物理挂载(M)
冗余(R),其中R <= M。
分片克服了扩展企业的挑战
文件存储有以下几个原因:
无与伦比的稳定性和可靠性
由于二进制文件的冗余存储,系统可以
在剩下的时间里,可以承受任何坐骑的下降
挂载可以支持配置的冗余(即M >= R)。
无限的可扩展性
如果底层可用存储接近耗尽,您只需要添加另一个挂载;
不需要文件存储库停机的进程。一旦挂载启动并运行,
系统调用均衡机制,根据数据重新生成文件存储冗余
您控制的配置参数。
文件存储性能优化
Artifactory的文件存储分片实现提供了几个配置参数,允许
您可以根据您的特定需求优化从文件存储库读取或写入二进制文件的方式
系统的需求。上传或删除二进制文件时,分片机制调用
平衡进程以确保二进制文件在文件存储库中均匀分布
根据系统配置的冗余方式挂载。
安全、身份验证和权限
Artifactory提供对包的可靠和一致的访问,以实现安全的上传和下载。
您可以通过赋予不同的权限来执行细粒度的访问控制
为特定的组和用户提供不同的存储库,并使用各种
行业标准,如LDAP,基于http的单点登录,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或Google云平台上,这提供了几个好处:
•即时设置和配置-你可以在几分钟内准备好。
•保持更新拥有最新版本和Artifactory Pro的所有功能。
•交互式仪表板来管理您的存储库和帐户
•减少硬件占用因为不需要购买、安装、配置、维护或监控服务器。
•安全可靠因为所有的硬件都是完全冗余的,并且一直受到监控。
•定期备份为您的存储库内容和配置运行。
•隐私和保护.您的数据通过SSL安全访问。
•完全访问控制通过管理内部用户和组
每个服务器定价和无与伦比的支持
JFrog为存储库管理提供了当今市场上最具竞争力的定价模式。你只需要为每个Artifactory实例支付一次费用。每个实例的席位或用户数量没有限制。一旦你走上了神器之路,你就不会孤单。
JFrog提供了主动响应的基于sla的支持包:
•从第一响应开始提供研发级支持
•无与伦比的响应时间
24/7基于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产品通过各自的REShth华体会最新官方网站T api)。通过使用JFrog CLI,您可以极大地简化和优化自动化脚本,使它们更具可读性、更易于维护和更高效。使用JFrog CLI的一些主要优点是:
•并行上传和下载
JFrog CLI允许您通过一个可配置的数量并发地上传和下载工件
帮助您的自动构建运行得更快的线程。
•执行维护任务
JFrog CLI通过检查工件的校验和跳过已经存在于目标位置的工件,从而优化了上传和下载操作。如果工件已经存在于Artifactory的存储中,那么CLI将跳过发送该文件,并且,如果有必要,Artifactory只更新其数据库以反映工件的上传。
•通配符和正则表达式
JFrog CLI支持通配符和正则表达式,使您可以轻松地收集希望上传或下载的所有构件。
•上传预览
所有上传操作都可以与-dry-run选项一起使用,以便预览将使用当前命令上传的所有文件。
完全支持Docker
人工是羽翼丰满的码头工人注册表并支持所有Docker注册api,提供企业Docker用户所需的安全特性。Artifactory比其他Docker解决方案(如Docker Trusted Registry、Google 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服务器集成的一部分。这有助于使用人工查询语言(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、甲骨文、VMware、Twitter、雅虎、瑞士信贷等最具竞争力的行业巨头都享有其他存储库管理器无法提供的企业功能。通过VMware、Pivotal (Cloud Foundry)、CA (Nolio部署工具)、Microsoft (Azure)、IBM (uDeploy)、Chef、CloudBees等现成的集成,Artifactory将继续在技术和商业上引领二进制存储库管理和持续集成领域。

