剖析微软Azure Container Service服务,多方管道支持Kubernetes

微软Azure Container Service重点策略

  1. 单一平台可管理WindowsLinux的容器集群
  2. 开发工具深度整合容器部署,挟开发工具生态系优势抢攻企业市场

在微软CEO Satya Nadella上任之后,近年微软无论是拥抱Linux或是走向开源的可说成效有目共睹,其公有云平台Azure也依循着微软拟定的战略,一并支持Linux及Windows容器,根据微软统计,在Azure上使用Linux容器才是主流。

起初,Azure容器服务最先整合的调度工具是Docker Swarm,后来除了整并Mesosphere的DC/OS外,今年2月也正式支持了Kubernetes,目前已经更新至Kubernetes 1.8.1版。在2016年7月加入微软的Kubernetes共同创办人Brendan Burns,也背负带领Azure容器服务团队的重任,找来这名大将,对微软无疑是打上了一剂强心针。

现在Azure同时提供构建容器、VM基础架构的服务,不过构建起这些基础架构仅是第一步,后面的管理工作才是真的挑战,像是开启、关闭容器,或是随需进行水平扩充。同时,容器环境的管理也要拉高自动化程度,让开发者可透过工具调整基础架构,不须介入底层机器的管理。因此,Azure容器服务的目的,便是方便企业架设容器应用程序运作的环境,通过容器调度工具,便可以控制容器集群。除了容器服务外,企业还可以在公有云环境的Azure Container Instances,或是混合云解决方案Azure Stack环境使用Kubernetes,执行容器调度的工作。

另外,微软也在GitHub上开源推出的Azure容器服务引擎(ACS Engine),让企业自行建立私有的容器服务,不过,这个引擎默认自动产生符合Azure容器环境的配置文件,最大可以支持到1,200个节点的集群规模,日后可以将自家容器环境直接转移到Azure上部署,但没有提供其他云厂商的环境配置模板,用户得自行手动配置,这也是微软用来吸引那群还不想上云,又想试用容器的企业,让他们成为日后Azure的顾客的绑定手法。

不过,现今微软内部开发团队也不闭门造车,在开发Azure容器服务引擎时,也在GitHub上与多方开源社群讨论,颠覆过往内部主导项目进行方向的作法,扭转为以社群、使用者为主要驱力。

Azure环境让开发工具与容器大幅整合,开发容器应用更方便

而微软除了Azure可以通过多元环境支持Kubernetes的优势之外,其开发工具广大的使用者,或是既有IT架构与微软深入整合的企业,也都是这家公司可以抢占的市场。

例如,Linux操作系统厂商Canonical在9月时与微软合作,为Azure环境推出专用版本的Ubuntu Kernel,可支持最新版本的Hyper-V。开发工具Visual Studio Code也内建了Docker工具栏,开发者可以在统一环境内开发,不须切换至终端机环境,就可完成Docker容器的构建、部署操作。

Windows环境强力支持Linux,让Hyper-V也能跑Linux容器

而近年则有两个关键事件,让微软平台与Kubernetes的整合程度加分许多。首先,去年推出的Kubernetes 1.5版,居然可以一并调度Linux容器以及Windows Server容器,还能兼容Windows Server 2016平台。再者,今年4月的DockerCon中,微软也宣布,使用者可以在Hyper-V环境,利用Windows Server中原生执行Linux容器。如此,不仅弭平微软环境与容器技术的隔阂、扩大Windows Server的应用范围,也替依赖微软环境的企业做了解套,降低导入Kubernetes的难度。