平台即服务允许云计算架构师们使用他们自己的代码并作为其首选,而无需提供虚拟机和管理操作系统,从而降低基础设施的管理问题。在一个蓄势而发的云计算市场中,不会有人来质疑你为什么不与PaaS供应商合作,其中的原因都有着细微的差别。
确定正确的PaaS模型是非常重要的,因为只有这样才能确保你建立一个灵活的、弹性的和便携的企业云计算。因此,哪一种类型的PaaS供应商们应当注意一个特定编程语言的平台、一个与语言无关的平台或一个跨多个云计算实现开发和部署的混合PaaS呢?
特定编程语言PaaS是否已经过时?
在云计算的早期阶段中,特定编程语言平台即服务(PaaS)供应商并不常见。例如,供应商们支持Java、Ruby以及Python,但并不是一次支持所有框架语言的。如果你的工作主要使用一种编程语言,那么一个特定编程语言PaaS将成为适合你的云计算开发工具。特定编程语言PaaS的优势在于,它为客户提供了超越托管开发环境的专门支持和价值。
Python和Java开发人员都有特定编程语言PaaS的选项。一个基于Python的PaaS产品PiCloud.com提供了一个很易于被导入Python程序的库,从而确保开发人员实现跨云计算的计算任务分配。PiCloud不会取代一个开发环境或为客户提供一个IDE(基础开发环境)的云计算替代品。它为管理人员们所提供的代码可以确保他们在云计算中运行他们应用程序中计算密集型的那部分工作。对于工作对象是大量数据、希望拥有舒适开发环境和需要访问计算资源的分析师和科学家来说,这是一个理想的选择。
与编程语言无关的PaaS:更多的编程语言支持,更多的灵活性
目前而言,多个云计算平台混合使用的趋势已变得越来越明显。近期Eucalyptus公司的CEO Marten Mickos竟然公开发表了“LAMP堆栈已死,云计算是凶手”的言论。虽然事实情况并非如此,但是与之前相比,堆栈的每一层也变得具有越来越多的多面性。PaaS供应商们也纷纷效仿;广大的市场也加入了与编程语言无关PaaS的阵营——甚至那些起步于单一框架支持模型的厂商亦是如此。
诸如Cloud Foundry、DotCloud以及Red Hat等PaaS供应商们的服务对象都是那些使用多个编程语言的开发人员。例如,如果你在DotCloud中托管你的应用程序,那么在你的数据服务层中你就可以使用Postgres、MySQL以及MongoDB等编程语言。多个数据库协作所需的边际努力要小得多,因为你无需安装、管理和维护多个数据库。
与编程语言无关PaaS的优势在于在逐个案例基础上实现多个语言和框架协作的灵活性。你可能无法找到基于语言定制化的相同等级(例如,用于实现跨云计算服务器代码分布的库),但是你会发现对用于管理代码通用开发工具(如Git)的支持。
何时考虑混合PaaS选项
可通过基础设施即服务(IaaS)模型和内部资源抽象化的方法,来区分另一种类型的PaaS.CloudBee的AnyCloud是一个PaaS产品,它可使用户能够在数据中心中管理托管供应商或内部的应用程序工作负载。用户可以在Amazon EC2和OpenStack私有云计算中部署实例,并将其作为单个PaaS和AnyCloud的一部分进行管理。
混合模式也有很多的优点。例如,想象一下,如果你拥有一个并未实际在云计算中复制的大规模Oracle数据库,你需要在内部进行维护。一个混合PaaS将赋予你从在PaaS环境中运行的程序访问内部数据的灵活性。
一些混合PaaS模型的潜在优点在于,需要配置和维护抽象层。某些混合PaaS模型需要一些内部管理努力和专业知识诀窍。
PaaS市场正在逐渐变得高度成熟和细分。企业应当选择一个适合开发语言和框架的PaaS模型。如果你工作中使用单一的编程语言并能够从特定支持中受益,那么一个特定编程语言PaaS模型是一定适合你。但是,随着公司的云计算部署变得越来越复杂,多编程语言协作协作和混合堆栈组件的需求也逐渐增加。在这样的情况下,多语言和多框架PaaS产品也变得具有重大意义。当你有一个内部和云计算的复杂应用程序与数据混合体时,你可能需要找出一个混合PaaS供应商。