信息化 频道

奖金的准星[3]

【IT168 专稿】

    面向服务的虚拟化(SOV)是指模拟构成SOA应用软件资产具体行为的IT策略,可以将开发与测试团队从对服务部署与服务实现层的依赖性中分离出来

    使用服务器的虚拟化技术可以即时减少硬件与配置成本。但是,仅仅考虑硬件的虚拟化是不够的,我们应该充分发挥虚拟化技术的其它优势。如果我们能在主要企业软件使用方面发挥虚拟化技术的优势,将可以获得更大的效益,毕竟80%以上的IT预算都用在这些企业运营、开发、支持、维护所需的软件上。
    现在,很多主要业务都建立在以分布式技术和新功能为基础的系统上,比如面向服务的架构(SOA)。虚拟化可以为这些系统提高产品质量、缩短上市时间。但是,有些SOA功能并不在整体团队的控制范围,该如何通过虚拟化提高功能质量、缩短上市时间呢?为实现这个目标,充分发挥SOA的价值,扩展型企业必须虚拟化服务的共享行为。

SOA虚拟化的三种方式

    实现SOA虚拟化有三种截然不同的方式:

  1. 硬件虚拟化 可以在同一物理硬件设备中以虚拟机的方式运行多个操作系统拷贝。这为数据中心里应用程序的使用节省了大量成本,有极好的弹性和风险管理能力,并为复制SOA系统测试平台提供了有效的方法。
  2. 虚拟端点 允许SOA为所调用的服务提供虚拟地址,隐藏服务使用者的实际地址。这是实现SOA应用程序动态过程的理想条件。因为作为业务流程的一部分,服务的物理地址(或URL)可能需要根据使用时间与使用情况而改变。
  3. 虚拟服务 不仅可以用于SOA测试,也可以从整体上将开发与部署实践流水线化,从而提高效率。

    本文主要讨论第三种虚拟化技术:虚拟服务。这是数据中心外部的虚拟化。在SOA应用生命周期中的其它部分,创建虚拟测试平台的能力也仅限于此。为验证与开发SOA,业务通常依赖于一些具体的实现。但是,现有的硬件虚拟化技术还无法复制这些复杂的交互环境。因此,我们需要将虚拟化技术扩展应用到在这些环境中运行的、具体的分布式组件与服务中。

不能虚拟化的SOA缺乏灵活性

    硬件与数据中心层次上的虚拟化因其节省操作成本可以即时获得可观的回报,有可能立即节省几百万的IT成本。
    然而,将组件或服务的开发任务分布到多个团队时,我们经常会忽视这些团队在完成自己的开发或测试目标时,仍然需要访问其它组件的最新版本。为实施完整的业务流程,各团队之间仍然必须保留很强的依赖性与互通性。对大规模的企业系统来说,这极其严重地降低了SOA的投资回报率。
    我们可以通过面向服务的虚拟化(SOV)来解决这个问题:模拟所部署的软件资产的行为,构建架构未完成的部分,最终形成完整的SOA企业应用。
    如果不使用面向服务的虚拟化技术,是很难在大规模的企业应用中最大化SOA价值的。

SOA实现的绊脚石

    公司可以通过非常好的SOA实践认识业务的灵活性和成本效益。然而,当SOA应用需要为满足大型企业的具体需求而进行调整时,即使使用虚拟服务器技术,最好的SOA架构与治理策略仍显不足。这是有许多原因的。

    1. 系统共享资源的冲突
    可以认为,SOA就是关于如何以共享资源的方式构建企业系统。然而,SOA实现初期几乎都有对共享资源访问方面的问题。关键ERP系统或主机系统的管理人为保护产品应用的安全性,可能会限制开发与测试团队对应用程序的直接访问以避免无法预料的问题(见图1)。


图1

    另外,即使允许访问,具体的服务也经常受到SOA环境下各个企业需求的限制。当团队必须排队等候访问开发与测试的具体环境时,灵活性就大打折扣。在大规模企业应用中,单单利用硬件虚拟化技术创建另一个环境实例花费的成本相当可观。

    2. 非持续性的开发与集成周期
    开发人员需要使用服务界面模型作为容器控件以测定他们开发的服务与其它服务之间的互通性。比如,一个开发团队在建立客户数据,同时另一个开发团队在创建财务数据。由于两种应用是前后顺序开发的,因此开发到一定程度时每个团队必须依赖另一个团队的服务才能完成后续开发。各团队必须能对其它临近或已经完成的服务进行访问,以验证他们自己开发的服务可以正确地交互。
    SOA以松耦合的服务组件的方式实现灵活性,因此这些组件应该可以被更小更分散的团队平行开发或集成。但这些组件之间仍有相互依赖性,如何才能具体实现这种层次的平行呢?
    请看一个典型的项目计划图(甘特图,Gantt chart,见图2)。项目中总有一个第二开发团队开发下一组件之前必须满足的依赖性组件。这就是我们希望从SOA中分离出来的模型。


图2


    3. 持续增长的复杂性与相异性
    虽然SOA的初衷有很大一部分是为了实现Web服务(WSDL/SOAP),但仍然只有50%的优异企业其SOA是以Web服务为目的。另一部分企业实施SOA是因为有许多可以创建SOA中间件的技术对他们来说非常有用,甚至优于Web服务包,比如使用对Web服务几乎没有依赖性的企业服务总线。
    为保证SOA的质量,团队必须验证不同技术下的实现与副作用,而不能仅仅测试他们选择的Web服务或中间件层。

    4. 维护与支持SOA测试环境的高成本消耗
    为实施SOA应用的服务,许多企业尝试复制并维护自己的测试环境。然而,复制公司各个阶段所有需要交互的组件需要极高的管理成本。包括需要很高的配置、授权与维护成本,以保持当前的测试版本是最新的。即使这个测试版本是运行在虚拟化的硬件设备上,也同样需要很高的授权费用。许多采用SOA架构的企业系统过于臃肿,有太多需要虚拟化的操作。
    与其尝试复制诸多随时可能变化的服务来创建臃肿的测试基础设施,不如发展将各个团队从对实现的依赖性中分离出来的策略。这将提供可行的、对当前部署进行测试的方法。

    5. 大量数据与系统记录
    最后也是最难解决的一个问题是,实现具体的SOA企业应用所需管理的大量系统记录与数据。为得到测试SOA应用所需的具体结果,需要一整套具体的业务数据作为输入,然后创建一个可供测试的环境。
    虽然可以根据在架构设计过程中产生的数据元集实现大部分与服务对应的交互,一旦经过连接端点的理想模型阶段,开发团队仍然需要应付CRM主机或企业系统,以及这些系统的管理人员。这些系统里存储着不同客户几年的数据与业务逻辑。实现一个完整的系统与数据镜像进行测试需要另一个企业授权和实现团队,这种做法的成本实在太高。

面向服务的虚拟化技术

    面向服务的虚拟化(SOV)是指模拟构成SOA应用软件资产的具体行为的IT策略,可以将开发与测试团队从对服务部署与服务实现层的依赖性中分离出来。
    SOA涉及以虚拟服务的方式建模、模拟设计,及已部署服务的实践,这可以让外部SOA团队开发并测试自己的服务和业务流程,而无需依赖具体的服务实例。当团队从对服务部署和实现层的依赖中分离出来时,预期的SOA在灵活性、上市时间和实施成本方面的优势便可以得到充分的显现。简单地说,可以认为SOV与SOA的关系就像硬件虚拟化技术与数据中心一样。

0
相关文章