写点什么

微软 Azure 云的 Docker 之路:兼容、原生与未来

2014 年 11 月 28 日

全球范围内技术领先的微软 Azure 云,无论从技术储备上还是从开发社区上,一直以来都受到业界的广泛称赞。与传统的云计算服务商不同,Azure 这个后起之秀凭借 Windows Server 和混合云等技术,正逐步获得更多的市场占有率。从新的存储架构到基于 Visual Studio 的开发框架,甚至新的硬件架构设计,Azure 云仍然一直在不断自我革新和进步。

现今,商业模式与商业气候对人们的创新要求日益增加,如何简单快速部署可移植的分布式的应用是近几年云计算领域努力解决的问题,Docker 在这样的大背景下应运而生,并迅速获得社区认可,它能够在几分钟甚至更短的时间之内就将代码开发转换成产品,实现实时转换。Docker 是一个开源的应用容器引擎,它能帮助开发者打包应用以及应用的依赖包,并构建为一个可移植的容器,从而发布到任何流行的 Linux 或者 Windows 机器上,或者虚拟机。Container 完全使用沙箱机制,容器相互之间不会有任何接口,就如同 iPhone 的应用之间没有公共部分。这样的优势非常明显,应用的移植几乎没有性能开销,可以很轻松地在机器和数据中心中运行。最重要的是,这些容器不依赖于任何语言、框架或包括系统。

在业界对容器技术强烈的需求导向下,各大云计算厂商都纷纷开始考虑采用 Docker 作为其虚拟化技术的一部分。同样的,Azure 也走上了一条先兼容再原生最后为己所用的 Docker 技术之路。

一、兼容

鉴于 Docker 在云计算虚拟化领域的迅速火热,Azure 云首先采取了在自己的 Linux 虚拟机上兼容 Docker 的方式来吸引 Docker 社区的开发这。2014 年 6 月 9 日, Docker 开发者大会上,Azure 云合作伙伴项目经理 Corey Sanders 展示了直接利用 Azure 跨平台工具集(由微软开放技术组开发)在其 Linux 虚拟机上运行 Docker。这种兼容的方式,仅通过一条简单的“azure vm docker create”命令即可调用 Docker 进行容器的创建。更多细节步骤可以参考微软开放技术组给出的用户说明。在而后的7 月,Azure 则进一步宣布与Google 和Docker 合作来支持 Kubernetes libswarm 开源项目在其云平台上的运行。Kubernetes 是 Google 公司多年以来进行大规模容器管理的经验汇总而来的开源工具,发布以来收到业界广泛的好评,目前处于容器管理方面的领头位置,此前 InfoQ 也对其基本概念、构件等相关内容进行了介绍。Libswarm 则是Docker 官方团队开源的一款容器管理工具。Azure 云在这些工具的帮助下,更加灵活的支持着开发者的需求,使他们能够快速的构建、部署和管理跨系统、跨语言甚至公有私有混合的容器集群。在这里,无论是.NET、Python、Ruby、Node.js 还是Hadoop 和Oracle,都能够和Azure 云平台无缝结合并运行,极大的简化了Windows Server 系开发者的开发工作。更多的工具正逐渐加入Azure 云管理工具集,如Puppet、Chef 等。

在Windows Server 下一个开发版本中,Docker 引擎将会成为一个重要组成部分。同时,支持Windows Server 的Docker 引擎镜像将会在Docker Hub 平台上发布,超过45000 个Docker 应用已经发布在了这个社区上。这将会大大帮助开发者在Windows Server 和Linux 平台上灵活地进行选择。

二、原生

兼容模式虽然是最快使用Docker 的方式,但是开发者仍然需要准备Linux 虚拟机作为Docker 管理主机,这在一定程度上干扰了开发者的便捷开发。为此,2014 年11 月18 日,Azure 云高级经理Khalid Mouss 在官网发布了可以直接在Windows 服务器环境下运行的原生Docker 客户端,用来管理运行在Linux 虚拟机上的Docker 镜像。而在此之前,开发者只能使用Linux 下的Docker 命令或boot2docker 工具来进行管理。这一举措极大简化了开发者使用Docker 容器技术的曲折程度,得到了社区的热烈反馈。更多编译和使用原生客户端可以参考官网给出的教程。当然,目前原生软件还存在很多问题。让原本运行于Unix 系统下的Docker 在Windows 系统上跑起来绝对不是一件轻而易举的事情。而目前软件的功能还仅限于将Docker 客户端的代码编译通过,还不能在Windows 环境下运行Docker 监控程序或Docker 容器。

除了积极采用Docker 容器技术以外,Azure 云团队也利用微软研究院强大的实力做了一些容器技术的自主研发:Drawbridge。主要针对现在Docker 容器的安全性。相比之下,Docker 功能比安全更引人瞩目,但这并不意味着安全是可以忽略的。坦率来讲,现在的容器并不安全。虚拟机与宿主之间共享数据过多又不能有效隔离,影响了容器安全性,至少在云计算容器用户间还达不到安全性要求。Drawbridge 由两部分构成,分别是一个安全隔离容器picoprocess 和一个运行于安全容器之内的系统Library OS。整个技术基于Windows Server。

三、未来

2014 年 10 月 15 日,Azure 云和 Docker 共同举办了 Docker 全球开发者大会。在 Azure 云副总裁 Jason Zander宣布了微软与 Docker 的合作伙伴关系以后,强强联合的两只技术团队对未来做出了如下设想:

  • 在下一个版本的 Windows Server 中自带 Docker 容器引擎;
  • 在 Azure 管理门户和镜像库中融合 Docker Hub;
  • Azure 持续发布对 Docker 开放 API 的贡献,保证跨平台移植得以实现;

微软与 Docker 的合作是强强联合,在各自的领域中两个公司都是行业翘楚。Windows Server 是企业级的应用系统,Docker 的容器技术已经日趋炉火纯青。不难预见,Azure 云的 Docker 之路将会给应用创新的商业市场中带来巨大变革,带动整个产业竞争力的提高。


感谢郭蕾对本文的策划和审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 11 月 28 日 06:462556
用户头像

发布了 268 篇内容, 共 101.6 次阅读, 收获喜欢 17 次。

关注

评论

发布
暂无评论
发现更多内容

如何把百万级别的订单根据金额排序

码哥字节

数据结构 排序算法

话题讨论|在编程中,有哪些好习惯是应该一直坚持下去的?

InfoQ写作平台官方

写作平台 话题讨论 话题

《中国区块链产业园15强名录》

CECBC区块链专委会

Redis基础:redis特点

奈学教育

redis

Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

YourBatman

spring springboot

一口气讲透一致性哈希(Hash),助力「码农变身」

码农神说

一致性算法 一致性哈希 一致性hash 一致性Hash算法

吴恩达推荐笔记:22张图总结深度学习全部知识

程序员生活志

学习 吴恩达

将设计模式应用到日常的curd中—分离关联查询

LSJ

Java 设计

你有认真了解过自己的“Java对象”吗

海星

Java JVM

数据库周刊32丨Oracle自治数据库大动作;腾讯云MySQL 8.0上线;华为数据库工程师认证发布;update引起业务卡顿;PostgreSQL安全加固;openGauss单机安装;中国DBA联盟"ACDU"邀您加入……

墨天轮

MySQL 数据库 oracle postgresql

阿里拍卖,能不能拍到点儿上?

ToB行业头条

腾讯的ToB梦想

ToB行业头条

为什么单元测试不是持续交付的唯一答案

禅道项目管理

持续集成 单元测试

​中国SaaS处在什么阶段?

ToB行业头条

啃碎并发(10):内存模型之内部原理

猿灯塔

猿灯塔:spring Boot Starter开发及源码刨析(四)

猿灯塔

Java 猿灯塔 spring Boot Starter

微信小程序使用GoEasy实现websocket实时通讯

GoEasy消息推送

小程序 websocket 即时通讯

Redis基础:redis特点

古月木易

redis

讲烂了的mysql,今天再给大家重温一下

爱嘤嘤嘤斯坦

Java MySQL 数据库 编程 mysql事务

企业的数字化转型探索

松子(李博源)

企业架构 数字化 企业数字化转型

解读:新基建为区块链带来的新机遇

CECBC区块链专委会

Worktile完成新一轮融资,将发力研发管理赛道

Worktile

融资

火焰图:全局视野的Linux性能剖析

Marionxue

【融云分析】融云实时音视频 SDK 对智能硬件的视频适配

Geek_116789

MySql的Dockerfile编写

玏佾

统一物品编码 破解追溯“断链”困局

CECBC区块链专委会

我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。

why技术

Java 源码 jdk 并发 bug

三大 OSS 缓存加速系统巅峰对决

苏锐

hadoop cache JuiceFS JindoFS Performance

2020,是中国SaaS行业的机遇之年?

ToB行业头条

架构师是怎样炼成的 6-1

闷骚程序员

Markdown工具Typora结合gitee码云图床自动上传云端图片

Flychen

Typora markdown gitee

海量并发场景下的缓存架构设计

海量并发场景下的缓存架构设计

微软Azure云的Docker之路:兼容、原生与未来-InfoQ