对于我们这些开源软件 (OSS) 社区的资深人士来说,在我们的一生中,总会出现一些技术,彻底改变我们使用和管理技术的方式。在 2000 年代初期,高可用性 (HA) 和集群的概念使 Linux 真正在数据中心中占据了一席之地。
正如电源管理和虚拟化使我们能够从服务器利用率中获得最大的工程效益一样,如何真正解决虚拟化中的首要问题仍然很普遍。Docker 在 2013 年的开源真正可以将自己与开源发展中的这些关键时刻对齐——提供可扩展的构建模块,使我们作为工程师和架构师能够以前所未有的方式扩展分布式平台。与此同时,管理和保护底层技术以提供深度防御,同时牢记 Dan Walsh 的格言:容器并不包含。
Docker 的高级软件工程师 Jérôme Petazzoni 将在 OSCON 2014 上发表演讲,我有机会向他提出一些我认为 Opensource.com 的读者会感兴趣的问题。感谢 Jérôme 抽出时间回答这些问题,我敦促尽可能多的朋友参加他的和 OSCON 的所有其他主题演讲和分组会议。
从 DotCloud 到 Docker 的转变,以及发布 1.0 版本的惊人增长曲线,都表明了 Docker 如何展示你可以采用优秀的工程技术、出色的代码并交付它。公开地。为了确保你发布的代码是稳定的,你在发布 1.0 版本时付出了巨大的努力来落实最佳实践。许多项目都经历了一个曲线,他们从发布树转向突然开始考虑开发方法和测试环境。
在 Docker 经历的短暂发展历程中,您是如何发现这一点的?您从中吸取了哪些经验教训,可以帮助您在未来的版本中做得更好?
你说对了:“测试环境”。我们并没有等到 Docker 1.0 才将测试作为开发过程的核心!Docker Engine 很早就有了单元测试(早在 2013 年 3 月的 0.1.0 版本!),集成测试也紧随其后。这些测试对于项目的整体质量至关重要。一个重要的里程碑是能够在 Docker 中运行 Docker,这通过在我们测试 Docker 的环境中实现标准化来简化 QA。那是在 Docker 0.6 版本中,在 2013 年 8 月—— почти 一年前。这表明我们对测试和可重复性有多么重视。
但这并不意味着测试环境是完美的,并且永远不会改变。我们希望扩展测试矩阵,以便每个代码更改都可以在多台物理和虚拟机上、在各种主机发行版上运行,并使用 Docker Engine 的所有运行时选项组合。这是一项重要的工作,但也是必要的。它符合 Docker 的发展曲线,从“主要仅限 Ubuntu”发展成为今天的无处不在的平台。
Repository Program [注意:是 “Official Repository”] 的宣布确实增加了巨大的价值,并对合作伙伴如何与您合作表示了信心,您是如何在构建该程序时确保贡献合作伙伴可以公开参与并保持对其贡献的质量控制的?
为了参与 Official Repository 计划,合作伙伴必须将其源代码托管在带有相关 Dockerfile 的公共 GitHub 存储库中。这使 Docker 团队可以在宣布其为“Official”之前进行审查。此外,参与合作伙伴必须提供有关用户如何提交拉取请求以不断提高计划中 Official Repository 质量的说明。
在过去的十年中,开源社区和参与开源的支持公司已经向企业展示了采用 Linux 作为应用程序和工程解决方案主流工作负载的价值。Docker 现在是我们采取服务和应用程序provisioning下一步行动方式转变的关键部分,可能比近期历史上的任何时候都更加如此。您是否认为有足够多的企业了解 Docker 带来的更轻量级和敏捷的容器范式转变与 VMware 等重量级(且昂贵)技术之间的区别?
我们确实看到越来越多的企业理解这种转变。请不要误会我的意思:他们并没有放弃虚拟机来用容器取代它们。这两种方法(重量级和轻量级虚拟化)是互补的。拥抱容器可能是一个巨大的范式转变,但它不必如此。在与开发人员和运维团队讨论 Docker 最佳实践时,我们经常并排展示两种方法:渐进式和革命式。前者需要对现有流程进行少量更改,但可以显着改进;后者,顾名思义,更具戏剧性——无论是在实施成本(对于现有平台)还是实现的节省方面。我们的用户和客户欣赏这两种可能性,并选择最适合他们需求的一种。
Docker 在确保为您用户提供 Docker 架构中安全概念的完全透明度方面非常开放和负责。您是否看到有机会拥有一个“超级 Docker”容器,让您可以在未来的版本中强制执行强制性控制,从而减少您的威胁攻击面,并最大限度地利用命名空间的优势,并限制(和审计)对控制套接字的访问?
这是一种可能性。我个人认为安全不是一个二元过程。没有单一的功能可以为您提供绝对的保护。您必须部署多个额外的层:安全模块(如 SELinux 或 AppArmor)、内核隔离功能(如用户命名空间)、UNIX 通用最佳实践(如“不需要时不要以 root 身份运行”)以及当然要及时了解您在应用程序组件中使用的库和框架的安全公告。
一个新的“超级 Docker”容器可能不会增加很多安全性;但是,如果多个相关容器需要共享文件或数据的先进或高效方式,则可以使用它将它们分组在相同的安全上下文中。
我个人对 Docker 感到兴奋的原因之一不仅仅在于它为我们提供的能力,即为客户提供稳定的服务并构建我们想要的平台,还在于将 Linux 安全地带到我们已经“触及”但 Solaris 和 AIX 仍然根深蒂固的新领域。Linux 在机密和政府领域的使用与 Common Criteria 挂钩,以确定评估保证级别。Docker 是一个游戏规则改变者。它实际上是 Linux 故事中最突出和最重要的青春期变化之一。Docker 实际上有机会打破规则手册。政府是否意识到 Docker 给他们带来的机会,如果不是,这是否是您将在 Docker 作为组织的下一步行动中参与的事情?
政府市场非常了解 Docker,并且已经与我们取得了联系。我们一直与政府组织保持联系,包括情报部门内的组织。
您个人来自服务提供商背景,曾通过您自己的公司 Enix 帮助组织满足托管和私有云需求,因此您知道许多托管公司现在正在寻找云,但已经构建了人们不想在其上消费服务的云——因为他们不得不拥有云。尤其是那些已经将其大部分预算花在专有技术上以帮助他们进入云的公司。您是否看到他们中的许多人现在正在敲您的门,意识到客户需要关注 Docker?
许多渠道合作伙伴认识到 Docker 的可移植性优势,并正在积极开发基于 Docker 的实践,以帮助其客户摆脱对任何特定服务提供商的任何技术依赖。
他们过去对私有云的投资仍然相关。如果他们部署了(例如)OpenStack,他们已经可以通过 Nova、Heat 以及即将推出的 Solum 来利用 OpenStack 和 Docker 之间的多种集成。即使他们构建了自己的内部 IAAS 解决方案,他们仍然可以在其之上部署 Docker 以供自己使用或提供给他们的客户。当然,原生方法(即销售“Docker 即服务”)将需要额外的集成工作,但 Docker 并不会降低其平台的价值:它补充了它并解锁了新的收入渠道。
展望未来,您对 Docker 有什么希望和抱负,不考虑 Solomon 或 Ben 因为总是倾向于抛弃整个开发环境的新功能而敲您的门?
Docker 平台为 IT 团队提供了一种构建、交付和运行分布式应用程序的新方法。我们的目标是发展一项伟大的、可持续的业务,以培育活跃的社区生态系统,并为正在转向 微服务这个新世界的客户提供出色的解决方案。
评论已关闭。