在过去的几个月里,我们一直与分析师讨论了许多有关云计算的话题。有关这些讨论的有趣的事情是分析师观察云计算的观点。一些分析师把重点放在网络方面,其它分析师把重点放在定价和差异化方面,一些分析师甚至把重点放在了云计算对于应用程序的意义方面。据说机构将利用云计
在过去的几个月里,我们一直与分析师讨论了许多有关云计算的话题。有关这些讨论的有趣的事情是分析师观察云计算的观点。一些分析师把重点放在网络方面,其它分析师把重点放在定价和差异化方面,一些分析师甚至把重点放在了云计算对于应用程序的意义方面。据说机构将利用云计算作为部署应用程序的手段。
Gartner的Daryl Plummer就是一位这样的分析师。他一直是以应用程序为重点的,因为与他谈话和阅读他的博客一直是很愉快的。我们上一次与Daryl谈话的时候他提出了这样的问题“你们能做社么帮助一个机构把独立的应用程序迁移到云计算中?”对于F5公司来说,这个答案是很简单的,除非你具体规定这个机构要把工作量迁移到云计算中,而不是整个应用程序。
SOA归来
这里的问题是工作量与一个应用程序不是一回事。工作量相当于一个业务流程编排中的一项活动,而不是整个流程。整个流程与应用程序更接近一些。
工作量是完备的应用程序逻辑的一个单独的构件,本身就可以执行。用结构化语言,我们可以把编码为一项功能;用面向对象的语言,我们可能把它当作一种方法;在SOA领域,我们可以把它叫做Web服务。
这是正确的,朋友们。SOA已经复活了并且正在踏上回归的旅程。
应用程序似乎总是有一两项计算密集型的“功能”。这些应用程序的大部分都需要更多的处理过程,因为它们在数学上是很复杂的,或者需要很多分析,或者包括处理大量的数据集。无论是哪一种原因,运行这些工作量都是很昂贵的。
这个想法是,这些工作量能够有效地卸载到云计算。这些工作量通常是需要每天晚上或者每一个星期执行一次的。这些应用程序并不是一直运行的,当它们运行的时候,其它应用程序都无法运行,因为这些应用程序消耗资源的速度比房价下跌的速度还要快。
但是,你不能把这个工作量从一个单独的应用程序中挑出来。云计算并不是设计用来把单独的应用程序分解为复合的流程的。云计算只要是运行应用程序的。两者是不同的。
为了把工作量迁移到云计算,你必须要把工作量与应用程序分开。你必须使用与SOA有关的基本原则,把应用程序分解为复合的流程,这样,你就能够最有效地利用手头的处理能力发布这些流程,无论这些处理能力是本地的还是在云计算中。你不能简单地把一个单独的应用程序迁移到云计算中,并且指望云计算提供商能够深入挖掘它并且优化具体流程的执行。云计算还没有那样聪明。
网格如何?
网格的概念一直是围绕并行处理发展的。并行执行很长的或者在计算上很昂贵的任务可减少完成任务所需要的时间。但是,网格要求你把要并行处理的流程与应用程序分开。网格还没有智能化到这种程度,不能把这个分布式的应用程序作为一个功能或者在多台机器上运行以便提高执行的速度。至少在目前还没有达到这种智能程度。
这个问题似乎就是我们给云计算的属性。网格的属性更像是处理器调度,而不是指处理器能够做什么。因此,处理器周期的使用是云计算和网格概念不可分割的一部分。但是,调度整个处理器的单个逻辑部分的能力不是云计算或者网格能够做的事情,除非开发人员使用的工具和方法能够告诉他们这样做。
SOA的要点是什么,是不是这个功能?SOA能够把应用程序分解为单独的服务。这样,这些服务就可以智能地单独发布。如果一个服务被多个业务流程重复使用,它就能够复制或者迁移到云计算。这样,它就能够按比例地升级以满足其它应用程序对它的需求。
当然,这个问题是,分解单独的应用程序需要资源和时间。但是,实际上没有任何其它方法能够解决这个问题,至少目前是如此。云计算并不是能够用来发布单独的功能的庞大的处理器银行。云计算是服务器的庞大的银行。虽然它能够在这些服务器上发布这些应用程序,但是,它不能优化应用程序在这些处理器上的执行。这主要是网格的任务。利用网格也需要对应用程序进行一些修改。
如果你有一个应用程序,你可以采取两种方法,一个方法是把它迁移到云计算中,另一个方法是把这个应用程序分解为服务或者具有网格功能的流程。这些是你现在的选择。你可以选择这些做法,也可以不选择这些做法。如果你要把工作量迁移到云计算,你必须要让你的应用程序有这个能力。这就意味着SOA或者专有的网格功能。
网友评论