计算机世界报 2007年12月24日第49期 C4-C5) 2007-12-22
基于服务的应用程序,其不可预测性对于那些还没有准备好实施SOA(面向服务的架构)的人们来说,可能会是一场“灾难”,而SOI(面向服务的基础设施)可能会给你带来很好的补充。
业务的灵活性或者说是业务的敏捷性,一直都是面向服务的架构(SOA)最让人兴奋的特性。SOA利用服务的松耦合性以及可重用性,在企业的各个部门之间,或者部门的内部,通过分享或者重组一些可重用的应用组件实现了业务的敏捷性。但是,在数据中心,SOA所标榜的灵活性就很可能成为了一种不可预测性,而这种不可预测性,跟传统的基础设施是不兼容的。
例如,当两个、五个或者十个应用程序突然同时访问某个Web服务时,其载荷或者访问量就会迅速增加。那么,当载荷突然增大时,服务本身又会出现怎样的问题呢?可能的一种情况就是服务的响应时间变得很慢。如果仍然想要保证服务的质量,或者满足用户对于响应时间的需求,那么就需要在运行时动态地根据服务的载荷分配给服务合适的计算资源。
Gartner的分析师Donna Scott对于上述情况表达了自己的看法: “如果想实现这种动态的服务资源分配,就必须首先保证有足够的计算资源可供分配,并且最好是从基础设施的角度去做规划,而这些基础设施包括硬件、软件、网络、带宽和存储等。”
当然,这种动态的服务资源分配方式说起来容易做起来难。“对待任何事情都不能想当然。因为你无法预料到服务载荷会在什么时候突然增大,也就无法预料什么时候需要分配资源。当服务访问SOA服务器的时候,后台终端不会为你自动地去做任何事情,因此,你必须亲自设计并建立一个基础架构来实现资源的动态改变。” Donna Scott说。
所以,为了观察服务的执行状态,我们就需要一些工具去监控服务的状态,并且自动地做些调整,或者借助于少量的人为干涉达到动态调整服务资源的目的。一些基本的技术提供了更多的服务器资源,以及对于这些服务器资源的配置管理,当然,还需要操作手册的自动化。而服务器资源的虚拟化技术使得一台计算机能够运行多个操作系统,当然这也可以应用到服务器资源的动态分配中。
上述技术便构成了所谓的“实时企业”(Real-Time Enterprise,RTE)所需要的核心技术。在一个实时企业(RTE)中,运行环境总是动态优化的,所以需要通过不断地调谐运行环境来满足动态的需求。Scott还强调说:“你需要根据资源来决定IT服务的需求。”
而面向服务的基础设施 (Service Oriented Infrastructure,SOI)便能够满足实时企业(RTE)的需求。Open Group——一个致力于为SOI定义引用框架和成熟度模型的公开标准联盟,其认为,利用SOI,更确切地说,利用SOI中的虚拟处理器、存储和网络资源,企业无需考虑为每一个应用程序分配固定的资源,就可以实现应用程序的动态资源分配。
Open Group的SOA-SOI联合项目主席Hemesh Yadav说:“SOA和SOI是可以独立存在的,但是假如你能够真正地、很好地结合这两项技术,你将会看到更大的成功。”
管理优先
无论是实时企业(RTE)还是SOI,这两个概念对于许多企业来说都是很有吸引力的。但是,如果想要把这两个概念转变成现实,还是需要一些策略的。
美国爱达荷州的工程与建筑公司Washington Group International负责应用程序集成的Rich Colton说:“对于那些刚刚接触这些概念的企业来说,要量化服务对于基础设施(存储、网络、硬件和软件等)的需求并不容易。当你开始实施SOA中的某一进程时,你可能会需要许多资源,也就是说,你可能需要使用许多服务器和数据库,甚至许多运行在不同服务器上的应用程序。但是,问题的关键在于,当每个服务器的载荷变大时,你如何知道每个SOA的服务需要运行多长时间,然而只有了解到了这些,你才可以决定资源分配的策略。”
事实上,用于监控SOA进程中的各个元素以及每个进程所需要的资源的那些工具和技术才刚刚开始成熟。“一般的应用程序可能是在使用一些传统的工具,通过观察服务器的CPU和内存使用率来反馈应用程序负载的信息。但是,对于SOA来说,那些简单的工具已经无法胜任,你必须使用一些有深度的工具,而这些工具能够在服务组件的层次上提供给你一些智能的信息,供你判断服务的载荷。不过,你首先需要确定你的那些工具能够帮助你决定资源将用于何处,或者说,如何去优化资源分配。但这还是有风险的,因为你不知道该把你的注意力优先放在哪里。”Colton说。
Scott也很赞同Colton的观点,他说:“在数据中心,现在企业正试图朝着自动化的方向前进,但是可能还是为时尚早。然而,大部分传统的管理技术,比如监控和配置管理,为了能够适应SOA的环境都必须要变得更加活跃。”
另外,企业将不得不把自动化提升到一个更高的层次。比如,虚拟化虽然是一项很重要的技术,但是还需要额外的工具来实现RTE和SOI要求的业务敏捷性。来自Open Group的Yadav也强调说: “缺乏自动化这一条件,将会成为你管理虚拟服务器时最大的障碍。”
“在一个虚拟化的环境下,从一个逻辑分区到另外一个逻辑分区,如果进行手工的资源分配,那么将会花费一个负责管理服务器的团队48个小时。”Yadav说: “当然,即使你能够很简单地去创建一个逻辑分区,但是你还是需要某种机制去监控,并且根据需要去分配那些基础资源。”
“如果你想让系统运行时顺畅地执行任务,就必须使用自动控制的手段。”Scott说: “谁负责启动SOA组件,并在运行时测控它们?当出现问题时,又由谁来负责停止这些SOA组件,并把它们移走?你必须考虑到这个自从出现大型机以来从未有过的自动化水平。”
结合两大阵营
总的来说,那些试图搭建SOA环境的企业把主要的精力都集中在了软件需求方面,比如软件的开发、测试、部署和监控服务的运行等。但是,他们并没有很好地考虑过,当部署的工作量增加时,用于支持服务运行的那些基础设施的状况。
ZapThink 的分析师Dave Linthicum表示:“现在,人们可能并不关心SOA将给他们的基础设施带来怎样的影响,他们现在还是在凭着自己的感觉去实施SOA的项目。”不过,令人感到欣慰的是,那些比较先进的数据中心,还是能够很好地把基础设施与SOA的预期目标结合起来。
“可适应的IT资源”这一概念,对于应用程序开发小组和数据中心的架构师来说,都是很有吸引力的。应用程序开发小组拥护SOA,因为SOA能够让开发人员都去遵从一种标准的方式去构建服务的组件,以便这些组件能够被重用和共享;而数据中心的架构师也在寻找一种方法来减少资本的消耗,并更好地利用资源,以及提供更强的可靠性。
比如,许多企业已经开始采取类似于“IT基础设施库”的框架来标准化数据中心的各类业务进程,他们也正在试图把IT当做业务来运行,然后实现IT服务管理策略。Scott说:“在一段时间内,业务人员和应用程序开发人员正在努力地相互配合,开发出更加具有商业竞争力的应用软件; 负责基础设施的那些人员则在努力地标准化各类IT进程,并引入更高的自动化程度,期望能达到技术的标准化。”
不过,遗憾的是,在通常的企业中,应用程序开发小组和数据中心的架构师往往并不能有效地沟通。但事实上,如果想继续往前走,SOA的开发人员就必须与数据中心的工作人员密切地合作。“原本可能互相独立或者说是走在平行线上的这两部分人,为了更好地实施SOA就必须要走到一起。”Scott强调说。
当然,有效的沟通并不是操作SOA的惟一需求。为了实现RTE和SOI,IT还不得不改变它的购买模式,比如,与其让应用开发小组为每个项目去购买服务器,还不如让IT部门提前购买好服务器资源,并把这些资源搭建成一个可以集中管理的、并可共享的计算资源池。
“相信如果你采用这样的方式,那么部署SOA的生命周期将会缩短,因为你能够确切地知道这种共享的环境是如何发挥功效的,开发人员也很明确他们将要开展的工作。不过,这种改变对于大部分企业来说,还是很难执行的。”Scott说。
当然,IT部门的领导们在结合开发部门和数据中心这两大阵营方面,还是有所进步的,Colton便是提倡“同时评价应用程序和基础设施”的发起人。虽然他是负责IT领域中应用程序的这部分,不过他也是基础设施虚拟化的“先头部队”。在应用程序的开发和测试环境中,Colton最先采用了VMware ESX服务器,而这种技术可以让他的团队在程序升级失败时快速地恢复服务器配置到初始状态,毫无疑问,这种结合大大地提高了开发效率。
当证明了VMware技术确实可以在测试环境中发挥作用之后,企业计划将这种技术部署到自己的产品环境中去,以期更好地利用服务器资源,并允许动态地提供服务资源。“如果不采取虚拟化的技术,就不能指望很有效地去管理SOA;同样,没有那些可以动态分配的资源,虚拟化技术也是纸上谈兵。”Colton说: “也就是说,如果你没有关于动态资源分配方面的需求,也就没有必要采用虚拟化的技术。”
没有评论:
发表评论