写点什么

SOA 成功的关键在于度量?

2009 年 4 月 26 日

最近,Joe McKendrick 在其 Blog 上引用了两篇关于 SOA 量化指标的报告,指出了 SOA 度量的重要性

这段时间以来,SOA 遭受到了一次打击,原因在于大家都在关心它交付 ROI 的能力。可是,交付 ROI 的唯一途径就是对基于 SOA 的劳动进行正确度量。

Joe 引用的这两份报告都就如何对 SOA 量化提出了自己的观点,并分别给出了一系列量化指标。它们一份来自 Symphony Services 的 CTO Jerry Smith 博士所写的《SOA 并没有死亡,而只是需要被有效地进行量化》,另一份则来自于Red Hat 的CTO Mark Little 博士所写的《你必须知道的SOA 重要度量指标》

Jerry Smith 在其文章中认为量化是进行正确决策的基础,为此必须定义出一系列的量化指标。同时,他认为这些量化指标应该是和公司的业务目标一致,而并非那些传统的软件开发指标,因为后者无法帮助你说服 CFO 给你提供必需的资源。在文章的后半部分,Jerry Smith 给出了他认为的面向业务的 SOA 度量指标:

  1. 服务的活跃指数,它跟踪新服务在过去 12 月内收益占服务收益总和的百分比。Jerry Smith 认为该指标可被用来度量 SOA 的投资价值。
  2. 每个服务的收益,这将使组织可以定量地评估服务的价值和 SOA 的生产率。
  3. 新服务产生和使用的数量占服务总数的百分比,创建不必要的新服务不仅是 SOA 治理不力的表现,而且还会造成服务开发整体成本的上升和服务平均收益的下降。
  4. 服务开发平均时间,该指标给企业度量业务机动性提供了方法。
  5. 服务变更平均时间,该指标同样跟业务机动性相关,了解该指标有助于企业发现那些设计蹩脚、导致企业成本上升的服务。
  6. 服务重用,该指标会影响服务开发平均时间和服务变更平均时间。
  7. 服务不可用或停止带来的成本,该指标直接影响到了用户体验,进而给企业的机会成本造成影响。
  8. 服务的可用性,该指标定义了服务可被最终用户使用的时间百分比。

Mark Little 强调了治理的重要性,同时认为软件虽然对治理是有益的,但是单有软件并不能实现治理。从指标上看,Mark Little 和 Jerry Smith 不乏相似之处。在他看来,SOA 的重要指标是:

  1. 每个服务的投资回报(ROI),Mark Little 特别提到了组合服务的情况,即几个服务一起来完成一个业务任务,此时应该度量的是服务组合,而不是各个服务。
  2. 每个服务的收益,该指标和 ROI 息息相关。
  3. 服务的增长率 / 重用,建立这个指标有助于防止大量开发不必要的新服务
  4. 业务机动性,它是指服务从设计到部署的总时间。
  5. 可靠性,它反映到了两个时间上:平均故障时间和平均恢复时间,而且 Mark 特别指出,你不仅应该度量服务的这两个时间,而且应该对机器和网络的这两个时间进行度量。
  6. 服务的内部依赖,这将有助于度量某个服务退役之后对业务带来的影响。

对于两人的报告,Dan Foody认为他们都没有切中要害

首先,他提出“如果你无法获得资助去完成 SOA,那么度量 SOA 意义不大”。他认为“如果你想让 SOA 落地,那么你需要寻找的是那些在短时间内产生巨大回报的小规模投资”。其次,他认为这些报告存在的第二个问题是“有意义的度量指标”,即度量指标是很重要,但是每个企业各不相同。

如果你是服务提供商企业,你当然可以度量像“每个服务的收益”、“服务活跃性”,以及关系服务收益的 ROI。但这和 SOA 有什么关系?!早在 SOA 存在之前,人们就已经在构建和交付可以产生收益的服务了。而且,这些度量指标如何作用于那些并不是销售电子服务的公司?对于联邦快递的免费跟踪包裹的 Web 服务,其直接的 ROI 是什么?

Dan Foody 认为,应该同时度量使用 SOA 和不使用 SOA 完成业务的成本,否则度量将是不完整的,而且可能会产生误导。因为两种方法产生的收益可能一样,Dan Foody 以联邦快递为例说明了这点。在文章的结尾,他写道:

你必须现实点:

  • 不要关注那些“可疑的”指标(如“SOA 的 ROI”)——业务不会相信你。
  • 不要关注那些要多年之后才能测量出的指标(如“某某平均时间”)——业务不会听你。
  • 成本越低,你需要进行解释就越少。
  • 风险越低,你需要进行解释就越少。
  • 你能越早展示可察觉的收益,你就越不需要操心度量指标。

度量指标在 SOA 有其一席之地——有助于让 SOA 随着时间不断进化。但是,人们只有在看到结果之后才会相信这些度量指标,这就是你为什么不能以度量开始的原因。使 SOA 基础设施落地的最佳途径是时间已经证明的老方法:找一帮聪明的实干家(不是演说家,也不是空想家),使用 SOA 快速地交付一个重要项目。使用这种方法,将能对 SOA 的能力赢得共识。

2009 年 4 月 26 日 02:44743
用户头像

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

关注

评论

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

游戏夜读 | 如何面对前景渺茫?

game1night

大中台模式下如何构建复杂业务核心状态机组件

奈学教育

中台

[架构师训练营] Week01 - 食堂就餐卡系统设计

谭方敏

学习

k8s 上运行我们的 springboot 服务之——自动化测试

柠檬

maven DevOps Unit Test

大中台模式下如何构建复杂业务核心状态机组件

古月木易

Kafka零数据丢失的配置方案

奈学教育

kafka

做产品少走弯路:上帝视角(2)

我是IT民工

产品 方法 路径 知识体系

由一次管理后台定时推送功能引发的对RabbitMQ延迟队列的思考(一)

LSJ

Java RabbitMQ 延迟队列

如何基于 OAM 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

3年内从负债到买房三套,勤劳不能致富,工资只能温饱

陆陆通通

创业 程序员 赚钱 买房

算法基础:排序算法看这一篇就够了

公众号:好奇心森林

排序算法

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十一)编写测试-动态测试

编程道与术

Java 编程 TDD 单元测试 JUnit

小师妹学JavaIO之:NIO中那些奇怪的Buffer

程序那些事

io nio Java 25 周年 小师妹 buffer

如何用日记提升写作能力?

石云升

学习 方法 写作

LeetCode 756. Pyramid Transition Matrix

liu_liu

LeetCode

公司治理的两个关键要素:存在的基石 + 成长的飞轮

泰稳@极客邦科技

发展 公司管理 增长

《Golang工具go doc使用透析》

卓丁

golang godoc go doc golang如何实现接口 源码阅读

[转载]Go 和 Java的15个主要差异

卓丁

Java golang

架构师训练营第一周作业

Benjamin

ARTS WEEK3

紫枫

ARTS 打卡计划

互金总结系列(1)--开篇

互金从业者X

Libra教程之:Libra协议的关键概念

程序那些事

区块链 libra blockchain 协议

SpringMVC中Http请求方式转换(post转换为put/delete等方式)

知春秋

springmvc post post到put方式请求 post到delete方式请求

你不能不掌握的软技能——业务语言

KAMI

方法论 开发 沟通 软技能

读《你的灯还亮着吗》

liu_liu

读书感悟

[翻译]The Go Blog《Go maps in action》

卓丁

go golang hashmap map 哈希表

Zookeeper 序列化

CoderLi

Java zookeeper 源码分析 后端

Libra白皮书解读

程序那些事

区块链 facebook 数字货币 libra

食堂就餐卡系统架构设计文档

dony.zhang

拙见/ 什么是自驱力?

ZoomQuiet大妈

自我提升 大妈 是也乎 IMHO 蟒营®

白话说流——什么是流,从批认识流(二)

KAMI

大数据 flink 流计算

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

SOA成功的关键在于度量?-InfoQ