引:利用SOI,更确切地说,利用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组件,并把它们移走?你必须考虑到这个自从出现大型机以来从未有过的自动化水平。” |