Hang

Cloud Native Artifact Registries

2019-08-26

Helm3 的 design proposal 里面介绍了对于Chart Repo 融合到 Distribution 的提议。目前已经有了实验的 demo,理论上并没有什么问题。因为 Distribution的设计里并不是只能存镜像,而是一个开放的协议。我们可以想下目前企业在 DevOps 场景下,除了代码之外,有哪些文件需要存储

  • 构建产物
  • 二进制程序
  • Helm Charts
  • 镜像仓库
  • 测试报告
  • 代码分析报告
  • Kustomize 文件

等等。为数众多,而且都是存储于不同系统的。构建的产物一般都暂存于构建系统内部,有失效时间。镜像在 Docker Hub 或者 Harbor 中,Helm Charts 在官方仓库或者 chartmusuem 这样的仓库中。基本上每一项都需要单独维护存储设施,分别要使用不同的客户端。Helm3 的这个迁移的决定,不止对 Helm 本身有很大的意义,对于其他的产品也具有很大的启发意义。Docker公司本身也在做这方面的 整合, Docker app 既可以用来分发 docker-compose 文件还有 CNAB 格式的应用。在可以遇见的将来,所有的 Artifacts 共用一个存储和客户端是可能的。

这有一另外的一个好处是,这是一个独立于云提供商的平台。不管是在 AWS/GCE/AZURE 还是其他云平台,不管是用 S3 还是其他存储,Distribution 这样的平台可以提供统一的接口。

另一方面,Kubernetes 平台上应用的分发格式也处于激烈的竞争阶段,目前常用的就有以下几个:

  • Docker App
  • Docker Compose
  • CNAB
  • Helm
  • Kustomize

Distribution 这样的平台能帮助用户减少很多使用负担和迁移成本。预测来看,Helm/Kustomize 最终的赢面大些,docker 可能只能继续专注于更底层的业务。

链接#