最近,InfoQ约谈了VMware云系统的CTO兼首席架构师Derek Collison先生。他们谈到了该公司的新款开源PaaS产品——Cloud Foundry。
InfoQ:若面对一个架构师或CIO,您会怎样介绍Cloud Foundry呢?
Derek:Cloud Foundry是VMware的一款OpenPaaS,它支持多种框架、语言、云平台及应用服务。它也是一个分布式系统,他为开发者提供了应用和服务的舞台,自己扛下了IaaS相关的通用的工作。该系统在设计时就已经设计成可自愈的,并且在各层级都可水平扩展,既能在大型数据中心里运行,也能运行在一台桌面电脑中,二者使用相同的代码库。
对系统进行扩展不会导致正在活动的用户和应用停止服务。由于系统与底层基础设施间的连接是松耦合的,所以它能轻易地运行在任意IaaS层之上。即便跨多个目标云提供商,用户与系统的交互也能保持一致,而且,人机交互基于人人都会实现的HTTP REST接口。此外,开源也是一个优势,对于那些想运行自己的实现,或基于Cloud Foundry的架构和代码进行服务调用的架构师和CIO来说,他们对此会感兴趣的。
系统会为所有应用程序实例考虑负载均衡和高可用方面的事情。不论因为什么原因,应用程序崩溃了,系统都会自动将它重启。路由池会对多个应用程序加以实时的负载均衡。扩展和收缩非常快速且便捷,这为工程师和开发者带来了更多扩展和高可用的选择。访问服务、将应用与服务绑定,这些工作都简单且直观,应用开发者可使用多种不同的设计模式。对应用和服务级安全的支持很广阔,涵盖了从多租户的流程、文件系统和用户级隔离到整个hypervisor一级的隔离。
InfoQ:人们仍然在公有云和私有云之间争论不休。你觉得Cloud Foundry对这一争论会产生怎样的影响呢?它会进一步加剧这一争论,还是会让此争论变得不再有意义呢?
Derek:我认为争论还是有意义的。驱使不同选择的原因是有太多不同的情形及需求。有了Cloud Foundry之后,开发效率和业务敏捷对选择带来的影响会降低,而业务决策对选择的影响会增大,我们相信这是件好事。通过Cloud Foundry部署在公有云平台上的应用,若要将它移植到私有云实例之上,只需要花少许力气,甚至不费力。我们坚信我们对Developer Rights的承诺,为用户提供最广泛的选择,上至使用诸如Cloud Foundry之类的公共服务,下到自建系统,以及位于二者之间的任意形态。
在我们发布Cloud Foundry时候,将同一应用分别部署到由我们自己的VSphere技术和我们的合作伙伴RightScale所支持的Amazon之上的Cloud Foundry之上。最后,我们将此应用部署到运行在一台桌面电脑上运行的私有云实例之上。从提供的服务以及用户的交互模式上看,所有环境是一样的,未改动一个命令,系统代码未作任何改动,应用程序代码也完全一致。
所以,不论是公有云、私有云亦或是混合云,Cloud Foundry都能作为提高开发者生产率、业务敏捷以及使用OpenPaaS的起点。
InfoQ:您最希望社区为Cloud Foundry作出那些方面的贡献?
Derek:我相信只要系统能满足社区的需求,社区对它的拥护会像洪水般涌来。Cloud Foundry在某些方面支持个性化PaaS。起初,你将会看到各种语言、框架和服务。在这些领域,我们已经看到大量的请求了,我们还希望这种趋势可以验血。从长期来看,我希望随着框架和服务稳定后,最大的贡献将落到工具和管理方面。
InfoQ:Google App Engine不能支持所有标准代码库在其PaaS环境上运行。Cloud Foundry上面部署的软件有哪些内置的限制呢?与完全掌控的基础设施相比,哪些是不能在Cloud Foundry上做的事情呢?
Derek:我们正尽力让大多数最新的应用、服务和代码库能够在不需任何修改的情况下直接运行在Cloud Foundry上。我们事先申明“Cloud Ready”,这不应该要求你完全重写你的应用。
不过,的确有些是事情是办不到的,比如绑定80端口,或将数据写到你的应用容器之外的一个任意目录。此外,我们还会仔细监控应用程序的资源使用情况。不过,如果你使用一些标准代码库、最新的访问数据库的框架,或者你使用Redis做一些缓存,我觉得在云中做这些事情应该是可能的,而且不需要太费劲。
InfoQ:近期AWS的服务故障会影响架构师对云解决方案的看法吗?Cloud Foundry对移植性的承诺能否疏离与特定云供应商之间的紧密关系呢?
Derek:AWS做了一次试验,我们每个人都能从中学习并获益。我们仍然处于云纪元的起步阶段,而且,我们仍需要从惨痛的经历中学习。Cloud Foundry表明了VMware实实在在地想定义一个OpenSaaS,为用户提供灵活选择(不论是云提供商:公用云、私有云和混合云部署,应用框架和运行时,以及服务)的努力。
有选择是好事!