DockerCon 2016 会议:发布内容的总结及主要收获

  • Daniel Bryant
  • Rays

2016 年 7 月 3 日

话题:DevOps语言 & 开发

在美国西雅图举办的DockerCon 2016 会议发布了最新的 Docker 引擎1.12 测试版 。该测试版中通过集成 Docker Swarm 特性而提供了容器编排工具。此外,会议的其它发布内容还包括:公开发布了运行于 Mac 和 Windows 系统上的 Docker;开放了应用于 AWS 和 Azure 平台的 Docker 封闭测试版本;发布了一种实验性的、称为DAB(分布式应用包)的自由文件格式,该文件格式基于 JSON,用于构建多容器应用传送和部署中所需的所有应用组件;开放了新Docker 仓库,及用于Docker 数据中心AWS 快速入门和 Azure 市场模板的封闭测试版本。

最新版 Docker,即 1.12 版,计划将于今年七月发布。该版本以在Docker 引擎中集成了Docker Swarm为主要特性,并将容器编排工具授权为 Docker 的内置命令。Solomon Hykes,Docker 公司的创建人及 CTO,指出 Docker 团队相信通过添加该附加功能,将会使 Docker 引擎成为编排工具的构建模块,形成“用于多容器分布式应用运行的自组织、自恢复的机器池”的引擎创建模式。

“当前编排工具的发展阶段类似于当年 Docker 出现前容器化的发展。此前对一个应用系统,你或者需要一个专家队伍去构建它,或仅依靠个人所能的单一平台由此导致系统选型完全受限。三年前,我们通过引入容器实现了对非专家可用的、而非锁定于专家的系统构建,这使得容器化技术成为主流。我们认为对于编排工具,当前我们正在做着同样的事情。”

Docker 1.12 的设计基于以下四个原则

  • 简单而强大 - 编排工具是当前分布式应用的核心部分;“考虑到它具有如此核心的地位,我们已经将它集成入 Docker 引擎的内核。”
  • 有弹性 - 机器可在任何时刻发生故障。当前系统应考虑到这样的故障可能经常出现,具有自适应能力以避免应用出现任何宕机。
  • 安全性 - 安全性应是系统的默认考量。系统应该去除诸如证书生成及 PKI 强制理解等影响强安全性的障碍。但是,高级用户应仍可以对认证签名和签发的各个方面进行控制和审计。
  • 特征可选和向后兼容 - 所有新特性都应是可选的,且选用这些特征不会引入额外的开销(内存,CPU)。

为支持编排工具,Docker 引擎远程 API中已添加了新的 API,包括服务节点,并使用了与现有编排系统,诸如KubernetesCloudFoundry等,相似的术语。Ben Golub,Docker 公司 CEO,指出该新特性将在所有可下载的 Docker 引擎 1.12 版中集成。但是为了维持 API 的向后兼容性,“Swarm 模式”默认是未启用的。

“Docker 引擎中的编排工具与其它现有模块匹配,但也允许用户继续使用任何基于 Docker 引擎所构建的第三方编排工具。”

Hykes 宣称已经公开运行于 Mac 和 Windows 系统上的Docker 测试版,并在当前可下载的软件中已包括了 Docker 1.12 测试版。该测试版的目标在于提供“Mac 和 Windows 系统上的无缝开发环境”,其主要特征包括:更快速及可靠的原生开发环境。不同于 VirtualBox 虚拟机,Docker 使用了构建于各个系统平台中虚拟层; 容器内的调试和研发。Docker 改进了卷支持技术,可在文件发生了改变时自动告知 Docker 引擎,进而在容器内做相应更新;原生的网络支持,这使得运行于 Mac 和 Windows 系统上的 Docker 可有效支持 VPN。

此次会议还发布了应用于AWSAzure平台的 Docker 测试版,是一种“集成的、易于部署的环境,用于云环境中应用的构建、组装及发送”,它提供了在 AWS 和 Azure 中高效地安装、配置和维护 Docker 部署的方法。该测试版的目标包括:实现标准 Docker 平台的部署,以确保应用可从团队中每个开发者的电脑中无缝地迁移到 Docker 的模拟部署和生产环境中,而没有兼容性或者锁定的风险;与底层基础设施的深度集成,以确保 Docker 可使用宿主机的原生功能环境,为管理员提供其所熟悉的操作界面;针对在公开云中部署的相关的硬件、操作系统及硬件设施,该测试版将确保提供可用的最新 Docker 版本,并为 Docker 版本的升级提供“切实可用的更新途径”。

在以上发布内容之外,Golub 还展示了一种仍处于试验阶段的基于 JSON 的自由文件格式,称为DAB(分布式应用包)。DAB 用于构建和打包发送在部署多容器应用中所需的所有应用组件。DAB 中包括运行应用所需所有服务的描述信息,以及所使用的 Docker 镜像、映射的端口及用于服务间关联的网络信息。

“在使得应用部署稳定且可重构之外,DAB 还避免了复杂应用构建中需要创建许多独立服务的繁琐操作。这使得 DAB 成为 Docker 1.12 版本所引入的、在服务概念之上的一种更实用的抽象。”

新 Docker 商店的封闭测试版已经开放,其目的在于提供一个对可信且可用的 Docker 化软件的交易市场。Docker 商店将包括免费的、开源的及商业的软件,其目标包括:向 ISV 提供可扩展的自服务系统,用以分发经认证的、“可直接用于企业级应用”的内容;提供一种验证软件质量的发布过程,该验证过程包括:安全性扫描、组件发现、开源许可使用情况及最优方法在镜像构建中的使用情况;从已验证可信的发布者处,为企业用户提供兼容的、具有商业支持的、打包为 Docker 镜像形式的软件;具有商店中软件的搜索、浏览及分类功能。

“我们 Docker 商店的设计目标,是围绕于将 Docker 用户和 Docker 生态系统的合作者联系在一起。”

会议最后还发布了用于Docker 数据中心AWS 快速入门和 Azure 市场模板,目的在于提供“具有产品就绪且高可用特点的、在数次点击内即可完成的 Docker 数据中心云部署”。其中的 AWS 快速入门使用了 CloudFormation 模板,而 Azure 市场模板使用了预先构建的模板,以达成“前所未有地易于在公有云基础设施中部署企业级容器即服务(CaaS)的 Docker 环境”。 Docker 数据中心包括Docker 通用控制面板Docker 可信注册(DTR)、提供商业服务支持和订购以匹配企业应用 SLA 的CS Docker 引擎

在本次 DockerCon 2016 会议中,Docker 运维的着力点得以明确。在一次媒体午餐会上,Golub 说近 25% 的会议参加者具有与运行或系统管理功能相关的职务。他提出,虽然容器的引入使得企业“运维工作或许会发生改变”,但是将应用部署单元标准化为容器还应避免处理各种应用打包格式所导致的复杂性,由此才可大大简化对已部署应用的理解、保全及管理工作。

Golub 指出,“在近 15 年内所编写的任何应用都可以被容器化”,但他也强调此事应慎重而为之。他分享了多个企业中所遇到的实际情况。这些企业从一开始就使用 Docker 将其应用整体容器化,进而按计划将这些容器分解为微服务模式应用,使得每个应用都运行于各自独立容器内。Golub 指出,Docker 的理念在于激励“增量变革”,因而企业在同时部署新的和旧的应用时,应该遵循“中间一致性”的原则。

要获取会议的更多信息,可访问DockerCon 2016 会议的官方网站,或者访问 Docker 博客的“dockercon”主题中内容。

查看英文原文DockerCon 2016: A Summary of Announcements and Key Takeaways


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

DevOps语言 & 开发