使用Opkg优化OpenWrt开发
使用工件存储库管理器的12个理由
执行概要
软件开发已经发展到广泛使用二进制组件。这种演变已经在物联网(IoT)和基于OpenWrt的连接设备的开发上留下了印记,今天OpenWrt公共存储库提供了3500多个Opkg组件。虽然基于组件的开发在成本和代码质量方面有明显的好处,但它也提出了许多挑战,例如对远程资源的可靠访问、频繁构建的广泛网络、安全性、包的协作和共享等等。2022世界杯阿根廷预选赛赛程应对这些挑战的是JFrog Artifactory通用工件存储库管理器它的功能是作为一个单一的访问点来组织所有的二进制资源,包括专有库、远程工件和其他第三方资源,特别是Opkg包。2022世界杯阿根廷预选赛赛程完全支持Opkg客户端人工透明地替换Opkg存储库在使用Opkg和开源库进行开发时提高组织的生产力。
| 可靠和一致地访问包 | |
| OpenWrt包存储库是一个非常宝贵的资源,目前包含超过3500个包,但是作为外部资源,如果出现故障或网络问题,它可能无法访问。 | Artifactory通过将远程工件缓存在2022世界杯阿根廷预选赛赛程 远程存储库”;充当远程资源代理的本地缓存,从而消除对资源本身或网络的依赖。 |
| 减少网络流量和优化构建 | |
| 许多开发人员和构建机器/CI服务器不断下载组件会产生大量网络流量并减慢构建速度。 | 一旦Artifactory下载了一个组件,所有开发人员和构建工具/CI服务器都可以在本地使用它,从而大大减少了网络流量并加快了构建过程。 |
| 完全支持Docker | |
| 随着Docker越来越受欢迎,您可能会发现自己比您想象的更快地加入了这一潮流。所以现在你需要管理Opkg包和Docker镜像。 | 除了支持Opkg,Artifactory是一个完全成熟的Docker注册表,支持所有Docker注册表api。不需要附加额外的工具来同时支持Opkg包和Docker镜像 |
| 与您的构建生态系统完全集成 | |
| 无论构建生态系统是如何构建的,您的构建系统(每天运行几个构建)必须能够轻松访问Opkg包 | 通过一组插件,Artifactory与当今常用的大多数构建工具和CI系统紧密集成,无论是在本地还是在云中。这些集成使Artifactory能够生成详尽的构建信息,从而实现完全可复制的构建。 |
| 安全和访问控制 | |
| 每个组织都需要实现安全策略,以便人们只能访问他们被授权使用的内部和外部资源。2022世界杯阿根廷预选赛赛程 | Artifactory在多个级别上提供安全性和访问控制。Artifactory使用“包括”和“排除”模式、团队和权限,以及与常用访问协议(如LDAP、SAML和Crowd)的集成,提供了细粒度的访问控制,从限制完整的存储库到限制单个工件,从任何规模的组到单个开发人员。 |
| 在整个组织中分发和共享工件 | |
| 为了充分利用您的开发成果,您需要与组织中的其他开发人员和团队共享您内部开发的组件。 | 使用局部存储库Artifactory为您提供了一个存储内部二进制文件的中心位置,以便所有团队都可以从单个URL访问任何工件。为了支持远程团队,Artifactory提供了推式和拉式复制。 |
| 智能搜索和人工查询语言 | |
| 考虑到在任何软件开发组织中可能积累的大量包,找到特定的东西有时会变得相当复杂。 | Artifactory提供了多种搜索选项,从简单的名称搜索到常见的内置搜索功能,如“最新版本搜索”。Artifactory还提供独特的搜索方式校验和。人工查询语言(AQL)将搜索提升到一个新的水平,提供了一种基于任意数量参数制定复杂查询的简单方法。 |
| 用户插件 | |
| 您如何适应每个不同组织可能对工件管理的特定需求? | Artifactory提供了一个广泛的入口点列表,允许您实现响应不同事件的自定义行为。 |
| 许可证遵从性和开放源代码治理 | |
| 您如何管理在开发中要使用的所有组件的许多不同的许可要求? | Artifactory对部署到存储库的任何包以及随后的依赖项执行许可检查,并提供有关所有许可需求的即时反馈,为您提供在发布周期的早期遵守所需的所有信息。 |
| 高可用性 | |
| 作为组织中的关键任务组件,存储库管理器中的任何停机时间都可能对组织的生产力产生严重后果。 | Artifactory可以部署在具有两个或更多服务器的高可用性配置中,这些服务器可以将您的正常运行时间提高到5 - 9可用性级别。 |
| 维护和监控 | |
| 生成的包的数量可以快速增长。如果没有适当的管理,您的系统很快就会被旧的和不相关的软件包堵塞。 | Artifactory通过自动、计划的清理过程、对磁盘空间使用的监视和限制设置,以及在最关键的软件包上定义“监视”的能力,使您的系统免于混乱。 |
| 适用于所有二进制文件的通用端到端解决方案 | |
| 没有一种包装格式或技术足以支持现代组织中的开发。管理所有不同打包格式的二进制文件并与生态系统的所有移动部分集成可能成为维护的噩梦。 | 作为一个通用的存储库管理器,Artifactory支持所有主要的打包格式,包括Opkg,并与所有主要的构建工具和CI服务器集成。Artifactory还集成了通用分发平台JFrog Bintray。它们一起形成了一个通用的、完全自动化的软件分发管道。 |
总结
JFrog Artifactory是一个通用的工件存储库,它支持OpenWrt和Opkg的软件开发,以及目前常用的所有其他打包格式。Artifactory与所有主要的构建工具和CI服务器集成在一起,可以作为任何开发生态系统中的中心枢纽,通过高可用性配置提供无与伦比的稳定性,并提供对软件工件的可靠和一致的访问。通过管理和优化对Opkg包的访问,Artifactory提高了组织开发和DevOps团队的生产力。Artifactory还与通用软件分发平台JFrog Bintray紧密集成。Artifactory和Bintray共同为使用Opkg或任何其他打包格式的软件开发和分发提供最全面的端到端解决方案。
介绍
软件开发已经从专注于内部编码发展到广泛使用二进制组件,例如免费的开源和商业库以及内部构建的专有库。自动化过程的工具的出现,如构建工具和CI服务器,进一步帮助激发了组件的使用,今天一个典型的软件项目将由更多的组装组件组成,而不是专有代码。这种演变也在物联网(IoT)上留下了印记,基于OpenWrt的连接设备的开发今天得到了OpenWrt公共存储库中3500多个Opkg组件的支持。虽然这在成本和代码质量方面有明显的好处,但它也
提出了一些挑战:
- 如果OpenWrt公共存储库或任何其他远程资源不可用,如何访问所需的Opkg组件?
- 如何优化耗时且网络密集的构建过程?
- 如何管理安全性并控制对组件的访问?
- 如何在整个组织中有效地共享组件?
- 当一个组件被别人下载后,你如何找到它?
- 如何围绕组件的使用实现自定义行为?
- 您如何确保遵守各种许可证要求?
- 您如何确保您的专有组件和下载的组件始终对您的团队可用?
- 您如何支持使用来自各种不同技术的组件?
所有这些问题的答案都是Artifactory,它是通用存储库管理器,作为一个单一的访问点来组织所有的二进制资源,包括专有库、远程工件和其他第三方资源,特别是Opkg包。2022世界杯阿根廷预选赛赛程Artifactory完全支持Opkg客户端,可以透明地取代您的Opkg存储库,以应对这些挑战,并在使用Opkg和开源库进行开发时提高您组织的生产力。
01 |对包的可靠和一致的访问
OpenWrt包存储库是一个非常宝贵的资源,目前包含超过3500个包。作为OpenWrt开发人员,您可能需要定期访问这个存储库,以下载您正在开发的ipk所需的依赖项。但是,远程资源可能会出现中断,并2022世界杯阿根廷预选赛赛程且网络访问并不总是得到保证。你如何减少对外部资源和网络的依赖,以防止开发在其中任何一个出现问题时陷入停顿?2022世界杯阿根廷预选赛赛程
JFrog Artifactory是开发人员和外部资源之间的中介。2022世界杯阿根廷预选赛赛程作为一名开发人员,您的所有请求都指向Artifactory, Artifactory通过将远程工件缓存到本地,为您提供了对远程工件的快速和一致的访问远程存储库。虽然这听起来像是矛盾修饰法,但它实际上是有道理的。Artifactory上下文中的“远程存储库”指的是本地缓存,它是那些远程工件的代理。
远程存储库
远程存储库充当在远程站点(如公共OpenWrt下载服务器)上管理的存储库的缓存代理。根据控制缓存和代理行为的各种配置参数,在远程存储库中存储和更新构件。
由于远程工件随时可以从本地网络的缓存中获得,因此您不受外部网络问题的影响,并且如果远程资源出现故障也不会受到影响。即使在远程资源完全不存在的极端情况下,已经下载到本地缓存的任何工件仍然对您可用。作为一名开发人员,您可以继续您的开发工作,并且您的构建不会受到网络问题或存储库故障的阻碍。

02 |减少网络流量,优化构建
由于您的大部分代码可能是组装而不是构建的,因此您希望确保对从公共OpenWrt存储库或其他远程Opkg资源下载的包的使用进行了优化。2022世界杯阿根廷预选赛赛程两个(或200个)开发人员使用同一个包单独下载它是没有意义的。
除了可靠性之外,远程存储库的另一个好处是减少了联网。一旦下载了工件,组织中的所有其他开发人员就可以在本地使用它(从而减少了网络流量)。当然,这对单个开发人员来说都是透明的。一旦工件通过Artifactory访问,开发人员就可以继续做自己最擅长的事情,并将二进制管理留给Artifactory。如果我们从构建脚本的角度来看网络流量,其好处是显而易见的。一个典型的项目可能依赖于来自外部资源的数十甚至数百个工件。2022世界杯阿根廷预选赛赛程对于构建这些项目的工具,所有远程工件必须对服务器环境可用。下载所有这些必需的构件可能会在网络上产生千兆字节的数据流量,这会花费大量的时间来延迟构建过程。通过在本地缓存远程构件,构建过程要快得多,并且需要的网络连接要少得多。

03 |全面支持Docker
随着Docker技术的不断发展,它的使用也在不断增长。如果您还没有在您的组织中使用Docker,那么您很可能很快就会这样做。所以现在,除了管理Opkg包之外,还需要管理Docker镜像。但没必要上船
并维护另一个工具。Artifactory是一个完全成熟的Docker存储库,支持所有Docker Registry api。这允许Docker客户端直接与Artifactory一起工作,为企业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来管理您的Opkg包,您就已经涵盖了Docker映像。
04 |与您的构建生态系统完全集成
虽然让开发人员轻松高效地访问二进制工件很重要,但对于可能每天多次运行构建的构建系统来说,这一点更为重要。
通过一组插件,Artifactory提供了与当今流行的CI系统(如Jenkins、Bamboo和TeamCity)的紧密集成。这些系统在创建构建时使用Artifactory提供构件并解析依赖项,并且还将其作为将构建输出部署到相应的本地存储库的目标。
通过Artifactory运行构建的主要好处之一是完全可复制的构建。Artifactory存储详尽的构建信息,包括特定的工件版本、模块、依赖项、系统属性、环境变量、用户信息、时间戳等等。有了这些信息,就很容易在任何时候忠实地再现构建。此外,使用内置的“Diff”工具,您可以比较构建,从而确切地知道从一个版本到另一个版本引入了哪些更改。当试图追踪特定版本中报告的错误时,这些功能是无价的。
Artifactory还简化了发布管理。一系列简单的设置配置了诸如分级、构建升级、VCS标记等,基本上自动化了发布管理过程。
但是,如果您使用的是基于云的CI系统,而您不能应用插件,会发生什么呢?在这种情况下,Artifactory直接为构建工具本身提供插件,这最终提供了相同级别的构建自动化。从本质上讲,由于Artifactory是平台无关的,它可以与组织内所有构建生态系统中的通用工具集成。最后,一旦您的构建实现自动化,Artifactory将根据组织的维护策略清理旧的构建,从而使您的系统免于混乱。

05 |安全与访问控制
每个组织都需要实现安全策略,以便人们只能访问他们被授权使用的内部资源。2022世界杯阿根廷预选赛赛程但是如何控制组织中的人员从外部资源下载的内容呢?2022世界杯阿根廷预选赛赛程你如何控制哪些外部资源2022世界杯阿根廷预选赛赛程
是否被访问?然后,您如何控制组织中的人员将他们下载或正在处理的不同工件放在哪里?
Artifactory在多个级别上提供安全性和访问控制。从限制完整的存储库到限制单个工件,从任何规模的组到单个开发人员。使用通配符的“exclude”和“Includes”命名模式使您可以细粒度地控制可以下载哪些包以及从哪里下载。使用这种灵活的机制,您可以定义任何东西,从整个存储库排除在您的组织访问之外,到在存储库中包含单个工件,这可能对您的开发工作至关重要。一旦您决定了哪些内容可以下载到服务器上,您就可以定义哪些用户或用户组可以使用您可以配置的完整访问管理权限集访问它。您可以控制开发人员可以在哪里部署工件,他们是否可以注释元数据,他们是否可以删除工件等等。如果您关心的是对服务器的访问,Artifactory提供了与最常见的访问协议(如LDAP、SAML、Crowd等)的完全集成。
Artifactory中这些全面的安全性和访问控制功能可以帮助您管理开发过程,确保不同的团队只能根据需要访问存储库。在存储库的“包括”和“排除”模式之间,以及为不同的团队分配正确的权限,您可以严格管理对组织中的构件和存储库的访问。例如,您可以确保开发人员可以将发布目标部署到QA存储库中,但是只有经过授权的QA人员才能将其提升到“发布”存储库中,因为他们已经确保了发布候选版本满足了所需的标准。
在组织中分发和共享工件
虽然您的大部分产品可能由组件组装而成,但您仍然希望充分利用您的专有代码。如果您创建了一个包,您希望能够轻松地与它共享
团队和组织中的其他开发人员。
使用局部存储库Artifactory为您提供了一个存储内部二进制文件的中心位置。当所有团队都知道任何工件都可以从单个URL访问时,访问本地工件和管理不同团队之间的依赖关系就变得非常容易了。但是,如果您希望与组织中地理位置较远的同事共享包,该怎么办呢?
Artifactory支持将您的存储库复制到本地网络之外的Artifactory的另一个实例。复制的存储库会定期与它们的源自动同步,这样您的包就可以被世界各地的不同团队使用
局部存储库
本地存储库是物理的、本地管理的存储库,您可以在其中部署构件。它们通常用于部署内部和外部版本以及开发构建,但它们也可以用于存储在公共存储库(如第三方商业组件)上不广泛可用的二进制文件。使用本地存储库,所有内部资源都可以从跨组织的单个访问点从一个公共URL获得。2022世界杯阿根廷预选赛赛程
07 |智能搜索和人工查询语言
考虑到在任何软件开发组织中可能积累的大量包,找到特定的东西有时会变得相当复杂。
Artifactory通过UI和使用广泛的REST API为您提供灵活的搜索功能。您可以基于任何固有属性组合来查找包,例如名称、版本、时间戳、校验和和更多。但Artifactory
通过一组常见的内置搜索提供更多功能。例如,您可以轻松地找到任何包的“最新”版本,而不必指定版本号。Artifactory
还允许您为组件分配任何自定义属性集,这些属性稍后可用于搜索。例如,您可以用“已发布”属性标记产品发布中使用的组件的所有特定版本,以便在以后轻松地重现已发布的版本。但是搜索的全部功能都伴随着完全的灵活性AQL。使用AQL,您可以定义任何复杂程度的搜索查询,以提取您正在寻找的正确包。
08 |用户插件
虽然Artifactory提供了一组广泛的特性来管理二进制资源,但它不可能满足不同组织可能有的所有需求。2022世界杯阿根廷预选赛赛程输入用户插件。
用户插件提供了一长串入口点,这些入口点有效地扩展了Artifactory REST API,提供了一种实现复杂行为的简单方法。此功能为您提供了极大的自由来支持工作流中的几乎任何自定义需求,包括调度任务、管理安全性和身份验证、部署、构建集成和推广逻辑、维护和清理等等。为了保持简单,用户插件被编写为Groovy脚本,并有一个简单的DSL将它们作为闭包包装在扩展点内。插件可以随时更改和重新部署,甚至可以在您最喜欢的IDE中进行调试。
09 |许可合规和开源治理
是否曾经因为某人突然意识到有一堆许可证要求你必须遵守而受阻?
Artifactory可以帮助防止这种情况的发生。在将任何包部署到您的存储库时,Artifactory对您的工件及其所有后续依赖项执行许可检查,并提供有关所有许可需求的即时反馈。这可以让你提前做好准备,确保你在开发周期的早期就遵守规则,避免在你想要发布的“关键时刻”出现不必要的延迟。通过与Black Duck Code Center集成,您可以在管理通过Artifactory上传的所有二进制文件的同时,充分利用许可遵从性和开源治理特性。
10 |系统稳定性和可靠性与人工高可用性
二进制存储库管理器在包的管理中扮演着这样的中心角色,它可以成为组织的关键任务组件。任何停机时间都可能对您的生产力产生严重的影响,您需要确保开发人员可以访问您的Opkg存储库。
Artifactory支持高可用性网络配置,在同一本地区域上使用2个或更多Artifactory服务器的集群网络。冗余网络架构意味着不存在单点故障,系统可以继续运行只要至少有一个Artifactory节点是可操作的。这种冗余最大限度地延长了您的正常运行时间,并可以将其提高到“五个9”可用性的级别。此外,您的系统可以在不影响性能的情况下适应更大的负载突发。与水平服务器可伸缩性,随着组织的增长,您可以轻松地增加容量以满足任何负载需求。最后,通过使用Artifactory HA允许您在没有系统停机的情况下执行大多数维护任务。
高可用性系统
对于组织来说,被认为是关键任务的系统可以部署在高可用性配置中,以提高稳定性和可靠性。这是通过复制系统中的节点并将它们部署为冗余集群来实现的,以消除任何单个节点上的完全可靠性。在高可用性配置中,不存在单点故障。如果任何特定节点发生故障,系统将继续通过剩余的冗余节点对用户无缝透明地运行,不会出现停机或整体系统性能下降的情况。

11 |维护与监控
生成的包的数量可以快速增长。如果没有适当的管理,您的系统很快就会被旧的和不相关的软件包堵塞。
Artifactory通过自动、定时的清理过程使您的系统保持有序和整洁。通过一些简单的设置,您可以安排任务来清理旧的构建和未使用的包。您可以设置限制并监视磁盘空间的使用情况,或者定义“监视”,以便在最关键的包发生更改时接收警报。通过广泛的REST API, Artifactory几乎可以支持您想要的任何基于规则的清理协议在组织的脚本中实现。
12 |一个通用的、端到端的二进制二进制解决方案
没有一种包装格式或技术足以支持现代组织中的开发。有多种格式、多种构建工具、不同的持续集成系统和其他技术可以用于构建灵活且可维护的软件开发生态系统。管理所有不同打包的二进制文件格式和与生态系统中所有移动部分的集成可能成为维护的噩梦。
Artifactory从头开始设计,以适应任何开发生态系统。Artifactory独特地构建在基于校验和的存储上,支持任何存储库布局,因此可以为任何打包格式提供本机级别的支持。从本质上讲,无论您使用哪种打包格式,Artifactory都可以存储和管理二进制文件,并且对相应的打包客户端是透明的。客户端使用Artifactory的方式与使用本机存储库的方式完全相同。例如,如果你正在使用Docker, Artifactory代理Docker Hub(或任何其他公共Docker注册表),允许你在本地Docker注册表中存储和管理自己的映像,并透明地与Docker客户端一起工作。如果您正在使用Opkg, Artifactory代理公共OpenWrt存储库(或任何其他公共Opkg存储库),允许您将自己的包存储在本地Opkg存储库中,并透明地与Opkg客户端一起工作。类似的还有Vagrant, NuGet, npm, Ruby, Debian, YUM, Bower等等。
但是开发只是软件交付管道的一端。在一个包成为一个产品之前,它需要经历构建和集成的过程。市场上有许多构建和集成工具,但只有一种产品可以与它们全部兼容。通过一个
Artifactory提供了与Jenkins、Bamboo和TeamCity等当今流行的CI系统的紧密集成。这些系统在创建构建时使用Artifactory提供构件并解析依赖项,同时也作为部署构建输出的目标。为了支持您无法在其上应用插件的基于云的CI系统,Artifactory为您使用的构建工具(如Maven和Gradle)提供了插件,这些工具最终提供了相同级别的构建自动化。这就解决了开发和部署的问题,但是一旦软件准备好了,如何分发它呢?这就是JFrog Bintray的用武之地。
Bintray是JFrog在云端的通用分发平台,提供快速下载、细粒度访问控制、详细统计和日志以及广泛的REST API。从Artifactory推广发行版是一个点击一下或调用API的问题。像Artifactory一样,Bintray与包无关,可以与所有不同的包客户端无缝地工作,因此它可以完全集成到任何持续集成/持续交付生态系统中。
Artifactory是一个通用存储库。它是位于开发生态系统中心的单一工具,与所有不同的技术“对话”,提高生产力,减少维护工作并促进不同部分之间的自动化集成。JFrog Artifactory和JFrog Bintray共同构成了全自动软件分发管道的核心组件。
总结
JFrog Artifactory是一个通用的工件存储库,它支持OpenWrt和Opkg的软件开发,以及目前常用的所有其他打包格式。Artifactory与所有主要的构建工具和CI服务器集成在一起,可以作为任何开发生态系统中的中心枢纽,通过高可用性配置提供无与伦比的稳定性,并提供对软件工件的可靠和一致的访问。通过管理和优化对Opkg包的访问,Artifactory提高了组织开发和DevOps团队的生产力。Artifactory还与通用软件分发平台JFrog Bintray紧密集成。Artifactory和Bintray共同为使用Opkg或任何其他打包格式的软件开发和分发提供最全面的端到端解决方案。

