技术开发 频道

虚拟化是SOA环境的基础?

【IT168 技术文章】

  SOA 和基础设施虚拟化技术之间是高度协作的关系。随着企业采用的服务不断增多,这些服务的大小和规模也不断增大,实现支持这些服务的基础设施虚拟化技术也日益重要。没有基础设施的虚拟化,企业的管理就会变得非常复杂,很难实现服务的灵活性优点。在本文中,Matt Haynos 将对网格计算和 SOA 以及基础设施虚拟化技术之间的相似和不同之处进行简要分析。

  到目前为止仍然非常流行的一个概念是面向服务的架构(SOA)。eWeek最近的一个主题引用了 Merrill Lynch 开展的一项 CIO 调查,其中 87% 的参与者称 SOA 是企业软件中 "下一个伟大的东西(the next BIg thing)"。(就我个人来说,我认为 SOA 早已 非常伟大了。)

  不用奇怪 CIO 为什么对 SOA 如此关注。业务的变化和压力变得日益激烈,而且已经扩展到了全球范围。现在出现了对新业务种类和操作模型的需求。在 IBM 2006 Global CEO Stud上,2/3 的业务领袖们表示会在最近两年内 "从根本上改变" 自己的公司形式。他们之所以需要如此迅速地进行改变是由于以下的原因:市场上的一流公司通常都占据着重要的位置,瓜分了市场的大部分份额,而机会变化的是如此迅速,可能稍纵即逝,因此面市的速度至关重要。

  但是要做到这一点并非如此简单。至少对于 CIO 来说是如此。他们不得不应付各种架构、接口和技术,这些可能会限制他们提供技术基础设施的能力,而这种能力可以支持(甚至促进)他们对动态竞争市场的响应能力。

  正是在这种背景之下,SOA 诞生了。SOA 使用了一种架构性的方法来将应用程序分解为各种必要的服务。然后可以设计这些服务,用它们来呈现或映射业务流程。有关 SOA 及其联合 IT 实践和业务策略的使命已经有了很多介绍,因此在这里我们就不再详细介绍了。但是 SOA 正在迅速成为企业可以对动态变化的市场有效进行响应并充分利用新业务商机的关键。

  关于虚拟化

  尽管虚拟化是目前一个热门的基础设施话题,但实际上它已经存在很长一段时间了。虚拟化在 IT 基础设施领域内是普遍存在的,例如,在微处理器、虚拟内存和服务器虚拟化领域,我们都可以看到虚拟化的影子。在 IT 基础设施领域内,尚未 进行虚拟化的地方并不多,我们将整个虚拟化集合称为基础设施虚拟化(infrastructure virtualization)。

  新的思想是任务负载(或应用程序)虚拟化和信息虚拟化,它们具有特殊的优点,可以与 SOA 协作使用。这些领域都涵盖了网格计算的实质,可以体现出为什么网格可以包含到基础设施虚拟化这把大伞下面。这些领域也是 SOA 接口所参与和涉及的主要虚拟化领域。

  高级协作和调整

  在这一节中,我们将在一个较高的级别上定义 SOA 和基础设施虚拟化(尤其是任务负载和信息的虚拟化)之间的协作。这里非常有趣的一个地方是,很多公司都是因为一些类似的原因才在自己的应用程序架构中采用 SOA 并在整个基础设施上使用虚拟化技术的。很多原因和驱动力都非常相似。下面就让我们来看一下。

  横向协作

  第一种协作思想是横向协作(horizontal integration),它打破了纵向协作的限制,使整个企业朝一个更为全球化协作的企业发展。考虑一下公司内部(或公司之间,可能是小公司,甚至是中等或大型公司)的标准功能和实践情况。

  在这些共同的(全球)业务流程之上,SOA 通过消除冗余服务打破了应用程序的纵向限制,并在每个业务单元中得以实现。当然,要理解和实现集成业务流程必须要有一些准则,但是一旦实现之后,即使只实现部分准则,SOA 就可以帮助我们将应用程序及其必要服务与全球业务策略和过程统一在一起。结果,通过开发自己特有的服务,并将其加入全球设计的业务流程(通常称为工作流 或复合应用程序),业务单元可以继续进行创新 。

  基础设施虚拟化通过将计算或信息资源看作一个实体(而不关心这些资源的属主或位置)打破了基础设施的纵向限制。尽管一个公司可能有多个物理基础设施(例如数据中心),但是这些基础设施正在被当作一个逻辑基础设施进行管理。例如,我们在 IT 外购竞争中越来越多地看到了这种趋势,在这种竞争中,任务可以从一个数据中心迁移到另外一个数据中心。

  敏捷性

  敏捷性(AgilITy) 是可以快速响应的能力。我们在前面的文章中已经介绍过敏捷性的问题。敏捷性可能是目前公司中最为重要的 IT 驱动力。SOA 可以通过快速部署新服务并将其提供给消费者和复合应用程序使用来提高公司的敏捷性。重用的概念在这里非常重要,它是 SOA 的一个基本元素。公司可能会错误地从头开始创建新服务,因此通过将应用程序分解成各种必要服务或通过将应用程序在服务上下文中进行封装,就可以快速重用现有实现了。

  相同的概念同样适用于基础设施。此处的思想是快速部署基础设施资源,并使它们可快速用于支持新的业务需求和机会。虚拟化在资源和用户之间提供了一个绝缘层,因此可以删除它们之间的紧密绑定。这种松耦合关系让公司可以添加资源,使基础设施可以识别出这些资源并将它们快速提供给消费者使用。

  启用灵活性

  业务灵活性与敏捷性是紧密相关的。与大多数人一样,公司也喜欢让自己经营的东西一直保持可用状态。SOA 通过服务的概念来实现这种功能。替换带有定义良好的接口的服务可能非常容易,添加新服务也很容易。SOA 支持动态应用程序构建(或 mash-up)的概念,这样就可以用一些有趣或创新的方式来构建服务。企业服务总线(ESB)尤其有用,因为它们为服务到服务的通信提供了一个框架或交换场所。

  存储虚拟化是基础设施虚拟化灵活性的一个很好的例子。例如,IBM? SAN Volume Controller 为存储提供了一个虚拟表示形式,允许公司在性能或技术改进或价格降低时替换底层的存储设备。这个过程可以快速实现,而不会影响应用程序或其他用户。

  简单性

  SOA 和基础设施虚拟化的一个关键优点是降低了复杂性。在图 2 中我们可以形象地看到这一点。应用程序架构的 SOA 方法将整个紧密耦合的大块应用程序划分成一系列的服务,其中各个功能都被清晰地划分出来。复杂的相互依赖关系被消除了。另外,企业不同领域中的功能的冗余实现都有可能被标准化。SOA 承诺要降低企业应用程序架构中的复杂性,但是它也要遵守一定的准则。

  这同样适用于基础设施的虚拟化。通过在物理资源和用户之间引入一个抽象层,SOA 和基础设施虚拟化都可以独立进行管理。如果资源失效,新物理资源就可以接管它的逻辑位置。如果出现了更好的资源,旧的资源就可以退休了。结果,不用让用户或应用程序依赖于任何给定的物理资源,就可以实现基础设施的灵活性。

0
相关文章