自托管网关,用于缓存包的交付和故障转移
体验一个统一的网关,将 GitHub、容器注册表、语言包管理器和操作系统仓库整合在一个稳定的域名下。MirrorProxy 由 MirrorProxy 贡献者维护,作为一个自托管的代理运行,并根据需要缓存依赖项,以减少重复下载和带宽。其基于适配器的核心支持超过 30 个生态系统,跨平台的 CLI 让团队能够检查和切换源,使其适合在受限或高延迟网络中工作的开发人员和 CI/CD 工程师。
MirrorProxy 在实践中实现了什么?
MirrorProxy 充当一个全能网关,为多个上游提供单一域名,结合了大约 30 个来源的适配器,包括容器注册表、npm、PyPI、Cargo、Go 和主要操作系统存储库。它执行按需代理,而不是完整的存储库镜像,因此它仅获取和缓存构建或开发者请求的文件,这样可以保持存储使用的界限,同时让团队集中解决依赖关系。
它是否提高了构建可靠性和带宽使用?
该工具通过使用有限的磁盘缓存和 HTTP 条件重新验证来减少重复下载并增加上游弹性,以保持缓存项目的最新。它支持多个上游端点,具有自适应选择和自动故障转移以及定期健康检查,这有助于避免在 CI 运行期间出现单点故障的停机,并在多次请求工件时降低外部带宽。
运行它是否安全并且团队可以管理?
MirrorProxy 作为自托管服务运行,并提供检查工具,并为 Windows、macOS 和 Linux 提供跨平台 CLI,以管理代理配置和恢复源。该项目是开源的,由贡献者 inbjo 领导,并使用 Rust 和 TypeScript 构建以提高性能,这意味着团队可以审核代码并在其自己的管理下在受限网络中部署网关。
为自托管依赖网关的团队提供的实用权衡
MirrorProxy 适合需要可靠的、缓存的访问许多软件包生态系统和减少外部带宽的开发和 CI 团队,因为它提供按需缓存和多端点故障转移。主要的权衡是操作性:您必须部署和维护一个自托管网关,并配置上游端点,这需要一个管理员角色来进行持续的健康检查和源调优。对于能够运行该服务的团队,它提供可衡量的依赖稳定性。