探索私有 Conda 包服务器选项:
以下是我们想到的要求列表:
最重要的要求是一个可以运行的 conda 服务器,其中包括对我们构建的私有包的身份验证。
我们希望能够从 澳大利亚手机数据 本地开发机器中提取软件包,这意味着服务器可以公开访问。
我们的下一个首要任务是能够在我们自己的 AWS 环境中托管服务器。鉴于团队规模较小(目前总共约 15 名用户),我们不想将大部分预算用于寻找企业解决方案。
最重要的是,使用定期维护的软件会很好。
我们探索了许多不同的第三方和开源选项来托管 conda 包。以下是我们探索的解决方案:
S3 选项:
AWS和Azure建议使用 blob 存储来托管 Conda 包。这涉及构建包,并将压缩包文件存储在 s3 上。可以添加 s3 存储桶作为 conda 通道。
您仍需确保 s3 存储桶中有一个索引文件,但网上没有太多关于此内容的信息,我们讨论了使用 lambda 函数在必要时遍历 s3 存储桶来重建索引。如果您希望在此过程中涉及任何身份验证,则需要做一些额外的工作。
由于缺乏现成的解决方案,以及需要进行额外的身份验证工作,可能会带来挑战,因此我们决定不使用此
第三方供应商:
Anaconda Cloud提供付费许可的私人频道。它提供开箱即用的令牌,您可以在访问私人 conda 频道时使用这些令牌对频道成员进行身份验证。
Artifactory和Sonatype为 Counda 套餐托管提供付费订阅,提供类似的功能,但每位用户每月需支付一定费用,这超出了我们的预算。
开源解决方案:
Daniel Bok 开发的 Go 服务器。目前没有维护,所以我们很快决定不使用此选项。
在 2019 年的一篇博客文章中,描述了一种使用 nginx 的解决方案。虽然这很有意义,因为 conda 文件是静态的,但没有关于重新生成 conda 索引的信息。
Quetz是一个很有前途的开源解决方案,由 mamba 和 boa 背后的团队维护,提供渠道隔离和用户权限定制。
其他选项:
Prefix.dev提供免费的私人频道设置,但对在私人环境中部署的担忧促使我们探索其他解决方案。
在下表中,我们对我们的 Python 开发团队的 conda 服务器的需求进行了MoSCoW 分析。