速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

微软 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:464700
用户头像

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

关注

评论

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

代码审查:从 ArrayList 说线程安全

mzlogin

Java 代码审查

net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found for source data.

wjchenge

说说RPC架构

Kylin

读书笔记 3月日更 日常积累 RPC架构

算法攻关 - 重上到下打印二叉树 (O(n))_offer32

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 从上到下打印二叉树

css高度坍塌与清除浮动

依旧廖凯

28天写作 3月日更

你最喜欢的奥斯卡电影是哪部?

wbliu85

【LeetCode】设计哈希集合Java题解

Albert

算法 LeetCode 28天写作 3月日更

2021字节面经最新整理: 面试真经/思维导图/学习笔记!火遍全网

比伯

Java 编程 架构 面试 计算机

阿里Java岗个人面经分享(技术三面+技术HR面):Java基础+Spring+JVM+并发编程+算法+缓存

Java架构之路

Java 程序员 架构 面试 编程语言

万事开头难——人为推进效应

Justin

心理学 28天写作 游戏设计

寻找被遗忘的勇气(十三)

Changing Lin

3月日更

进入大厂的简历应该是什么样子

我是程序员小贱

3月日更

《经济学人》2021年3月13日刊精彩文章导读及资源免费下载

wbliu85

Zookeeper.01 - 简介

insight

zookeeper 3月日更

资深大牛带你了解源码!最详细的docker中安装并配置redis,实战解析

欢喜学安卓

android 程序员 面试 移动开发

谈产品和创业方向

Ryan Zheng

创业 产品

美团工作7年,精华全在这份学习笔记里了,已成功帮助多位朋友拿到5个大厂Offer

Java架构之路

Java 程序员 架构 面试 编程语言

微服务学习笔记

lenka

3月日更

Python 日期格式和时间以及当前时间和时间戳

HoneyMoose

Day01:VBA和Python入门

披头

办公自动化 IT蜗壳教学 数据科学探究

种春草肥禾,织数字天下

脑极体

Elasticsearch 近实时搜索 Near Real-Time Search

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

[转]html5设计原理

小江

MySQL主从复制机制

luojiahu

MySQL 主从复制

对话微众和红枣:预言机是区块链提供可信数据的基础设施

CECBC

区块链

资深大牛带你了解源码!面试题解析已整理成文档,已拿offer

欢喜学安卓

android 程序员 面试 移动开发

太简单了!看完这篇还能不会SpringCloud+Nginx高并发?

Java架构追梦

Java nginx 架构 面试 SpringCloud

熟练使用SSH客户端常用工具SecureCRT

xiezhr

Linux SSH securecrt SSH工具

浅谈数仓、数仓模型分层

白贺BaiHe

大数据 解决方案 通用设计模型 数仓

如何实现可靠UDP传输

赖猫

计算机网络 udp TCP/IP

滚雪球学 Python 之怎么玩转时间和日期库

梦想橡皮擦

28天写作 3月日更

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