西班牙巴塞罗纳-微软和Docker Company于12月5日在DockerCon Europe 2018上联合宣布了一项名为云原生应用捆绑包(CNAB)的新规范,旨在让开发人员和组织更轻松地部署具有简化打包的完整应用系统。
CNAB目前提供了打包分布式应用程序的初始早期规范。根据微软和Docker的说法,该规范的目标是促进容器本地应用程序及其耦合服务的绑定、安装和管理。
”我们问道.如果我们可以安装云原生应用,会不会像桌面应用一样容易安装?”微软首席软件开发工程师马特布彻在DockerCon主题演讲中说。“我们正在发布云原生应用包的规范,这是非常重要的第一步。”
如今,有许多方法可以打包和分发容器和微服务应用程序,包括dockerfiles、Docker Compose和Helm chart。CNAB旨在应对现有包装系统的不同挑战。
Scott Docker首席产品官Johnston告诉eWEEK:“这(CNAB)是描述具有大量资源的分布式应用程序的一种有价值的方式,这些资源可以是容器或无服务器对象,可以部署在云中、边缘或本地。“有了CNAB,运营商可以获得一个不可变的捆绑包,这使得部署应用程序更加容易。”
约翰斯顿解释说,今天Docker看到组织复制和粘贴Docker Compose文件来捆绑应用程序。他指出,通过Compose,组织通常会硬连接特定环境所需的资源。使用CNAB可以消除复杂性,并为运营商提供可用于各种场景的单一应用程序包。
Docker已经成为开放容器倡议(OCI) APP图像格式规范的支持者。约翰斯顿说,CNAB使用OCI图像,以及Docker Compose文件和Helm图表。
约翰斯顿说:“在这种情况下,这些文物仍然可用和有用。“Docker映像是单容器应用程序映像,而我们正在尝试与CNAB解决分布式多服务类型应用程序。”
方向舵
在Kubernetes领域,开源Helm项目和相关的Helm图已经成为定义Kubernetes应用程序部署的标准方法。微软Azure云本地计算首席项目经理Gabe Monroy告诉eWEEK,成立Helm的同一个团队参与了CNAB的开发。
蒙罗伊说:“通过赫尔姆的经历,我们学到了许多可以应用于这项工作的经验。
从赫尔姆那里学到的一个例子是CNAB处理参数化的方式。Monroy说,使用Docker Compose文件,开发人员可以选择使用不同的参数来为不同的环境指定值。
蒙罗伊说:“我们看到的问题是,没有与这种参数化相关的模式,也不能保证我们能够验证它。“在CNAB规范中,对基于参数的模式有一流的支持,所以我们可以获得参数化的好处,保证数据的良好。”
Monroy补充说,虽然Helm适合Kubernetes,但软件开发的世界不仅仅是Kubernetes和容器。
Monroy说:“我们在这里希望做的是采用集装箱包装、配送和安全模式的神奇之处,但将其应用于企业今天必须管理的多元化资源。