写点什么

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

  • 2014-11-28
  • 本文字数:2277 字

    阅读完需:约 7 分钟

全球范围内技术领先的微软 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:464724
用户头像

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

关注

评论

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

游戏夜读 | 什么才值得纪念?

game1night

微服务编程范式

看山

微服务 范式 签约计划第二季

第二周作业

Vincent

极客时间 作业

架构师训练营第11周作业

Bruce Xiong

开源流数据公司 StreamNative 推出 Pulsar 云服务,推进企业“流优先”进程

Apache Pulsar

Apache Pulsar 消息系统 消息中间件

智能化转型将加速数字经济变革

CECBC

人工智能 数字经济

悬挂引用是如何被Rust消灭的?

袁承兴

rust 内存模型 指针 引用 泛型

有益思考一则:框架性思维

石君

学习 方法论

沟通是一门艺术

石云升

情绪控制 沟通艺术

架构师第十一周作业及总结

傻傻的帅

架构师训练营 -- 第11周作业

stardust20

区块链承兑商支付系统开发,USDT支付软件搭建

13530558032

一次开零售店的经历(1)

石云升

零售店

一起学MySQL性能优化

xcbeyond

MySQL 性能优化 MySQL性能优化

Spring系列篇:Spring容器基本使用及原理

简爱W

微服务的基建工作

看山

微服务 基础设施 签约计划第二季

永续合约交易系统源码开发,合约交易所开发

13530558032

跨过语言银河,构筑智能鹊桥:百度NLP的十年、今夕与未来

脑极体

架构师训练营第十一周作业

张明森

架构师训练营第十一周总结

张明森

区块链数字钱包定制开发,数字货币钱包开发费用

13530558032

ArCall 升级丨新增多项功能,可支持多人在线语音

anyRTC开发者

音视频 WebRTC 直播 RTC

论商品促销代码的优雅性

架构师修行之路

第11周作业

赵龙

银行热衷拿区块链专利 背后有何意图

CECBC

区块链 银行

一次开零售店的经历(2)

石云升

零售店

第11周学习总结

赵龙

第二周学习总结

Vincent

极客时间 极客大学 作业

Apache 软件基金会顶级项目 Pulsar 达成新里程碑:全球贡献者超 300 位!

Apache Pulsar

Apache Apache Pulsar 消息系统 消息中间件

安全系列之——主流Hash散列算法介绍和使用

诸葛小猿

hash 散列函数 md5 sha1 murmurhash

云算力挖矿平台APP,一站式云算力挖矿系统开发

13530558032

微软Azure云的Docker之路:兼容、原生与未来_微软_张天雷_InfoQ精选文章