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