写点什么

SOA 治理成熟度——一名架构师的观点

2009 年 8 月 10 日

我们平常可以看到有很多集成项目都使用 SOA 技术来努力使自己变得更成熟。这些项目交付了一些服务,但是却只有极少数能做到企业级的服务重用。个中缘由往往要归结于组织不知道如何成功地把他们 SOA 的成果由一个集成解决方案扩展至一个企业解决方案。我们认为,要想成功地交付这些 SOA 项目的商业价值,治理是必不可少的;因而,我们将在本文中介绍一种基于生命周期的 SOA 治理成熟度模型。在我们看来,治理可以被视为一种决策制定的框架,而这也与 Weill & Ross 的 IT 治理定义相符:IT 治理是一种规定了决策权力和义务的框架,其目的是为了鼓励 IT 使用过程中的合理行为。 [i] 我们的文章将由以下 3 部分组成: [ii] 。这个模型源自最佳实践和访谈,并且关系到 SOA 治理的范围。它认为,为了获得成熟流程的好处,主体之间的成熟度应该相等。尽管在开发该模型的时候并未有意地使用 SOA,然而我们认为组织范围是 SOA 治理需求的优秀指示器。

我们的模型是特意为架构师准备的;他们往往是 SOA 的拥护者。在企业架构、解决方案架构或领域架构中,你都可以发现他们的身影。架构师对于启动 SOA 治理起到了重要的作用,但是随着企业内 SOA 成果的不断增长,架构师的职责发生了改变,部分这些职责将很有可能转移到一个 SOA 治理委员会身上。

我们的治理模型可以帮助架构师判断其企业 SOA 治理的当前成熟度水平。这个模型还给架构师就其在 SOA 治理向更高成熟度级别前进过程中发挥的作用给出了务实的真知灼见,给他们在组织内增进和拓展 SOA 的成功提供了便利。

SOA 治理的生命周期

SOA 治理相关的活动并不是马上要求构建可工作服务的活动,而是那些所有可以提高 SOA 整体质量并且支持在复杂环境中进行控制的活动。这包括:

  • 人员 —— 确保职责已经被分配到合适的岗位,人员已经被培训具有必需的知识和能力。
  • 流程 —— 确保已经制订出合适的服务质量保证和监视流程。
  • 产品 —— 设置所需服务和它们的文档;策略是一个常见的例子,服务文档模板也属于此类。

我们在一个 SOA 治理生命周期模型中已经说明了这些主题。这个模型定义了实现优秀 SOA 治理所需执行的 6 个主要流程。一个生命周期代表一次迭代,它是面向服务架构实施过程中一个范围限定、实现具体目标的项目。SOA 开发发生在 SOA 治理生命周期的许多迭代中。通过这些迭代,成熟度水平可以(而且应该)得到提高。

头两个流程集中于业务,说明了 SOA 愿景和对组织的影响。接下来的 3 个流程组成了架构师关注的要点:服务组合管理(Portfolio Management)、服务生命周期管理和策略执行。最后一个流程,服务水平管理,属于系统管理员的范畴。但是,在整个生命周期中,活跃于 SOA 治理中的所有团体都必须涉及到。这些团体是如何参与的将在 SOA 治理生命周期的每条流程中进行描述。

SOA 的愿景

迭代的第一部分就是确立 SOA 的长期目标,或修订现有目标。这个流程从组织角度对 SOA 进行了详细阐述,同时还包括设定生命周期当前迭代的目标。SOA 的愿景是业务和 IT 的结合产物,其中业务和 IT 的对齐由架构师负责推动。

创建 SOA 组织

在这个流程中要定义 SOA 治理的角色和职责。这常常导致了某种类型的 SOA 治理委员会(或卓越中心)的建立。这个委员会应该代表 SOA 治理的干系人,既包括业务人员,也包括 IT 人员。这个 SOA 治理委员会决定了 SOA 治理生命周期的实现方式。本文的后续内容将给出相关的指导方针。为了执行当前的生命周期迭代,合适的人员应该出现在合适的位置。这不仅可能需要一些额外的培训,而且资助和激励程序也可能是这个流程中的活动。SOA 治理委员会应该通过在组织中强制标准和提倡 SOA 原则来改善 SOA 原则的采用。

服务组合管理

对于即将开发的服务,综合业务代表和多方意见是必要的。在开发特定服务时,架构师应该权衡 IT 和业务的意见。通过从一开始就介入组合管理,架构师应该能够发现适合重用的服务,因而要优先尽早地开发它们。服务组合管理的一个可能产品是服务路线图,它列出了当前和已规划的服务。

服务生命周期管理

这个流程解决了企业服务的实现、更新和退役。生命周期管理不应该是各项目的事,而应该由 SOA 治理委员会来完成,统一管理 SOA 的变更。SOA 变更涉及概念上的、企业范围内的服务,这些服务被重用并执行业务功能。架构师在 SOA 治理委员中应该协助确保所有服务都被纳入生命周期的管理,防止出现未被治理的服务。

策略执行

这个流程关心的是策略的设计和执行。例如,架构师应该确保人们将自己的服务发布到注册中心中,以便这些服务可被治理和重用。架构师同样还应注意策略在设计层面的应用。设计层面的策略是服务开发的标准,通常以原则或最佳实践的形式出现。与运行时策略不同,设计时策略一般无法被自动监测。因此,需要说服开发者去遵循标准。架构师应该审查交付的新企业服务,并且在审查中,设计时策略的采用应该作为一个重点工作内容。

服务水平管理

不同于其他 IT 架构,SOA 要求不同的服务水平管理,原因在于服务的粒度比应用的粒度更细。同样,要想灵活地消费别人开发的服务就要求消费者能很好地理解服务水平。服务水平管理是一项系统管理员的任务,但是架构师应该注意服务水平的反应,以便可以和企业讨论这些水平是否仍然适合企业的用户。而且,通过审查服务的使用(可能是通过注册中心的工具),有望发现服务重用的机会。

使用生命周期增强 SOA 治理的成熟度

与成熟度模型相结合后,所提议的 SOA 治理生命周期中的那些流程会变得非常有帮助。关于(SOA)成熟度模型已有大量的出版物,基本上任何成熟度模型都可结合 SOA 治理生命周期使用。这些成熟度级别需要有某种类型的规范来说明 SOA 治理每个阶段的预期内容。这可以通过一个矩阵来完成,其中确定了每个成熟度级别的 SOA 治理生命周期流程的范围。在下面的例子中,我们使用了德勤(Deloitte)的业务成熟度模型

  • 先驱(Pioneer):SOA 包含了几个小规模的项目,为确定最佳实践提供了灵活性。这些努力往往是速赢的(quick-wins),而且会带来轻微的组织复杂性。只有极少的 SOA 治理,重点关注项目的范围。因为通常有一个 SOA 的拥有者,控制并不非常复杂。
  • 流程(Process):在此阶段,一个组织单元、产品或流程完全服从 SOA。SOA 常常出于特定目的而被实现,如库存管理。此阶段有一个拥有者总负责,并为 SOA 提高主要的资助。但是,架构和组织中其他地方的 IT 发生关联,因此 SOA 的治理需要多方达成一致意见。由于牵涉的人更多,导致治理的需求增加了。
  • 系统(System):此阶段的 SOA 由多个业务拥有者控制。这意味着 CxO 级别的支持是必要的,而且 SOA 治理需要集中化。SOA 治理指定了组织中所有各方后续 SOA 实现所遵循的标准。
  • 网络(Network):SOA 由不同的、积极参与的组织协调。这些组织彼此提供服务,这些服务相互连接,对端到端的业务流程提供了支持。这意味着这些参与方的 SOA 治理需要一致。缺乏正确的治理,服务变更将对业务运营造成重大不可预知的影响。

下表就每个成熟度级别的 SOA 治理生命周期阶段的需求变更给出了一些提示。它们并不是必需步骤,而是在实践中改进 SOA 治理的可能方法。这些提示可以在其他成熟度模型的类似矩阵中使用。拥有这样一个矩阵的好处是:它形成了一份简单的 SOA 治理发展道路概览。它还给组织提供了某种关于 SOA 成熟度级别的“健康指标”。

先驱

流程

系统

网络

SOA 的愿景

确定概念尝试的范围

小规模 SOA 的业务建议

确立与业务战略保持一致的愿景

通过 SOA 有可能将大范围的业务建议连接起来

创建 SOA 组织

发展技术技能

协调 SOA 治理和其他 IT 治理活动

搭建 SOA 治理结构

和网络伙伴一起创建网络化的治理委员会

服务组合管理

识别导航项目的服务

针对选择的服务更新业务用例

组合流程的规范化

建立服务开发来源的标准

服务生命周期管理

维护服务列表

跟踪服务生命周期各阶段

对存储所有服务的注册中心进行规范化

和网络伙伴一起协调服务生命周期

策略执行

记录最佳实践

规范化使用和开发服务的原则

建立策略执行的过程

确定网络伙伴间的执行点

服务水平管理

确保足够的运行时间

监视服务水平

确定每个服务的 SLA 和报告

和网络伙伴一起确定 SLA 和 SLA 报告

表 1:成熟度级别相关的治理流程范围

使用成熟度开发一个不断成长的 SOA

除了改变 SOA 生命周期各流程,增加成熟度还会改变 SOA 在组织中的影响。下面的模型展示了治理成熟度级别的这种转变。它表明,在第一个成熟度级别中,我们不能说组织中有“一个 SOA”。不同的小规模面向服务解决方案是被单独构建和治理的。为了获得更多企业范围内的好处,对这些先驱 SOA 进行了分组治理。分组可按业务流程进行,正如流程成熟度级别的名字所暗示的,但是按照业务单元或地理区域划分可能也不错。随着 SOA 成为企业范围的解决方案,治理要向一个集中的治理模型靠拢。甚至这个系统治理控制范围显示有边界,这意味着有可能把治理扩展到特殊部分。在最后一个成熟度级别,治理控制是在网络伙伴间协调的。来自不同组织的治理委员会可能会坐在一起,就彼此的框架和方法论进行共享和协调。

图 1:随着 SOA 控制范围的不断成熟,SOA 治理的生命周期在不断演变

一个组织中可能同时存在不同的 SOA 项目。一个 SOA 可能处于比另一个更高的成熟度级别。多个 SOA 域可以单独发展和治理。一旦成熟,它们就可以和另一个 SOA 控制范围合并。成熟度级别可能会随着功能、流程或组织单位不同而不同。例如,通过包含供应商的服务和设置服务开发生命周期的标准,采购部门可能表现为网络成熟度级别的特性。同时,HR 可能仍在使用自己的来自更低成熟度级别的治理结构。这并不见得是件坏事;隔离的环境可以有单独的治理。

另一方面,一个 SOA 域(以治理术语来讲是控制范围)内的成熟度要在治理流程间保持均匀。例如,服务生命周期的治理应该在策略执行上取得一致,因为成熟度低的执行不可能发生在一个复杂、成熟度高的环境中。

那么这又回到了 SOA 治理的生命周期。在“SOA 的愿景”流程中,SOA 治理的目的和成熟度目标应该确定清楚。这时组织可以建立一个系统级别的 SOA 治理委员会,但是标准化也可能按领域架构师在更小规模上存在。这将有助于使 SOA 治理高效,并适合它的目的。裁减过的治理也更可能高效,系统级别的委员会并不一定需要讨论只和一个控制范围相关的问题。

给身处成熟中的 SOA 治理环境的架构师的指导

架构师是组织内 SOA 努力的重要发起者,而且在其后的过程中也举足轻重,因为他们一般既能很好地全面把握,又能看到实际的内涵,但同时也能从战略愿景出发进行行动。架构师还是 IT 和业务之间重要的沟通者。由于这种有利位置,架构师会发现自己在企业内处于拥护 SOA 范式的位置。但是,并非所有架构师都适合所有 SOA 相关的活动。

根据以上的成熟度模型,我们将给架构师提供一些实用的指导方针,好让他们能帮助企业最大化当前成熟度级别的 SOA 潜力,并帮助他们推进 SOA 的成熟度级别。鉴于架构师的类型繁多,职责不同,我们将首先给出 SOA 环境相关的架构师角色的概览。这里,我们将遵照 Mike Kavis 给出的一份实用的架构师角色 [iii]

  • 首席架构师连接了这些 SOA 架构师,并向 CxO 负责。首席架构师当然要参与定义 SOA 的愿景,但是也应该指出 SOA 治理的方向。
  • 企业架构师要使 SOA 中的业务和 IT 需求对齐。这类架构师会通过和业务人员交谈来得到需求。企业架构师要重点参与服务组合管理。
  • 解决方案架构师具备实际的技术经验。因为面向服务技术的技术优势,他们可能是 SOA 的拥护者。
  • 领域架构师具备他们参与的业务领域相关的知识。这种架构师应该拥护原则,并将它们和业务解决方案挂钩。领域架构师是制订标准的优秀候选人,并决定这些标准在什么情况下可以有例外。

下表显示了在每个成熟度级别架构师可能的关注点。我们补充了架构委员会,它由不同的架构师角色组成,并作为责任主体为组织内的长期架构决策服务。由于我们关心的是治理,因此,这些架构角色的职责和 SOA 设计期是不同的。

下表按成熟度级别显示了这些角色的关注点。

角色

成熟度级别

先驱

流程

系统

网络

首席架构师

从导航项目吸取教训

建立公司的 SOA 愿景,强调标准的重要性

强调服务集成和服务重用的重要性

与关系链中的首席架构师一起积极参与

企业架构师

被告知导航项目的结果

确定组合流程,包括服务需求

管理服务组合;协调不同领域

寻找网络中的服务组合间的集成

领域架构师

确定导航项目的需求和范围

确定领域相关的标准

寻找和其他领域集成的好处

协调网络伙伴间的领域标准

解决方案架构师

尝试不同的支持应用和实现方法

确立服务生命周期管理的标准、策略执行和服务水平管理

协助创建企业范围的服务注册中心

更新标准,创建服务共享注册中心

架构委员会

确定导航项目的后续工作

验证并批准标准

对重要项目进行决策

在协调所有伙伴间 SOA 中的服务过程中提供支持

表 2:不同 SOA 成熟度级别中的架构师角色的关注点

总结

在本文中,我们解决了与 SOA 成熟度相关的治理问题。解决办法是:

  • SOA 治理应该关联到主流程的框架
  • 使用成熟度模型,将其和所有的 SOA 治理流程联系起来
  • 描述架构师在 SOA 治理流程中的参与方式

这些努力中的架构师职责并不是一成不变的。我们对架构师在不同成熟度级别的不同流程中的领导和支持方式给出了一些实用的指导方针。架构师需要解决不同成熟度级别的不同治理问题,因而其要求及必需的素质和技能随成熟度级别的不同而不同。而且,本文给出的指导方针绝非普遍真理。架构师要根据情况随机应变。

架构师是 SOA 项目的优秀发起者,而且他们可以为组织中第一个不断成熟的 SOA 及其治理担负起责任。然而,出于对 SOA 解决方案和治理走向成熟的考虑,业务必需发挥主导作用。架构师要和业务与 IT 代表分享治理委员会的职责。架构师最重要的职责可能是保证业务和 IT 的对齐,这就要求特殊的沟通和协调能力。一旦业务和架构师有了很好的理解和共识,并通过治理使其正式确定下来,SOA 就能长久的发挥作用,实现对企业的业务承诺。

如果您需要这一主题的更多信息,请随时联系我们: tschepers@deloitte.nl bkratz@deloitte.nl .

参考文献

[i]

2009 年 8 月 10 日 05:222238
用户头像

发布了 255 篇内容, 共 45.4 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
  • 第 152 讲 | 施翔:如何打造 7*24 高效交付通道(上)

    整个交付通道中,架构、配置、测试、发布等是提升效能的几个关键点,尤其是架构与配置,尤为重要。

    2019 年 1 月 7 日

  • SOA 治理中的角色

    本文探索了成功的SOA治理需要的一套潜在的角色:“SOA领域架构师”角色,“SOA平台架构师”角色,“服务设计者”角色,“业务服务所有者”和“技术服务所有者”。你可以采纳这些名字,也可以选择一套更适合你当前情况的术语,但是我相信在接下来本文中提到的那些任务对应的角色需要在各种情况下正式的授予,这样可确保SOA能实现它做的所有承诺。

  • 《SOA 治理最佳实践》用户调查

    这次调查的一个关键收获是:在很大程度上,SOA是真实的而且正在发生。91%的反馈者认为治理非常或较为重要。调查还对最流行的SOA标准进行了抽样调查。InfoQ对Software AG的VP和副CTOMiko Matsumura进行了采访,请他谈谈对这次调查反馈的看法。

  • 采访:Miko Matsumura 谈 AlignSpace

    在这次采访中,Software AG的副CTO Miko Matsumura介绍了一款为业务流程专家而提供的新协作平台:AlignSpace。他说中间件只是集成应用的一部分,他认为让人员更高效地协作具有很大价值。

  • SOA 案例研究竞赛结果揭秘 SOA 成功的主要因素

    由SOA协会和CIO杂志组办的SOA案例研究竞赛的结果展现了SOA实现中的公共话题,包括:业务IT强有力的合作是成功实现SOA的主要因素,细节定义、真实数字的肯定、业务收益都是衡量这一成功的标准。

  • 十年 SOA:当前的位置和未来的方向

    SOA 10岁了。在这次虚拟研讨会中,InfoQ聚集了几位经验丰富的企业架构师来分享他们的观点,他们是:Jeff Andre,Eric Ballou,Dave Hollander和William El Kaim。他们谈到了重用、业务/IT对齐、治理……

  • 建立服务治理组织

    服务治理是一个成功的面向服务架构的关键方面。它的建设必须在SOA实施的初期尽早地被计划和检验。在本文中,Jean-Jacques Dubray展示了创建这样一个有效组织的必要条件。

  • SOA 开放标准大观园——架构的导航

    来自OMG,OASIS和Open Group的许多致力于SOA标准化的成员聚集在一起,起草了一个新的白皮书,尝试为你在各种规范与工作组中提供导航。它刻意地实现无关化了,回避了Web服务、JBI以及其它的方式。

  • 2011 SOA 虚拟研讨会

    在本次虚拟研讨会上,SOA专家们分享了他们对于SOA现状以及未来趋势的观点及看法。

  • 聊聊 CMDB 的前世今生

    今天我主要来聊一聊CMDB的前世今生,帮助你更加深刻地理解这个运维的核心部件,对我们后面开展CMDB的建设大有裨益。

    2018 年 1 月 3 日

  • 书评:《应用 SOA》

    《应用SOA》是由四位一流SOA专家合著关于SOA的新书,其主旨是帮助你成功地实施SOA。尤其是,这本书将帮助你把你的SOA项目与企业架构、IT治理、核心数据和BPM项目结合起来。

  • IBM 总结出五项 SOA 最佳实践

    尽管现在很多公司都指望用SOA实现对新出现且不断改变的经济方面需求作出更快的响应,但它们不一定都能取得一致的可测量结果。IBM在最近发布的一份白皮书中为取得SOA实施的成功总结出了五项最佳实践。

  • 多地域服务网格设计与多环境基础架构实践

    演讲嘉宾同程艺龙基础架构部架构师,2016年加入同程艺龙,目前负责同程艺龙的私有云相关技术建设,包括服务网格/7层流量接入/容器与资源调度等。有丰富的基础架构经验,在加入艺龙之前,先后任职于百度运维部和基础架构部。内容介绍同程艺龙是一个领先的 OTA 服务商,业务高速增长的背景下,稳定性成为基础架构部首先面临的考验。在考虑稳定性的同时,我们也希望能支持业务的快速变化,以实现业务的高效创新。本次演讲,将分享我们通过自研服务网格平台,提升业务稳定性与快速变化能力的经验。

    2019 年 7 月 26 日

  • SOA 的管理策略

    Mike Kavis为SOA协会撰写了一篇文章,他在文中将SOA的成功实现归结为4个因素:人员、流程、技术和业务。他认为,一个好的管理策略将创建和传达一个路线图,它将划分出这些领域中的可提交结果。

  • 《SOA 治理》作者访谈

    InfoQ有幸介绍了新书《SOA治理:实现并保持业务和IT的机动性》,并采访了它的作者:Clive Gee,William A. Brown,Robert G. Laird和Tilak Mitra。采访内容包括重用在SOA中的地位、用于SOA治理的工具以及业务/IT对齐等。

  • 微服务框架需要考虑哪些治理环节?

    2018 年 1 月 9 日

  • 先做好 DDD 再谈微服务吧,那只是一种部署形式

    想要做好微服务,关键在于服务的划分,而划分服务,最好先学习 DDD。

    2019 年 4 月 5 日

  • SOA 宣言的发展

    在第二届SOA研讨会召开的同时,Thomas Erl和来自IBM、Red Hat、Oracle和Cognizant等公司的代表一起会谈决定定义一份新的SOA宣言。该工作组的成员之一,Steve Ross-Talbot,列出了他期望该小组考虑的一些关键领域。

  • SOA 治理的仙境

    Michael Poulin详细阐述了治理和管理的区别并试图在面向服务的环境内探寻治理的“仙境”。他定义了SOA治理,探究了治理和企业架构的关系,讨论了治理工作的权责关系以及执行者SOA治理的手段。

  • 微服务架构模型:几种常见模型的对比和分析

    这些架构模型在我们的实际应用中都具有很高的借鉴价值。

    2019 年 10 月 30 日

发现更多内容

SpreadJS 纯前端表格控件应用案例:铭天预算执行系统

Geek_Willie

SpreadJS 预算执行系统

全球移动服务生态的暗涌与新机

脑极体

让类/进程/脚本「单身」的方法

小林coding

c c++ Shell 设计模式 单例模式

C++ 一篇搞懂继承的常见特性

小林coding

c++ 编程 继承

C++ 赋值运算符‘=‘的重载(浅拷贝、深拷贝)

小林coding

c++ 编程 浅拷贝和深拷贝

C++ this指针的理解和作用

小林coding

c c++ 指针

C++ 一篇搞懂多态的实现原理

小林coding

c++ 编程 封装、继承、多态

音画同步体验有多好,来看看即构的自研互动白板就知道啦

ZEGO即构

在线教育 SVG canvas

Linux 平均负载高了怎么办?

小林coding

Linux 问题处理 linux命令

修改系统时间,导致 sem_timedwait 一直阻塞的问题解决和分析

小林coding

Linux 编程 问题处理

第二次推荐笔记:wolai

申屠鹏会

HTTP协议-基础

Jaykey

HTTP 前端进阶训练营

HTTP协议-进阶

Jaykey

HTTP 前端进阶训练营

C++ static 与 const 的认识

小林coding

c++ 编程 static关键字

Java-技术专题-final关键字

李浩宇/Alex

职教黄金时代,河南如何继续“乘风破浪”?

InfoQ_967a83c6d0d7

为什么直播系统不用RTP协议

soolaugust

WebRTC 直播 RTMP rtp

字节跳动想招什么样的技术人?

池建强

C++ 深入浅出工厂模式(初识篇)

小林coding

c++ 设计模式 工厂模式

大数据技术发展(一):大数据技术的起源

抖码算法

Java 大数据 hadoop 大数据处理 大数据技术

超超超全递归技巧讲解,这次带你拿下递归

多选参数

数据结构 算法 递归 数据结构与算法

Go语言专家测试,80%的人第一题就挂了!

博文视点Broadview

go 云原生 评测

C++ 手把手教你实现可变长的数组

小林coding

c++ 编程 数组

C++ 自增、自减运算符的重载和性能分析

小林coding

c++ 编程 运算符

SpringCloud(Netflix)-技术专题-Ribbon的基本使用

李浩宇/Alex

Java 技术 SpringCloud

国内首家 ABM 营销技术服务商火眼云完成5000万元A轮融资

人称T客

C++ 深入浅出工厂模式(进阶篇)

小林coding

c++ 设计模式 工厂模式

C++ 流插入和流提取运算符的重载

小林coding

c++ 编程

C++ 模板常见特性(函数模板、类模板)

小林coding

c++ 编程 模板方法

2020大厂web前端面试常见问题总结

华为云开发者社区

CSS 响应式 浏览器 面试题 web前端

C++ 运算符重载的基本概念

小林coding

c++ 编程

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

SOA治理成熟度——一名架构师的观点-InfoQ