PHP Composer:使用二进制存储库管理器的9个好处
执行概要
PHP开发已经成为客户端和服务器端web开发最流行的平台之一。用于PHP开发的每个框架都有自己的一套优势,但它们都使用PHP Composer来管理依赖关系,并将Packagist作为中央存储库。
PHP Composer可能能够为您找到合适的包,但在网络问题的情况下会出现不足,并且不能确保您组织中的所有开发人员都使用相同版本的包。Artifactory为你解决的就是这样的问题。
本白皮书描述了PHP Composer与Artifactory一起使用的好处,包括:
- 可靠的访问:克服网络问题,使您无法下载或更新软件包。
- 优化的构建过程:管理组织内的资源共享,消除不必要的网络流量。
- 完全支持Docker:支持所有Docker注册表提供企业Docker用户所需的安全特性的api。
- 安全解决方案:启用通过安全私有的受控访问PHP Composer存储库.
- 智能搜索和人工查询语言(AQL):使用高级搜索工具和顶级搜索功能查找所需的包。
- 分发和共享:支持有效的专有包分发,使开发人员能够访问相同的包版本,解决依赖关系,并无缝地共享专有代码,而不考虑物理位置。
- 人工高可用性:以高可用性配置访问PHP Composer包,为PHP开发提供高达5 - 9的可用性。
- 维护和监控:保持一个有组织的管理系统,使用自动的、定时的清理过程,消除旧的和不相关的工件。
- 通用的端到端解决方案:开发人员使用多种协议、构建工具、打包格式和CI系统作为软件开发、集成和分发过程的一部分。管理流程及其复杂性是任何组织面临的主要挑战。Artifactory是一个通用的存储库管理器它支持任何包管理器,并提供了一系列插件来处理构建和集成过程
总结
Artifactory对PHP Composer的支持简化了PHP开发,让您可以专注于编写代码,而不必担心Packagist公共存储库的安全性或可用性。其他功能,如智能搜索、AQL、高可用性、维护、监控等,可以帮助您更有效地工作,加快开发周期,最终使您的产品尽快推向市场。
介绍
PHP开发已经成为客户端和服务器端web开发最流行的平台之一。PHP的巨大流行催生了许多框架,例如Zend,Laravel,Symfony,使PHP开发更容易。虽然每个框架都有自己的优点,但它们都使用PHP的作曲家来管理依赖关系,与Packagist一起作为中央存储库。
PHP Composer可能能够为您找到合适的包,但是如果您在凌晨2点试图赶在截止日期之前完成任务时出现连接问题,该怎么办呢?您如何确保组织中使用相同软件包的十个人都使用相同的版本?Artifactory为你解决的就是这样的问题。
Artifactory充当Packagist的代理——开发人员只需要创建一个远程存储库来模拟相关的Git存储库,然后将PHP命令指向Artifactory。
Artifactory实现了Composer API,并为您透明地替换了Packagist Registry。当您请求一个组件时,Artifactory将把该请求委托给Packagist,获得指向包所在的VCS repo的正确指针,然后下载并将请求的文件连同相应的元数据文件压缩到单个包中。对于开发人员来说,所有这些都是在后台透明地进行的,因此当Artifactory完成获取软件包并保持更新的所有工作时,您可以继续保持高效。
1.可靠的访问
在Packagist或GitHub宕机和网络问题等情况下,PHP Composer可能会失败,从而限制您下载或更新包。Artifactory通过在远程存储库中按需缓存包来克服这些问题,这样您就可以独立于GitHub、Packagist和网络。如果其中任何一个发生故障,您的软件包仍然可用,您可以继续工作,而不受任何外部问题的影响。
远程存储库
远程存储库充当GitHub等远程站点管理的存储库的缓存代理。根据控制缓存和代理行为的各种配置参数,在远程存储库中存储和更新构件。

2.减少网络流量并优化构建
开发人员在汇编代码时使用许多相同的外部包资源。2022世界杯阿根廷预选赛赛程在一个组织中,不同的开发人员下载相同的包是多余的。当使用Artifactory时,每个包只下载一次,然后缓存以供进一步重用。从那时起,它直接从Artifactory提供,因此不需要通过网络再次下载它-因此减少了网络流量。在构建服务器的上下文中,需要一次又一次地为构建下载相同的远程资源,这使得构建过程变得漫长且网络密集。2022世界杯阿根廷预选赛赛程
集成Artifactory通过使下载的包在本地可用,以便组织中的所有开发人员共享,从而优化了这个过程(从而减少了网络流量)。当然,这对单个开发人员来说都是透明的。一旦通过Artifactory访问了包,开发人员就可以继续做自己最擅长的工作,剩下的就交给Artifactory了。
从构建服务器的角度来看网络流量,好处是显而易见的。一个典型的项目可能依赖于来自外部资源的数十甚至数百个包。2022世界杯阿根廷预选赛赛程为了让服务器构建这些项目,所有远程工件必须对服务器环境可用。下载所有必需的工件可能会在网络上产生千兆字节的数据流量,这会花费大量的时间来延迟构建过程。通过在本地缓存远程构件,构建过程要快得多,并且需要的网络连接要少得多。
3.完全支持Docker
随着Docker技术的不断发展,它的使用也在不断增长。如果您还没有在您的组织中使用Docker,那么您很可能很快就会这样做。所以现在,除了管理Composer包之外,还需要管理Docker映像。但不需要再安装和维护另一个工具。Artifactory是一个完全成熟的Docker注册表,支持所有Docker注册表api。这允许Docker客户端直接与Artifactory一起工作,为企业Docker用户提供了几个好处。
使用本地存储库,您可以创建本地Docker注册表来分发和共享图像并使不同团队之间的图像管理变得容易。您甚至可以将您的Artifactory Docker注册表复制到Artifactory的远程实例中,以便与地理位置较远的站点的同事共享映像。
Artifactory提供细粒度访问控制为您组织的形象提供安全的“docker push”和“docker pull”有效的安全保障;私有Docker注册表超过Docker可信注册表提供的安全性。
使用Artifactory,而不是Docker Hub上的私有存储库,消除了与互联网连接相关的任何问题可靠和一致的访问图像.而Artifactory在高可用性配置您将获得业界无与伦比的Docker映像的系统稳定性和可用性。
Artifactory的智能搜索可以很容易地找到存储在系统中的任何Docker映像。对Docker注册API的全面支持支持使用Docker客户端进行基本搜索,但Artifactory提供的功能更多。内置搜索可以通过单击操作满足常见需求,自定义属性提供了满足各种特定需求的灵活性,Artifactory Query Language提供了一种简单的方法来制定复杂的查询,让您可以根据任何标准集找到图像。
无论您是已经开始使用Docker还是正在评估如何将其引入您的组织,一旦您使用Artifactory来管理您的Bower包,您就已经涵盖了Docker映像。
4.安全
Packagist是PHP Composer的主要公共存储库,它本身并不提供安全性或隐私性。如果你想控制对组件的访问,你需要使用私有存储库,比如GitHub上的私有repo。这导致在Composer中注册了许多指针,对于大多数用户来说,这些指针将是空白的,因为它们指向其他人的私有存储库。此外,这种方法使您的私有GitHub存储库指针公开可用。
Artifactory为PHP Composer提供了一个更完整的安全解决方案。作为第一道防线,Artifactory允许您使用命名模式来定义访问的“排除”和“包含”,这样您就可以控制哪些包可以缓存到任何特定的远程存储库中。然后,您可以为用户和组分配不同的权限集,以控制对每个存储库的访问。您甚至可以使用Artifactory与LDAP、Active Directory、Crowd等的集成来控制对服务器的访问。Artifactory有效地成为您自己私有且安全的内部Packagist存储库。
5.智能搜索和人工查询语言(AQL)
考虑到系统中有大量的包,找到特定的包有时会变得相当复杂。
Artifactory为您提供了灵活的搜索功能,以帮助您查找存储在系统中的包。Artifactory支持Composer API,因此您对包的最基本搜索与通过Packagist进行搜索一样。还可以根据固有属性(如名称、版本、时间戳、校验和等)的任何组合来查找包。此外,Artifactory还提供了一组常见的内置搜索。例如,您可以轻松地找到任何包的“最新”版本,而不必指定版本号。Artifactory还允许您为组件分配任意一组自定义属性,这些属性可以在以后的搜索中使用。例如,您可以用“已发布”属性标记产品发布中使用的组件的所有特定版本,以便在以后轻松地重现已发布的版本。
最后,人工查询语言支持非常特定的搜索。使用AQL,您可以定义任何复杂程度的搜索查询,以最小的努力和时间精确地提取您正在寻找的正确包。
有了这些功能,Artifactory允许您使用与您的工作流相关的任何规则集来搜索包。
人工查询语言(AQL)
AQL是一种灵活的查询语言,它提供了一种简单的方法来制定复杂的查询,以便使用任意数量的搜索条件、过滤器、排序选项和输出字段在存储库中进行搜索。它充分利用了Artifactory独特架构下的数据库,并为您提供了无限的自由度,可以精确地制定正确的查询,以查找您正在搜索的那些非常特定的包。这是其他二进制存储库无法提供的。
Checksum-based搜索
Artifactory支持通过校验和搜索包的强大功能,这要归功于通过校验和存储文件的独特方法。即使二进制文件已被重命名、移动或甚至部署到组织外部,您也可以将其追溯到原始版本并获得其完整的构建信息。只需通过校验和工具运行包(MD5和SHA1都支持),并在Artifactory中运行“校验和”搜索以检索原始版本。
6.在整个组织中分发和共享包
如前所述,资源应该在组织中有效地共享。2022世界杯阿根廷预选赛赛程这意味着来自远程资源的包只被下载一次,而专有的包在您的组织中是安全可用的。2022世界杯阿根廷预选赛赛程
通过使用本地存储库,Artifactory为您提供了一个存储内部包的中心位置。当所有团队都知道任何包都可以从一个URL访问时,访问本地包和管理不同团队之间的依赖关系就变得非常容易了。但是,如果您希望与组织中地理位置较远的同事共享您的包,该怎么办呢?
Artifactory支持将您的存储库复制到本地网络之外的Artifactory的另一个实例。复制的存储库会定期与它们的源自动同步,这样您的包就可以被世界各地的不同团队使用。
局部存储库
本地存储库是物理的、本地管理的存储库,您可以在其中部署构件。它们通常用于部署内部和外部版本以及开发构建,但它们也可以用于存储在公共存储库(如第三方商业组件)上不广泛可用的包。使用本地存储库,所有内部资源都可以从跨组织的单个访问点从一个公共URL获得。2022世界杯阿根廷预选赛赛程
7.人工高可用性
二进制存储库在二进制文件的管理中扮演着如此重要的角色,它可以成为组织的关键任务组件,这意味着任何停机时间都可能产生严重的后果。
Artifactory支持高可用性网络配置,在同一个局域网中使用2个或更多Artifactory服务器的集群。冗余网络体系结构意味着不存在单点故障,只要至少有一个Artifactory节点可以运行,系统就可以继续运行。这最大限度地延长了您的正常运行时间,并可以将其提高到“五个9”可用性的级别。此外,您的系统可以在不影响性能的情况下适应更大的负载突发。有了水平服务器可伸缩性,随着组织的增长,您可以轻松地增加容量以满足任何负载需求。通过使用具有多个服务器的体系结构,Artifactory HA允许您执行大多数维护任务,而不会导致系统停机。

高可用性系统
对于组织来说,被认为是关键任务的系统可以部署在高可用性配置中,以提高稳定性和可靠性。这是通过复制系统中的节点并将它们部署为冗余集群来实现的,以消除任何单个节点上的完全可靠性。在高可用性配置中,不存在单点故障。如果任何特定节点发生故障,系统将继续通过剩余的冗余节点对用户无缝透明地运行,而不会停机或降低整个系统的性能。
8.维护和监控
在当前使用构建服务器和CI系统的情况下,您生成的工件数量可能会快速增长。如果没有适当的管理,您的系统很快就会被旧的和不相关的工件堵塞。Artifactory通过自动、定时的清理过程使您的系统保持有序和整洁。通过一些简单的设置,您可以安排任务来清理旧的构建和未使用的包。您可以设置限制并监视磁盘空间的使用情况,或者定义“监视”,以便在最关键的二进制文件发生更改时接收警报。通过广泛的REST API, Artifactory实际上可以支持您希望在组织脚本中实现的任何基于规则的清理协议。
9.二进制文件的完整解决方案
没有一种工具或技术足以支持现代组织中的开发。有大量的打包格式、各种构建工具、不同的持续集成系统和其他技术用于构建灵活且可维护的软件开发生态系统。管理所有不同打包格式的二进制文件并与生态系统的所有移动部分集成可能成为维护的噩梦。
Artifactory从头开始设计,以适应任何开发生态系统。Artifactory独特地构建在基于校验和的存储上,支持任何存储库布局,因此可以为任何打包格式提供本机级别的支持。从本质上讲,无论您使用哪种打包格式,Artifactory都可以存储和管理二进制文件,并且对相应的打包客户端是透明的。客户端使用Artifactory的方式与使用本机存储库的方式完全相同。例如,如果你正在使用Docker, Artifactory代理Docker Hub(或任何其他公共Docker注册表),允许你在本地Docker存储库中存储和管理自己的映像,并透明地与Docker客户端一起工作。如果您正在使用PHP Composer, Artifactory代理Packagist(或其他元数据存储库)作为元数据,代理GitHub(或其他Git仓库)作为二进制文件,并允许您将自己的包存储在本地PHP存储库中,透明地与Composer客户端一起工作。类似的还有NPM, Vagrant, NuGet, Ruby, Debian, YUM, Python, Chef, Puppet等等。
但是开发只是软件交付管道的一端。在一个包成为一个产品之前,它需要经历构建和集成的过程。市场上有许多构建和集成工具,但只有一种产品可以与它们全部兼容。通过一组插件,Artifactory提供了与当今流行的CI系统(如Jenkins、Bamboo和TeamCity)的紧密集成。这些系统在创建构建时使用Artifactory提供构件并解析依赖项,同时也作为部署构建输出的目标。为了支持您无法在其上应用插件的基于云的CI系统,Artifactory为您使用的构建工具(如Maven和Gradle)提供了插件,这些工具最终提供了相同级别的构建自动化。
Artifactory是一个通用存储库。它是位于开发生态系统中心的单一工具,与所有不同的技术“对话”,提高生产力,减少维护工作并促进不同部分之间的自动化集成。
总结
通过使用Artifactory作为PHP Composer包的存储库,开发人员消除了与网络访问、流量和构建优化相关的麻烦。此外,Artifactory还提供了许多其他优势,比如对Docker的支持;增强的分发、维护、搜索和安全功能;和高可用性选项。最后,当与Bintray一起使用时,Artifactory提供了端到端的二进制解决方案。
Artifactory是一个PHP Composer存储库,用于优化PHP开发。它消除了对Packagist、GitHub甚至外部网络等外部资源的依赖,优2022世界杯阿根廷预选赛赛程化了开发和构建过程。一系列的安全功能提供了细粒度的访问控制,而用于搜索、维护和监视的高级功能让开发人员能够专注于开发代码的主要任务。作为一个通用存储库,Artifactory完全支持Docker和所有其他主要包格式,可以满足任何开发组织的所有二进制管理需求。
有关Artifactory如何提高您组织绩效的更多信息,请通过info@www.si-fil.com与我们联系


