NetApp Tech OnTap NetApp Logo
NetApp Tech OnTap
     
利用 Docker 容器技术快速交付应用程序
Melissa Palmer
Melissa Palmer
NetApp 系统工程师

作为一名 NetApp 系统工程师,我始终都在关注我的客户用来加快业务发展的新技术。在 NetApp 首席技术官 Jay Kidd 的 2015 年技术预测 中,他提到了一项称为 Docker 的迅速发展的新技术。我完全赞同他“Docker 取代虚拟机管理程序成为横向扩展应用程序的理想容器”的论断。

我有虚拟化领域的经验,也是虚拟化社区的一名活跃分子。我获得 vExpert 称号已有两年,我留意 Docker 也有一段时间了。去年 11 月份,我参加了为期 30 天的博客撰写挑战(30 天写出 30 篇博文!),这项活动是我帮助运营的名为“虚拟设计大师”在线虚拟化社区的一部分。在参加那次挑战期间,我撰写了许多关于 Docker 的博文,而且从那时起,我就一直在关注这一主题,因此当 Tech OnTap 邀请我分享对这一主题的看法时,我非常乐意浅谈一下我的见解。

Docker 是什么?

当前许多技术趋势都在关注从硬件抽象基础架构。Docker 是一个开源平台,它通过从运行应用程序的服务器操作系统抽象应用程序,将抽象过程又向前推进了一步。Docker 不需要为每个应用程序创建一个虚拟机,而是在一个操作系统实例上的容器中运行应用程序。

容器

您可以在支持 Docker 引擎 (这相当于 Docker 的大脑)的任何平台上运行轻型容器。Docker 引擎几乎可以在任何环境中运行,从数据中心基于 Linux 的服务器到基于 Windows 的笔记本电脑,乃至云环境均可。无论基础架构如何,Docker 容器都以相同方式运行。Docker 几乎可以在任何环境运行能让应用程序抽象达到全新的高度,这也让 Docker 成为构建、分发和执行分布式应用程序更为简单的方式,从而支持企业根据需要更灵活快速地轻松扩展应用程序。

Docker Hub

Docker 生态系统的另一个关键组件是 Docker Hub ,这是一个存储 Docker 图像以便在 Docker 社区重用和共享的集中存储库。Docker Hub 有许多正式 Docker 存储库,例如 Ubuntu、mongoDB 和 Java。这些存储库更便于开发人员开始使用 Docker,因为他们可以从 Docker Hub 提取官方图像,对其进行修改以满足自己的要求,并将经过修改的图像回传到 Docker Hub,便于团队成员或 Docker 社区进行访问。

许多开发人员已经创建了带有数据库和 NoSQL 环境的预封装 Web 服务器,这些服务器位于单个或一系列容器中,可供组织内部或外部的其他开发团队利用。随着 Docker 越来越受欢迎,软件供应商也可能开始以容器形式提供产品。

另外还为需要将所有 Docker 活动置于防火墙后的企业提供了企业版 Docker Hub。

虚拟机就像一个容器,对吗?

嗯,是有点像。Docker 引擎不是像 VMware ESXi 那样的虚拟机管理程序;它可以运行在物理硬件之上、虚拟机管理程序之上的虚拟机中,或者云平台上。虚拟机具有特定配置,包括运行于该虚拟机中的特定应用程序所需的操作系统和任何其他组件。

关键差别在于:每个虚拟机必须装有自己的操作系统。这意味着有可能需要为许可证、操作系统特有配置以及架构依赖项等支付额外费用。

Docker 容器包含一个应用程序(或多个应用程序)和运行应用程序所需的共享资源,例如二进制文件和库。想像一下每个组件都在同一操作系统之上的容器中运行时您可以实现的效率。

当您将应用程序的所有组件都放入容器中时,该容器就会充当一个逻辑结构,从而确保将应用程序和工作负载分隔开来。这样您便可以运行具有多个应用程序的多租户环境,而不必担心它们会互相干扰。

图 1) 虚拟机与容器的比较。

Quasar Data Center

来源:NetApp,2015 年

Docker 和云

无论您运行的是混合云、公共云还是私有云,Docker 都可以完美契合您的云战略设计。诸如 Amazon Web Services (AWS) 等许多超大规模云提供商均支持 Docker。这对于开发非常有利,因为您只需要进行几分钟的测试便可轻松让新环境开始运转。Docker 容器将像在工作站上或数据中心中一样运行。像 AWS 这样的服务对于 Docker 开发者而言极其有用。

支持 DevOps

Docker 同样也会让运营团队受益。应用程序环境无论运行在内部还是云中,都将得到同样的支持,这样就简化了动态应用程序的管理。

许多企业已开始实施 DevOps 方法以进一步简化其进入市场的过程。Docker 兼容功能强大的经典 DevOps 工具,例如自动化引擎 Ansible 。因此您可以集成现有和新开发流程,从而提供您可以在任何位置运行的强大自动化基础架构。

社区项目推动着 Docker 生态系统的业务流程和部署工具的开发。此外,Docker, Inc. 还创建了用于进行集群和组合的 Machine、Swarm 和 Compose 构建和业务流程产品。在活跃的 Docker 社区创建工具让 Docker 变得切实可行的过程中,上述创新只是开始。

为 Docker 配置存储

Docker 容器可以在易于管理的环境中利用不同的存储类型。可以通过两种方式为 Docker 环境提供存储:

  • 在 Docker 容器内配置卷。您可以从 Docker 容器内创建并装载新卷。您也可以从运行 Docker 引擎的主机操作系统中将卷装载到 Docker 容器。
  • 创建数据卷容器。单独的数据卷容器通常与非持久性 Docker 容器结合使用。例如,横向扩展应用程序可能利用数据卷容器存储持久性数据,以便在不丢失数据的情况下根据需要横向扩展和缩减多个 Docker 容器

Docker 和 NetApp 集群模式 Data ONTAP

到目前为止,您可能觉得 Docker 和 NetApp® 集群模式 Data ONTAP® 的工作方式是类似的。集群模式 Data ONTAP 充当存储硬件(包括 CPU、内存和驱动器 — 无论驱动器是 SATA、SAS 还是 SSD)的抽象层。Storage Virtual Machine (SVM) 运行于 Data ONTAP 之上,类似于 Docker 容器运行于 Docker 引擎之上。每个 SVM 可以拥有自己的命名空间,这样便于支持 Docker 这样的横向扩展环境。

Data Fabric 将优势扩展到云

NetApp 正利用其 Data Fabric 方法将集群模式 Data ONTAP 抽象的优势扩展到云。 Docker 的简单跨平台和跨云管理可以与 NetApp 技术支持的 Data Fabric 实现完美结合。

您可以使用 FAS 存储在您的数据中心运行 Docker,然后使用适用于云的 NetApp 私有存储解决方案 (可用于 AWS、SoftLayer 和 Azure)或 Cloud ONTAP (可用于 AWS)将整个环境迁移到云中而无需做任何更改,并使用相同工具在任何位置执行所有数据管理任务。

要了解有关将 Docker 与集群模式 Data ONTAP 结合部署的更多信息,请阅读白皮书《使用 NetApp 和 Docker 技术改进和加速混合云环境中的开发/运营》

踏上 Docker 这艘“容器之船”

您可能会问这样的问题:“我应在何时踏上 Docker 这艘小船呢?”答案取决于您的业务需求。Docker 可以帮助您改进开发和部署流程,让您可以更快地交付软件和提高质量。当希望实施或升级应用程序时,许多企业都已着手使用 Docker 平台。

无论是在笔记本电脑还是 AWS 上运行 Docker,部署方式都异常简便。Docker 背后的开源社区提供了丰富的信息。您甚至可以使用模拟器在其网站上测试 Docker,直观地了解其基本情况。集成到 Ansible、Azure、AWS 和 OpenStack 等基础架构组件中便是 Docker 快速发展并且广受欢迎的明证。

Docker 以及向应用程序和服务容器化方向发展对某些公司而言是一种巨大转变。值得庆幸的是,在此征途上您并不孤单。无论是您的开发团队设法提高部署和测试代码的灵活性,还是您的运营团队希望确保开发、测试和生产之间的一致性,您都可能非常需要采用 Docker。现在正是了解这项创新性新技术的大好时机,它与 NetApp 的 Data Fabric 愿景正好相符。


 利用 Docker 容器技术快速交付应用程序 有任何见解?

请在 NetApp 社区中在线提出问题、交流观点、分享看法。

Tech OnTap
立即订阅
Tech OnTap 每月发布一次,为用户提供 IT 见解,以及对实际应用的最佳实践、技巧和工具、幕后技术访谈、演示、同行评论等的独家访问。

访问 NetApp 社区中的 Tech OnTap ,立即订阅。

Explore
Microsoft 对 Docker 的支持

2014 年 10 月,Microsoft 和 Docker 公布了将 Windows 服务器生态系统与 Docker 社区联合起来的计划。这种联合为什么非常重要?无论是在数据中心中、云中还是 Azure 上,都有许多应用程序在 Windows 服务器上运行。最近的 Azure 一体化云发布 让大家对 Microsoft 生态系统中的 Docker 极其关注。

通过将 Docker 功能添加到 Windows 平台之上,您可以兼得鱼和熊掌。在 Windows 的配置管理和修补程序管理功能保持不变的同时,开发人员可以尽享灵活、快速、可复制且可预测的容器带来的好处。在现有 Windows 基础架构上提供容器,这一点对吸引在 Windows 上投有巨资的企业至关重要。Microsoft 也正努力在作为 Docker 托管目标的 Hyper-V 上提供相同的功能组合支持。

Explore
TRUSTe
联系我们    |   如何购买   |   反馈    |   招聘   |   订阅   |   隐私政策   |   © 2015 NetApp