由于Docker容器风靡一时已不是什么秘密,Docker容器基于Linux,这正是其有趣之处。就这一问题,Modern Infrastructure对微软老兵Azure核心团队的架构师John Gossman进行了采访。
IT新架构:容器已经推出很长时间了。在Docker以前,你看到过对容器技术存在众多需求吗?
John Gossman:没有。Windows在很久以前就已经具备了容器所具备的某些基本特征。例如,Job对象和linux cgroups类似,允许你控制资源消耗。在过去也有第三方尝试制造Windows容器,但无法访问内核,要做好Windows容器是不可能的。Docker创造者Solomon Hykes做的是将很多容器技术整合为面向开发人员的一个很棒的功能集。这的确是很棒的创新,而且我认为Docker让所有人都大吃一惊—即使是Solomon Hykes自己。
MI(IT新架构):请简单概括一下微软的容器战略是什么?
John Gossman:你可以认为是两个吻合得很好的单独战略,但也可以彼此独立对待。
首先,我们希望容器能够在Windows下很好地运行,这可以看作是Windows Server 2016技术预览版3 中Windows Server容器特性当中的一部分。Windows Server 2016技术预览版3还包括一个Docker代理,与Docker 引擎使用了同样的数据库。这并非意味着你可以在Windows上运行Linux Docker容器,或者是在Linux上运行Windows容器,但是你可以获得同样的管理体验。例如,你可以使用Docker工具比如Swarm以及Compose管理Windows Server容器。还可以配置一些很有趣的混合架构:例如后端运行微软SQL Server数据库,前端运行Apache Linux。我们还支持其他的接口集,例如Canonical LXD以及我们自己的内置API—用于管理容器,但我们希望大多数生态系统使用Docker。
就Azure而言,如果顾客想使用容器,我们希望确保他们能够与Azure很好的合作。现在我们关注Azure平台上用于Linux环境的Docker,例如能够很轻松地部署Docker镜像。我们有一个Docker扩展,创建实例时只需要点击鼠标就能够确保创建Docker引擎。我们也正在构建我们自己的Docker管理与监控功能。
MI:顾客对什么感兴趣?
Gossman:我们看到顾客对Azure以及预置的Windows服务器感兴趣。这两者之间存在很多重叠。部分原因是很少有企业是完全相同的。混合架构对他们具有吸引力。Azure也正在增加多样化。我在几个星期之前做了一次检查,发现运行在Azure平台上的25%的虚拟机正在运行Linux,年初时,这一数字是20%。
MI:容器的安全性如何?
Gossman:首先,我不会讲容器是不安全的。如果你正在自己的数据中心内运行,那么你会相信自己人,运行容器应该不会有任何担心。当处于充满敌意的多租户环境(比如公有云)中,我们建议——正如所有其他公有云服务商做的那样——要对虚拟机进行硬件隔离。
实际上,我们认为容器以及虚拟化是完全互补的两种技术。这两种技术各有优缺点,但我不认为做出妥协存在技术上的原因。一切还没有结束。在某种情况下,容器以及虚拟机将会走向融合。我们公开讨论了Hyper-V容器,Windows服务器即将提供该功能,将相同的公共API作为一个容器,并封装了轻量级Hyper-V。提供了与虚拟环境相同等级的安全性,而且还允许运行不兼容的内核。还付出了很多其他的努力,例如位于北京的一个创业项目HyperHQ[更不必说VMware的Photon平台]。