写点什么

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

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

关注

评论

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

OpenYurt 邀你共赴 2022 EdgeX 中国挑战赛!

阿里巴巴中间件

阿里云 云原生 openyurt 边缘容器

架构设计文档模板

maybe

Java架构岗9大性能优化经验总结,我不允许你不会

程序员小毕

Java 数据库 程序员 面试 程序人生

从程序员到架构师,阿里巴巴2022全新出品Java程序员“成长笔记”满足了我的所有幻想

Java全栈架构师

Java 程序员 面试 后端 架构师

技术团队管理者的三十六计

申屠鹏会

团队管理

八月最新首发!这份Dubbo 3.0 分布式实战笔记由阿里巴巴P8亲自撰写真是大厂offer收割机

了不起的程序猿

Java 分布式 dubbo java程序员 java编程

「望繁信科技」完成过亿元A+轮融资,全面加速流程智能产品建设

望繁信科技

PMP考试经验分享

索隆

项目管理 pmp 考试经验

EMAS Serverless到底有多便利?

hum建应用专家

云计算 Serverless emas

如何编写有效的常见问题解答页面?

Geek_da0866

将使用回调函数作为参数的函数改造为返回 Promise 的一个具体例子

汪子熙

JavaScript web开发 Promise 异步编程 8月月更

有关Java性能优化,这是我见过阿里大佬总结的最全的一份实战文档了

程序员小毕

Java 程序员 面试 程序人生 性能优化

如何区分透明LED显示屏种类及应用领域

Dylan

LED显示屏 led显示屏厂家

渲染与云渲染——渲染行业的新趋势

Finovy Cloud

云渲染 GPU算力

GitHub破百万访问的阿里神作:并发实现原理JDK源码笔记

冉然学Java

Java 编程 jdk 源码刨析 JDK 1.5

本周四晚19:00知识赋能第七期第2课丨OpenHarmony WiFi扫描仪UX设计

OpenHarmony开发者

Open Harmony

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

收到请回复

Java 程序员 阿里 面试八股文 Java面试八股文

合作再升级!云原生加速器成员企业云霁科技获得阿里云产品生态集成认证

阿里巴巴中间件

阿里云 云原生 合作 阿里云云原生加速器

泄露了,Alibaba697页的MySQL应用实战与性能调优手册,太强了

冉然学Java

Java MySQL 编程 性能优化 构架

浅谈云上攻防系列——云IAM原理&风险以及最佳实践

腾讯安全云鼎实验室

安全攻防 云安全 安全研究

罗技产品究竟能不能带来便捷感

Amazing_eve

#开源

程序员面试太卷?我选择背这份阿里最新Java面试八股文(详解版)

Java面试那些事儿

Java 面试 Java 面试 java程序员 java 编程

满足你对 Api 的所有幻想

Liam

Postman API API接口管理 开放api API接口工具

2022上半年PMP考试通过率得多低,才能换来一次免费补考机会

索隆

如何开发一款基于 vite+vue3 的在线表格系统(下)

葡萄城技术团队

Vue 前端 vite

多线程+JVM+设计模式+数据库,阿里巴巴Java性能优化全解实战笔记真香

Java永远的神

Java 数据库 程序员 面试 多线程

字节跳动嵌入式数据分析最佳实践

字节跳动数据平台

字节跳动 数据分析 BI 嵌入式分析 数据看板

参与openEuler社区不到1年,我成为了Maintainer……

openEuler

开源 成长 openEuler 开源社区 开发者说

秒验丨Android客户端集成指南

MobTech袤博科技

android Android Studio Gradle

画一手好的架构图是码农进阶的开始

阿里技术

经验分享 构架

Linux C/C++后台开发高级架构师进阶指南-剑指腾讯T9

C++后台开发

后台开发 后端开发 linux开发 Linux服务器开发 C/C++开发

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