从IaaS到PaaS的三种实现方法
随着云计算平台的优势变得越来越清晰,从IaaS到PaaS似乎是一项比较轻松的工作了。但是,方法各有不同,而找到实施PaaS最好的方法就意味着在三个可能的选项中进行选择。
市场上有越来越多的声音在说,应当把云计算服务的等级提升至基础设施即服务(IaaS)以上。按价值链的先后顺利来说,在云计算的层次结构中紧随其后的下一个选择就是平台即服务(PaaS)了。与IaaS(即虚拟机托管,并要求用户提供一个操作系统和中间件)不同,PaaS提供了一个包括软硬件在内的完整平台,以供应用程序运行使用。PaaS所提供的服务更多,因此它能给用户带来更多的潜在好处。也正是因为这个原因,PaaS供应商们能够证明他们所提供的服务是与其定价相符的。
PaaS可能是云计算服务从IaaS自然发展的一个必然产物,但是其具体实施的途径可能并不止一种。微软公司的Azure代表了一种途径,即:利用一个现有的数据中心平台,然后将其在云计算中复制。而实现PaaS的第二种途径则是通过诸如Cloud Foundry之类的工具来实现的:通过所选择的工具来开发你自己的“平台”,并部署它。而第三种方法则是需要由亚马逊网络服务(AWS)支持来实现的,它是通过网络服务扩展IaaS的方法来创建一个“平台服务”模式的。从IaaS至PaaS的这三种途径都有其可取之处,因此在做出决策之前应进一步深入了解其中的更多细节。
实现PaaS的微软Azure模式
为了进一步了解PaaS的微软Azure模式,必须确保你的以云计算为目标的应用程序是正在或者是能够在数据中心内,微软服务器软件套件上运行的。因此,这种方法的优势在于,它是与当前的软件策略相关联的;用户可以很容易地从微软服务器更新换代至Azure,因为云计算的供应商也正是内部部署软件平台的供应商。确保两者之间的同步应当是简单直接的。
而Azure模式的弱点在于,绝大多数的数据中心服务器平台并不是以一个单一的形式广泛部署的。所以,除非客户本身之前就使用了微软公司的产品,否则都指向一个平台是比较困难的,虽然这种方法是可行的。一直以来,微软公司都拒绝向相关的PaaS竞争对手们开放其Windows 服务器框架,这就意味着一些Azure用户是受制于微软公司的。我们还不清楚,微软将如何打造Azure,将如何把本地功能添加至与Windows 服务器无关的云计算中,例如目前AWS所提供的缓存服务。
PaaS的这个Azure模式的其他示例就是基于Java虚拟机(VM)的云计算平台了,这是一个可在多个架构上运行的便携式平台。亚马逊等公共云计算供应商所提供的托管Java虚拟机和Java应用程序是能够在几乎所有的数据中心或桌面系统上运行的。但是,这种方法只有在目标应用程序是使用Java语言开发时才能有效,而这一点对于大多数用户来说是一个非常苛刻的限制。
使用第三方工具开发PaaS
实施PaaS的第二种方法则更具推广意义。诸如Cloud Foundry和OpenShift这类的工具可帮助用户从IaaS入手,通过添加操作系统和中间件工具来开发一个云计算平台。通过使用这种方法,用户就能够让应用程序在一个可靠的软硬件系统上正常运行起来。而用户和应用程序的生命周期流程都可免于对平台软件进行维护。
组合PaaS的问题在于需要搞清楚将由谁来负责平台镜像的开发与维护。一个公共云计算供应商可以使用一个组合工具来开发一个基于PaaS的平台,但他们不可能会冒这个风险。供应商将不得不赌上一把,看是否有足够的应用程序会在这个平台上运行,从而建立一个可行的市场机会。如果组合工具的灵活性被用于建立多个平台,那么确保每个平台实时更新的工作就成为了一个民工活,同时管理成本也会随之增加。这些任务都会被推给云计算用户。
用户自己就可以使用相同的工具来组建一个平台并在IaaS上运行。如果这些工具可允许用户自行组织中间件和操作系统组件并让它们用于应用程序部署,那么用户将从中受益。当操作系统或中间件发生变化时,这是一个协助更新每台机器镜像的替代解决方案。事实上,这正是如今平台组合工具的最大应用。但是,为一个特定平台找到一个利基市场则又与将该方法广泛应用于公共PaaS的初衷相违背。
采用平台服务的方法
最后一个选项就是平台服务了,这是AWS目前正在实际采用的方法。平台服务假定PaaS的目标是增加高度云计算优化的或云计算特有的服务,并在任何通过URL运行网络服务的应用程序中支持它们。这种方法是独一无二的,因为它以针对云计算而特别修改或开发的应用程序为目标,而不是那些从内部部署中迁移过来的应用程序。
这种方法着眼于未来平台服务将成为公共云计算服务发展趋势的推动因素。平台服务模式提供了改良的灵活性(就类似于组合平台模式一样),但是它会让新的平台组件支持有价值的云计算应用程序功能。
其中行不通的一点是,用户必须对他们的机器镜像进行维护,因为这一模式并不托管操作系统或中间件。增加一个组合平台工具(如Cloud Foundry)来管理这些元素就能够帮助用户解决这个问题。
从理论上来说,一家诸如AWS这样的公共云计算供应商可提供如此之多的平台服务以至于它可高效地定义一个云计算操作系统。如果这样做了,同时也提供了为当前平台开发云计算操作系统相同的特殊开发工具来进行应用程序开发,那么内部部署平台供应商可能就会决定支持它以便于利用新应用程序的优势。然后,云计算就算实施完成了,它实现了从云计算适应内部部署平台到内部部署平台适应云计算的市场转移。