CNAB Spec

查看原文

CNAB (Cloud Native Application Bundles) 是关于打包,安装,管理分布式应用的规约。

  • https://github.com/deislabs/cnab-spec/blob/master/100-CNAB.md
    • 它可以打包多种运行时的安装工具,例如 Helm,Terraform。
    • 他可以支持打包到多种后端,各个云平台,甚至离线的环境。例如,openstack, azure, kubernetes, nomad, local docker, aci, 甚至 IoT。
    • bundle.json 中定义了元信息,invocation image(简单来说,有点像桌面系统的安装器),可让用户自定义的参数,executable images,以及镜像们所需要的环境变量和密钥。
    • bundle.json 是未签名的,bundle.cnab 是签名的。
    • thin bundle:只包含了 definition 的包。
    • thick bundle:包含了 definition 以及所有经过编码的 invocation image,execution images。
    • 一个 bundle 包含了元信息和至少一个 invocation image。invocation image 安装依赖到 host environment。
    • run tool:bundle 的入口程序。
    • claim: 安装历史,用于追踪 bundle 的安装。
    • bundle repositories: 存放 bundle 的仓库。
    • image: 可以是 container 镜像,也可以是 VM 镜像。

衍生思考:CNAB 尝试要解决的问题是个很大的命题,如何安装云端的应用程序。我们有太多的工具和工具链,出现一个标准是个好事。