“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

SOA 治理:真的需要还是在浪费时间?

  • 2008-01-16
  • 本文字数:5764 字

    阅读完需:约 19 分钟

在 IT 出版物和大会中,“治理”这个词被不断地提及已经有一段时间了,但从技术范围来讲,这些讨论通常最多算是隔靴搔痒。而这篇文章从 IT 治理的基本概念开始,到对设计阶段以及随后的运行阶段的治理,对开发者来说是一个很好的指导。

想象一个正在实施 SOA 项目的组织。每一个人都因为充足的项目预算和新的业务和技术机会而感到兴奋——看起来机会来了,但每个人同时也感受到了一定的压力。这时我们遇到了“SOA 治理”女士,她负责保证关于服务的一切事物都正常运转。治理女士需要关注 SOA 的大方向和整个组织的利益。她不参与日常业务也不关心技术细节,但她将会制订战略,分配任务和全程监管项目。例如,必须保证花销有尽可能好的回报,实施的服务可以尽可能好的服务于业务。尽管治理女士得到了所有人的尊重,但她有时候会非常严厉,甚至不给项目经理和资深架构师的面子。当然,她最终可以直接向最高管理层和股东汇报,……这使她的言论非常有信服力。换句话说,治理女士至少在公司的 SOA 方面有着几乎至高无上的权利。

但等等,这不是管理层的工作吗?难道管理层不关心 SOA 的成败?理论上是对的。但实际上(你应该知道理论和实际的差距!),管理者总是有自己的(有时候甚至是秘密的)打算,它通常是和组织的长远目标相违背的。例如,项目经理更关心项目进度,而不是战略目标。因此,治理女士扮演的是某种超级管理者的角色,她只在乎组织本身。她要鼓励并强制“所期望的做法”。她的工作就是控制,就是法律和命令——而不是彬彬有礼。

她的职责可以作为“SOA 治理”新准则的蓝本。这个职责不是为了创造更多的工作乐趣,也不是要使用最新的技术——而是关心花了多少钱和由此产生了多少回报。这就是 SOA 治理在我们开发者和架构师中不太受欢迎的原因,因为一旦设立了这种治理程序,他们的(当然也包括我在内!) 生活乐趣就会减少。但是可以肯定的是:它会使你的组织或企业保持健康的发展——即使有所损失也是值得的。

在我们进入 SOA 治理的细节之前,我先解释一下在治理女士海量的知识库中她所钟爱的一条座右铭:“企业和组织需要两个看起来相互矛盾的东西。”

首先,他们需要“秩序和控制“:他们需要法律,审判和暴力机构……这就是治理。需要提出警告的是:不管你们软件开发者或架构师喜不喜欢,一定要把你们纳入治理的范畴之内。

再者,他们需要自由,创作的空间和积极的工作环境,尤其是对脑力工作者。这也是整个“敏捷”运动的目标。

尤其是在 IT 组织,秩序和控制通常被认为是对提高脑力工作者的生产力起着相反的作用。我这里不是在谈论极权:治理想要加入的是适量的控制,目的是要使业务和 IT 更加的一致(说的多,成功的少),因为通常 IT 人员不关心业务,而业务人员也同样忽略我们做 IT 的。但他们紧密的合作对企业的成功至关重要!

因此,治理是必要的,适量的治理是企业成功的保证。哈佛教授 Weill 和 Ross 可以证明成功的 IT 治理意味着更高的回报!而缺乏治理意味着长期的高失败风险。

背景

在我们进入细节之前,我们应该看一看整个治理家族(见图“治理层级”):治理女士生活在一个大家庭中。她的大姐姐自称公司治理,外号“监察女士“。她有着仅次于世界和平的目标:保证企业中发生的任何事情都是对企业有益的。简而言之:她关心的是企业的价值和财富。

图 1: 治理层级

下一个要讲的是治理女士的小姐姐,IT 治理。她的工作集中在 IT 和业务的关系。许多在线和传统媒体都对此(IT 治理)有详细的描述,例如“IT 治理协会”(ITGI)的 [ITGovBB] ,或 Peter Weill 与 Jeanne Ross 合著的一本优秀的书“IT 治理”[WeillRoss]。她的责任和任务决定了我们刚刚遇到的 SOA 治理女士的责任和任务。

下图是“IT 治理的核心领域”,摘自 [ITGovBB],它描述了 IT 治理的任务。太抽象了,不是吗?

图 2: IT 治理的核心领域

IT 治理

IT 治理是 SOA 治理的基础——在 SOA 组织里,两种治理必须协同进行。IT 治理需要保证所有 IT 相关的活动都与组织目标一致,对组织的长远发展提供支持。IT 治理大师 Peter Weill 和 Jeanne Ross 很好地将之定义为“鼓励所期望 IT 行为的权利决策与义务框架”(摘自 [WeillRoss])。或者说:治理要鼓励所期望的行为。它提供合适的“秩序和控制”框架,它在为业务提供足够自由蓬勃发展的同时,对个人和流程进行了必要的控制,从而避免混乱的行为。

当我刚接触到治理的时候,我觉得把它联系到实际非常困难。因此,让我们通过一个实际的例子看看什么是所期望的行为——摘自于 [Ashar+07]:

“在过去的 12 个月里,为什么有那么多的混合动力的汽车在加利福尼亚州注册呢?是因为给予混合动力车主的超过 1500 美元的联邦税收优惠?或者是享受一个人在交通高峰期开在专用车道的奢侈?或者是加利福尼亚州开始越来越重视环保了?不管真实的原因是什么,现实是这些政策正在鼓励所期望的行为——购买低能耗的汽车。这就是一个治理的例子:政策正在引导所期望的结果。

很容易,不是吗?现在你会问:那 IT 治理如何达到这个目标呢?如何在 IT 领域里引导所期望的行为呢?

答案就在以下四个必须由我们的 IT 治理女士回答的问题中:

  1. 应该采取哪些 IT 决策?
  2. 这些决策应该由哪些角色或人来执行?
  3. 如何执行这些决策?
  4. 如何监控这些决策的结果?

听起来好像很复杂,不是吗?下图“关键治理问题”总结了这些问题:

图 3: 关键治理问题

治理的好处

但你会问,“为什么这么复杂呢?”这些又能带来什么好处呢?我将给出一个非常诱人的好处列表(不要犹豫,赶快转发给你的经理……)

  • 高利润:独立研究表明一个 IT 治理有效的组织有更高的利润——哈佛商学院把它定量为 20% 的提高。
  • 控制资金投资:IT 开销是主要的资金投资——其大约占许多企业每年总投资的 50%。
  • 投资回报率和达成价值:目前虽然组织对 IT 进行投资,但通常不能监控这些投资产生的价值。治理采取的监控机制能更好的度量投资回报率。
  • 有效地决策:参与 IT 相关决策的人数还在不断上升,这给建立一个有效的决策流程提供了非常好的理由。例如,现在连业务经理都在对 IT 花费指手画脚。
  • 平衡地解决冲突:花费的效率性和灵活性是两个矛盾的业务目标,这需要从整个组织进行平衡,而这正是 IT 治理乐于提供的。

假如你的组织或企业还没有任何的 IT 治理,那你的 SOA 项目就给了你一个绝好的理由,让我们从今天开始 IT 和 SOA 治理吧……

SOA 治理

既然我们对 IT 治理有了一个简单的认识,那究竟什么是“SOA 治理”呢?我假设你已经对面向服务的架构(SOA)有了一般的了解。一个采用并实施 SOA 的组织需要关心在整个服务生命周期中出现的一系列问题。我下面只是列举其中几个:

  • 业务过程设计:用面向服务的方式创建业务流程,分析功能性和非功能性需求。
  • 利用现有投资重用服务,从而提高现有服务的整体价值
  • 提供服务(遵从已设定的服务等级协定)给其他组织和 / 或客户
  • 保证服务质量并进行测试,按照功能性和非功能性需求
  • 架构,设计和实现服务技术基础设施,能够重用现有的基础服务,如格式转换,加密,压缩,认证和授权。
  • 对服务相关的业务和技术进行适当的文档化,根据服务消费者和提供者
  • 监控服务执行期的行为:特定服务被调用的次数,使用了那些参数,从哪个消费者?他们使用了高级功能了吗(要付钱的!),或一直在用免费的版本?

这些问题将会涉及到众多的人,以及从覆盖服务实现的业务需求到提供和运营服务这一漫长的过程中产生的大量文档,模型,日志和其他的产出。

文章的一开始就谈到了对控制的需求——我现在再一次回到那里:SOA 需要对文档和各种产出进行严格的控制。任何要求和保持服务正常运营的东西都需要得到治理——要避免非我发明症(not-invented-here syndrome)并最大化重用。作为(敏捷)软件开发者或许并不喜欢它——我一开始就说过了……但如果你的组织想要 SOA 持久成功,这种控制是必要的!如果你不相信我:即使那些来自 Gartner Group 对技术很友好的人也会预言,SOA 项目因缺少治理而失败的可能性要比因技术缺乏而失败的可能性要大 ([Gartner])。

现在让我们进一步看看必需的行为:对 SOA 的控制包括两个不同的时期(Lori MacVittie 在他那篇优秀的在线文章中称它们为计时器):第一个是设计或开发时期,另一个是运行或执行时期。因为二者有一些关键的共同点(称为元数据!)并相互影响,所以你必须同时关注。下面让我们依次讨论它们。

设计时期治理

设计时期治理控制软件开发周期内的所有阶段和活动。它从需求管理开始,延伸至架构,实现,测试,质量控制,文档——直到你的服务正式运行。设想一个业务或需求分析师正在获取下一代业务服务的需求。设计时期治理需要保证分析师获得全部已有的相关信息——并确定完成工作需要的时间。然后,你的软件架构师或服务架构师开始设计一个合适的解决架构。同样,治理要保证所有的产出,文档,(UML)模型,甚至服务契约都要准备完毕并可用(能够快速查找并同时方便重用)。

这种形式的设计时期治理有它的开销:对开发周期中所有产生或使用的东西(如文档,模型,演示,缺陷报告,评估,概念,尤其是服务描述,服务接口等)进行控制。许多开发者认为这种控制是一种障碍,而不是对他们工作的支持。一个组织要看得长远——要给予开发者相应教育并提供合适的工具(参见后续部分),这样会减少这种控制所造成的影响。

最后,服务也实现了,服务级别协议(SLA)也确定下来了,任何相关的东西也被文档化和测试了,那么你的服务就可以准备上线了!……也昭示着第二个 SOA 治理时期的开始。

运行时期治理

运行时期治理包含所有与服务执行和运营相关的事情。你需要了解哪个服务被调用,调用者是谁,以及使用了什么样的参数。你应该预先能侦测到性能瓶颈,关心服务提供者和消费者两端都认同的服务级别,观测日志和异常情况。简单而言之:它应该不间断地监控服务执行的方方面面。与设计时期治理不同,这并不需要太多的人参与。人,特别是 SOA 治理女士,只需要对综合结果报告进行评估。他们将会得到可用于下一个服务设计和实现迭代的大量反馈(你的工作又回到开始,不是吗?)

治理工具

针对 SOA 治理,软件业提供了两类不同的工具:注册和仓库。两者都可以用来存储服务元数据,它们是关于服务的所有信息。术语在这里并不重要,你需要关心的是为 SOA 设计和运行时期治理选择合适的工具。从我(与厂商无关)的观点看,先从一些小项目或原型项目开始建立你自己的 SOA 过程,然后再开始你的 SOA 治理工具链的选购进程不失为一个明智的做法。但是:不要忽略了对你的治理应有的支持。你要努力使之平滑的集成到你特有的 SOA 生命周期——否则无法得到股东的认可——连最和善的治理女士也不会帮你。
SOA 治理工具链应该提供什么样的功能呢?正如前面所讲:你需要的是设计和运行两时期的支持。特殊的 SOA 生命周期也需要一些特殊的功能列表(是的,你会有一个只属于你的列表)。其中,每一个角色和活动都应该有其相应的支持。说起来容易,做起来难!无论如何,我还是强烈建议你评估这些用来支持治理女士工作的工具——否则你的 SOA 很可能到最后就是一团糟却没有任何回报。

总结

现在你或许会讲:“SOA 治理容易。只要找到一个酷酷的工具就万事大吉了”。错,全错。再听听我们经验丰富的治理女士的话吧,她为有效的 SOA 治理提出了以下建议:

  1. 制订并实施适合你组织的 SOA 过程。通过设计和开发一些服务来获取使用和提供服务的经验。针对你的 SOA 活动,设定角色并分配责任。
  2. 评估适合你的 SOA 过程的文档类型。并交给 SOA 治理,你需要控制它们!
  3. 评估在服务运行时需要监控的信息类型。你需要跟踪 SLA 吗?你需要检查调用服务的日志吗?同样,这都是基于你的需求。
  4. 协调 SOA 治理和 IT 治理。你的 IT 治理非常有可能从你的 SOA 治理获益,你的 SOA 治理同样也会如此。这称之为协同增效——显然是一个值得拥有的好东西。

通过这些不多的步骤,你就可以建立一个非常有效的 SOA 和 IT 治理程序。愿治理女士与你同在:)

引用和参考

  • Corporate and IT Governance
  • [ITGovBB] Board Briefing on IT-Governance. IT Governance Institute, available online: http://www.itgi.org
  • CorpGov
  • ITGI: Institute for IT-Governance
  • [Weill-Ross]: Peter Weill, Jeanne W. Ross: I_T Governance: How Top Performers Manage IT Decision Rights for Superior Results_, Harvard Business School Press, 2004. The seminal book on IT-Governance. If you want to read only one piece on governance, I strongly suggest this Weill & Ross. They are precise, concrete, understandable and experts. Additionally they have mastered the art of writing well!

SOA Governance- [MacVittie06]Lori MacVittie: Understanding SOA Governance. Online: www.intelligententerprise.com

  • [Afshar+07]: Mohamad Afshar & Benjamin Moreland: Key to successful SOA Governance, August 2007. Online: http://www.ebizq.net/topics/soa/features/7680.html?page=2&pp=1
  • [Gartner]: "Lack of working governance mechanisms in SOA projects will be the most common reason for project failure (0.8 probability). (Jess Thompson, Gartner)"
  • [Forrester-Jun06]: Forrester Research, June 12, 2006: “The Scope and Focus of SOA Governance” by Randy Heffner and Larry Fulton with Christine E. Atwood

关于作者

Gernot Starke 软件架构和敏捷开发实践的独立咨询师和教练。他的客户来自于不同的行业(金融,物流,电信,制造和公共管理),并受益于他在软件架构,开发和管理方面超过 20 年的实践经验。他参与建立了面向软件架构师的 arc42 portal ,并撰写了大量关于软件架构的文章和书籍。他是“SOA 专家指南”这本(德文)书的编辑之一。Gernot 与他的妻子 Cheffe Uli 和两个孩子生活在德国科隆,练瑜加,有时也玩玩萨克斯。你可在 http://ww.gernotstarke.de 得到更多的信息。

查看英文原文: http://www.infoq.com/articles/governance-gernot-starke - - - - - -

译者简介:戴垚,2000 年计算机硕士毕业后一直从事软件开发管理工作,目前在一家大型外企担任开发部门经理。关心软件技术和相关工具的动态,深信技术的使用应以创造价值为根本。目前致力于 SOA 的研究,希望能对业已复杂的企业环境有所帮助。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2008-01-16 23:251092

评论

发布
暂无评论
发现更多内容

2022 支付宝五福 |“联机版”打年兽背后的网络技术 RTMS

阿里巴巴终端技术

客户端 网络技术 网络通信

博睿数据拨测入场加速广电深度融合

博睿数据

智能运维 博睿数据 智慧广电

洗车行业前景好不如开个自助洗车店

共享电单车厂家

自助洗车加盟 开自助洗车店

24小时无人自助洗车要如何加盟?

共享电单车厂家

自助洗车加盟

OpenHarmony 3.1 Release版本关键特性解析——OpenHarmony新音视频引擎——HiStreamer

OpenHarmony开发者

Open Harmony

为什么你的网站需要搭建在线帮助中心?

小炮

2022云原生网络趋势 | K8s托管整个基础设施、多云、边缘计算、安全等场景,将云原生网络带向新战场

York

云原生 网络 Kube-OVN cni 6月月更

哪些人比较适合加盟自助洗车

共享电单车厂家

加盟自助洗车

2022年4月线上终端药品增长迅猛,市场政策合规进程加快

易观分析

医药类

“东数西算”与“双碳”双驱力叠加,新华三争当“全能型选手”

WorkPlus

Redis 忽然变慢了如何排查并解决?

码哥字节

redis Redis 核心技术与实战 6月月更

WASM VS EVM,波卡的选择预示了公链未来

One Block Community

区块链 公链 波卡生态

定档615 | 数字化基础软件自主创新分享周即将来袭,点击获取“通关密钥”!

网易数帆

大数据 云原生 基础软件 数字化转型 自主创新

顶级好用的 React 表单设计生成器,可拖拽生成表单

蒋川

低代码 开发工具 React 表单 组件

有了这个云端Mock功能,你的简历起码提升30分!

Liam

前端 Postman 前端教程 API文档 前端工具

为什么PO的角色在Scrum框架中不可替代

ShineScrum捷行

Scrum 产品经理 PO 产品负责人

CPU利用率从10%提升至60%:中型企业云原生成本优化实战指南

星汉未来

运维 云原生 IT成本 星汉未来 FinOps

自助洗车机还能加盟你不知道吧?

共享电单车厂家

自助洗车机 自助洗车加盟

6元自助洗车机一般都什么价位

共享电单车厂家

自助洗车加盟 6元自助洗车机

看完这篇异地多活的改造,我决定和架构师battle一下 / 得物技术

得物技术

架构 容灾 双活 双活容灾 异地多活

C#入门系列(一) -- 初识C#语言

陈言必行

C# 6月月更

招聘 | 上班轰趴,下班狼人杀,天天招人,怕是要发!

Alluxio

面试 程序员人生 招聘 互联网热点 Alluxio

成本节省 50%,10 人团队使用函数计算开发 wolai 在线文档应用

Serverless Devs

Serverless wolai

如何撰写数据中台蓝图方案

agileai

数据中台 企业服务总线 主数据平台 数据分析平台 蓝图方案

英特尔计划建造浸没式实验室,帮助高功率芯片快速降温

WorkPlus

幸运哈希算法竞猜游戏开发特点分析(成熟方案)

开发微hkkf5566

各国儿童节时间是不一样的

清林情报分析师

数据可视化 知识图谱 儿童节

移动端异构运算技术-GPU OpenCL编程(进阶篇)

百度Geek说

【高并发】你知道吗?大家都在使用Redisson实现分布式锁了!!

冰河

并发编程 多线程 高并发 异步编程 6月月更

展示 Postlight 的 WordPress + React Starter Kit

海拥(haiyong.site)

WordPress 6月月更

关键点标注的酷炫,你想象不到

澳鹏Appen

人工智能 数据标注 数据训练 关键点检测 关键点

SOA 治理:真的需要还是在浪费时间?_SOA_Gernot Starke_InfoQ精选文章