Docker容器对PaaS来说必不可少吗?

虚拟机和Docker Linux容器在改变运行、设计、开发和部署应用程序的方式。在近日于纽约召开的2014年Interop大会上,本人主持了一场专家小组讨论会,几家知名平台即服务供应商的发言人热烈探讨了这个问题:下一代应用程序如何在改变PaaS。

这场为时1小时的讨论会是为期半天的“云计算应用程序”(Cloud Applications)研讨会的一部分,专家小组成员包括:ActiveState公司的产品管理副总裁Brent Smithurst,ActiveState开发了基于开源Cloud Foundry的Stackato PaaS;Engine Yard公司的产品管理副总裁Carl Meadows,Engine Yard是一款独立的PaaS系统,使用开源代码模块;红帽公司OpenShift PaaS的战略主管Krishnan Subramanian,OpenShift PaaS是另一个开源项目;以及微软Azure首席技术官Mark Russinovich,主管微软的PaaS解决方案。

平台即服务结合了诸多工具、代码工作流程、变更管理和代码库,它们通过PaaS系统,作为一项共享式服务来提供。

讨论会一开始,每个专家小组成员回答这个问题:何谓下一代应用程序?他们的描述大致雷同:下一代应用程序更有可能由在PaaS系统上从事开发的团队构建,而不是由颇有才华的开发人员单枪匹马或成群结队来构建。这些是用独立的模块化服务构建起来的组合式应用程序。在一些情况下,这些可能是微服务,每个微服务在各自的Linux容器里面运行,由开发系统提供的中间件和网络接口联系起来。下一代应用程序常常是用某一种动态语言编写而成的,比如Ruby、Python、PHP或Node.js。它们可以在不同的基础设施上移植,比如不同品牌的云架构。

这一切听起来像是过高的要求。为了活跃讨论气氛,我问每个专家小组成员他们公司的PaaS系统是否满足所有上述要求。Meadows、Subramanian和Smithurst给出了肯定的回答,他们分别以Engine Yard、Open Shift和Stackato为例。只有Russinovich给出了否定的回答,他表示要符合所有要求,仍存在太多的缺口,仍有太多的功能未实现。我觉得,后者给出的回答更坦诚。

Docker容器对PaaS来说必不可少吗?

2014年Interop大会PaaS专家小组讨论

几位演讲者提到了Linux容器,于是专家小组讨论了一种工作负载文件格式化和打包系统对PaaS来说是否必不可少。专家小组成员一致认为,为工作负载获得的易于部署和可移植性让容器成为PaaS的一个必要部分。其中就包括Russinovich,不过微软的Azure PaaS目前并不支持Docker容器。但是容器可以在Hyper-V虚拟机里面的Azure基础设施即服务(IaaS)上运行。

在专家小组讨论会开始之前的采访环节中,Russinovich提到了微软与Docker达成了一项技术合作,这项合作项目已开展了数月。他还特别指出微软很早参与了由谷歌创立的Kubernetes容器编配项目,这表明微软对Linux容器颇有兴趣。Russinovich并没有直接这么表示,但我的解读是,微软似乎会在不远的将来,力争在其Azure PaaS上直接支持Docker。

Russinovich还特别指出,微软为内部运营开发了自己的Windows容器系统,该容器系统在容器运行方面进一步加强了安全性和隔离机制。他表示,该系统名为DrawBridge。

各自公司的发言人表示,Engine Yard和Active State的Stackato早已支持Linux容器,不过声明最有力的专家是红帽公司的Subramanian。他说:“提供实际上不支持Docker Linux容器的PaaS好比在兜售骗人的万灵油”,数字设备公司(DEC)已故的Kenneth Olsen在描述Unix的销售时就曾炮轰“Unix是骗人的万灵油”。

这四位专家都一致认为,PaaS不仅要成为一种开发平台,还要成为一种应用程序配置管理和部署的平台;这么做才能有助于它成为帮助IT人员让开发和IT运营更紧密合作的系统。

在更接近DevOps(开发运营)这个目标时,PaaS还要更充分地利用开源代码模块,比如配置和部署管理器Puppet、Chef和SaltStack,以及Jenkins持续集成服务器。Meadows表示,Engine Yard是开源的坚定支持者。Smithurst表示,ActiveState的Stackato则基于开源Cloud Foundry系统。而说到业务立足于开发和销售开源订购服务,红帽是世界上最大的公司之一。

Russinovich指出微软向来是一家专有性很强的公司,他表示,过去他公司在支持开源代码方面有所选择。但是Azure PaaS用户有望看到它在未来的产品中接受更多的开源技术。Russinovich表示,Azure目前支持在其PaaS上使用开源Python、PHP和Java。

在介绍整个云计算应用程序研讨会时,主席Bernard Golden(ActiveState Software的战略副总裁)在强调下一代应用程序的重要性时,提到了Marc Andreessen的名言“软件在蚕食世界”。但是用来构建这些应用程序的平台其命运大不相同,居高临下俯瞰市场的平台屈指可数。AppFog在6月中旬被CenturyLink收购,价格没有透过,但估计不会很高。CloudBees最近叫停了其运行时PaaS:Run@Cloud,致力于开发运营的一个阶段:持续集成。2011年,Salesforce.com斥资2.12亿美元收购了Heroku,后来声明这个数字是“误报”,其他PaaS初创企业没有一家能卖到这么高的价位。

与此同时,两个开源PaaS系统:Cloud Foundry和OpenShift继续以相互竞争的方式,力求在开发群体当中得到更广泛的使用。Pivotal将Cloud Foundry做成了Pivotal CF产品,ActiveState将Pivotal做成了Stackato产品,而OpenShift是红帽的一款产品。Cloud Foundry在努力提供更全面的Docker支持,同时获得了一大批公司的支持。红帽的Open Shift早早进入了市场,一开始就支持Docker,现正在想方设法,扩大其官方支持公司的名单。

由于在越来越依赖软件的经济时代下,对软件应用程序的需求日益增长,PaaS也变得日益重要。PaaS提供商在引入不同的语言、工作流程和系统以开发那些应用程序,并且往开发运营的方向,扩大覆盖范围。它们仍需要提供功能、仍需要填补缺口,但在接下来几个月,这些PaaS平台中的一个或多个可能会受到追捧,成为开发下一代应用程序的跳板。

相关推荐