SOA为什么不“香”了? | 大咖说中台

 


作者 | 耿立超

责编 | 晋兆雨

来源 | 《大数据平台架构与原型实现:数据中台建设实战》

SOA 所有的理念都是基于现有应用系统展开的,不管是对服务的梳理还是服务之间的交互,都是以现有应用系统为载体的,中台不同于SOA 的地方在于:中台是一种平台化思维,它并不是从系统集成的角度去思考问题,而是从架构层面上重构了整个IT 生态。

相比之下,中台无疑是一种更深刻、更底层的变革,因为它完全破除了应用之间的壁垒,把企业的核心业务能力“中心化”,把它们提炼并沉淀到中台的各个业务中心上,而不是面向单一业务方向或渠道的应用系统上。这在SOA 架构下是很难实现的,因为中台的业务中心与SOA 的服务载体(即应用系统)之间有着本质区别,它们的定位和服务对象都不同,这些区别决定了SOA 依然是一种相对松散的分治式的架构,很难与中台这种更加中心化、更为强力的架构体系相抗衡。

烟囱式的生态系统并不是今天才突显出来的,很多企业已经被这个问题困扰多年了,并且尝试过各种措施试图进行改善。回顾企业的IT 生态变迁史,一段不得不提的历程就是SOA(面向服务的架构)。本文核心观点援引自作者所著的《大数据平台架构与原型实现:数据中台建设实战》一书,全书对数据中台的理念、架构和具体实现做了详细论述。

大概在2005 年前后的七八年间,随着SOA 理念和相关技术(如ESB)的不断发展和完善,SOA 在当时被认为是改善僵化的IT 生态、解决烟囱架构等弊病的终极方案而被业界寄予厚望,很多企业在那个时期纷纷上马SOA 项目,希望凭借SOA 将企业的IT生态拉回到一种理想的状态。十多年后回首当初那场SOA 热潮,我们发现最终在SOA 改造上取得成功的企业少之又少,即使曾经取得了一定的成效,伴随后来新业务系统的冲击,当年辛苦建立的SOA 生态也大都名存实亡,是什么原因导致了这样的结果呢?

人们很早就意识到点对点式的系统间交互是非常糟糕的,在SOA 起源之前,已经出现了基于消息队列的“消息总线”架构,各个应用系统与消息总线连通,由消息总线负责将消息路由到接收方,从而让应用系统通过中心化的消息总线完成交互,这样就可以消除点对点式的系统交互。但是消息总线用于系统集成时在某些方面依然有所欠缺,例如消息都是静态的、预定义的、无法自描述的,消息接口无法被注册和发现。同时,另外一种以“服务”为视角看待和思考系统间交互的架构思想一直在不断地发展,后来,随着Web 服务(Web Service)技术的兴起,IT 系统的对外接口逐渐向平台中立的第一代Web 服务标准(WSDL+SOAP)靠拢,这为实施这一架构打开了大门,这就是SOA。

从系统集成的角度看,SOA 是一种非常理想的方案,SOA 体系的两大核心如下:

  • 对系统提供的对外交互进行提炼、组织和梳理,通过封装、组合与编排,将接口以“服务”的形式发布出去;

  • 系统间的交互统一通过中心化的企业服务总线(ESB)完成。 

典型的SOA 架构如图1所示。

图1 典型的SOA 架构

 SOA 成功的基础是对“服务”的提炼、组织和梳理,只有服务足够灵活才能支撑各种外部系统的复杂需求,而这一工作需要建立在对业务的深入了解之上,同时要融合良好的设计思想才能达到要求。 

SOA 中的“服务”在技术上以Web Service 为载体,但是在粒度(或者说抽象程度)上会有所不同,主要有如下三种粒度的服务: 

  • 基础服务:最细粒度的服务,最基本、最原子的服务都会在这一层,从服务数量上看,这一层也是最多的;

  • 复合服务:是基于多个基础服务组合叠加而成的粗粒度服务,多用于封装并简化由多个基础服务组合实现的共性服务;

  • 业务流程:是通过工作流引擎将多个服务编排起来,形成一个完整的业务流程,这是一种粒度更粗的服务,常用于实现一个标准的、可复用的大尺度业务流程,如审批等。 

在应用系统之间,SOA 依靠ESB 实现系统集成,ESB 是治理点对点式的系统集成的核心手段,它肩负着如下重担: 

  • 实现系统间的连通;

  • 数据转换;

  • 智能路由;

  • 安全控制;

  • 可靠性控制;

  • 服务管理;

  • 监控与日志。 

以上是对SOA 的一个基本介绍,SOA 针对烟囱架构的治理主要依赖于两个方面: 

  • 一方面立足于每个应用系统,要求系统对提供的“服务”进行提炼和抽象,确保其灵活、可重用,这是让服务满足外部复杂需求的根本保障;

  • 另一方面是通过中心化的交互媒介——ESB 来约束系统间的交互,消除点对点式集成的负面影响。 

但令人感慨的是:走到今天,SOA 已经很少被人提及了,回看企业曾经在SOA 上做出的尝试和努力,最后的效果多数都不够理想。在完成SOA 改造之后的若干年间,受到后续各种新系统的冲击,很多企业都没能坚守住自己的SOA 体系,最终又回到了烟囱架构下的野蛮生长状态,这其中的原因主要是: 

  • 沟通与协作成本高:新系统迫于业务需求和市场压力,急需上线,对负责的团队而言,与周边系统的对接和调试属于外部不可控因素,团队总是倾向于在内部可控的范围内解决问题,因此会刻意避开对外部服务的依赖,选择自建相关功能,这样一来,系统间的交互会向着衰减的方向发展,重复建设也因此随之蔓延;

  • 组织架构制约:团队往往缺乏为响应其他系统的诉求而改造和升级自身服务的意愿,因为新系统与他们没有直接的利益关系,企业也缺乏适当的奖惩机制促使各团队之间的积极协作,本质上,这是组织架构决定的;

  • 缺乏长效机制:SOA 改造常常是作为一个项目实施的,项目结束之后就不再有专门的组织和团队对SOA 架构进行持续把控了,后续新的系统在融入SOA 生态时受到的支持就减弱了,而新系统本身提供的服务也缺乏必要的梳理和管控,有的新系统甚至不对外提供服务。 

这些问题并不是SOA 自身的问题,而是一些普遍的现实问题,也是治理烟囱架构过程中遇到的深层次问题,这些问题阻碍了SOA 在企业的落地和持续发展。所以说SOA 是曾经的“救赎”,企业IT 生态现在面临的问题依然没有得到很好的解决。

 

关于作者:耿立超,架构师,14年IT系统开发和架构经验,对大数据、企业级应用架构、SaaS、分布式存储和领域驱动设计有丰富的实践经验,热衷函数式编程。目前负责企业数据中台的架构设计和开发工作,对Hadoop/Spark 生态系统有深入和广泛的了解,参与过Hadoop商业发行版的开发,曾带领团队建设过数个完备的企业数据平台,个人技术博客:https://laurence.blog.csdn.net/ 作者著有《大数据平台架构与原型实现:数据中台建设实战》一书。

 

该书已在京东和当当上线,扫描图中二维码了解详情

更多推荐阅读

  • 没想到!!Unicode 字符还能这样玩?

  • MongoDB 计划从“Data Sprawl”中逃脱

  • 推特惊爆史诗级漏洞,App 恶意窃取用户隐私,云端安全路向何方?

  • 开发者批评苹果商店佣金过高,库克将面临立法者质疑;花呗接入央行征信;GitHub 发布更新| 极客头条

  • 那个从深圳流水线去了纽约做程序员的女工,最近失业了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看到抖音上Python工程师晒得工资条,我沉默了......

我是个抖音中毒者闲来无事就喜欢刷抖音最近刷到了一个Python工程师的工资条然后我默默的打开看了然后就默默的关闭了如今Python技术由于大数据、人工智能的兴起Python也越来越火大家都纷纷学Python我不能跟你确保说学完Python你就能拿高工资但是你学完Python肯定有饭吃说不定还…

不用 H5,闲鱼 Flutter 如何玩转小游戏?

阿里妹导读:最近APP游戏化成为了一个新的风口,把在游戏中一些好玩的、能吸引用户的娱乐方式或场景应用在应用当中,以达到增加用户粘性,提升DAU的效果,成本较低。同时在一些需要对用户有引导性的场景,游戏化…

阿里巴巴向全社会开放黑科技:“泡在水里”的服务器

为了让数据中心更绿色,阿里工程曾将服务器“泡在水里”进行散热,节能超70%,今天这项黑科技的神秘面纱被揭开。 2020年1月6日,阿里巴巴宣布将“浸没式液冷数据中心技术规范”向全社会开放。这项规范旨在用一套标准流程为下一代绿色…

VS Code vue 模板

我们希望每次新建.vue文件后,VSCODE能够根据配置,自动生成我们想要的内容。 打开VSCODE编辑器,依次选择“文件 -> 首选项 -> 用户代码片段”,此时,会弹出一个搜索框,我们输入vue, 如下&am…

程序员必备基础:Git 命令全方位学习

来源 | 捡田螺的小男孩责编 | Carol封图 | CSDN 下载自视觉中国掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇…

eBay邓明:dubbo-go 中 metrics 的设计

最近因为要在 Apache/dubbo-go(以下简称 dubbo-go )里面实现类似的这个 metrics 功能,于是花了很多时间去了解现在 Dubbo 里面的 metrics 是怎么实现的。该部分,实际上是被放在一个独立的项目里面,即 metrics 。 总体…

稳定性专题 | Spring Boot 常见错误及解决方法

导读 『StabilityGuide』是阿里多位阿里技术工程师共同发起的稳定性领域的知识库开源项目,涵盖性能压测、故障演练、JVM、应用容器、服务框架、流量调度、监控、诊断等多个技术领域,以更结构化的方式来打造稳定性领域的知识库。 Spring Boot 作为 Java…

vue3 线上环境 ctx 无法识别

解决方案: Vue3获取当前组件实例的 getCurrentInstance 方法上 ctx 生产获取不到 上面的全局方法, getCurrentInstance代表上下文,即当前实例。ctx相当于Vue2的this, 但是需要特别注意的是ctx代替this只适用于开发阶段,如果将项目…

新职业风口已至!人社部宣布这10个职业缺口近千万!

负责阿里小蜜产品的陈海青是阿里最年轻的P9专家,才30岁出头,已经年入百万。小编的前领导,农村出身毫无背景,但是抓住风口卖掉了手里的比特币全款买了学区房,让他的孩子赢在起跑线上。面对这些踩在风口上的幸运儿&#…

一小时快速搭建基于阿里云容器服务-Kubernetes的Web应用

本文面向的读者 如果您是一个Kubernetes的初学者,本文可以帮助你快速在云上搭建一个可实际使用的集群环境,并发布自己的第一个应用。你无须提前准备任何的硬件资源或者下载任何的软件包。 如果您已经有一个自建的Kubernetes集群,想要尝试阿…

VS Code Git 日常操作

文章目录1. 初始化Git仓库2. 新建分支3. 提交4. 同步远程4.分支切换5. 合并分支1. 初始化Git仓库 使用**ctrl**召唤出命令窗口 # 初始化Git仓库 git init2. 新建分支 点击右下角的master,上方就会出现一个输入框,点击正在创建新分支,输入…

bootstrap table 列拖动变宽

需要导入 colResizable-1.6.min.js /**_ _____ _ _ _ | | __ \ (_) | | | | ___ ___ | | |__) |___ ___ _ ______ _| |__ | | ___ / __/ _ \| | _ // _ \/ __| |_ / _ | _ \| |/ _ \| (_| (_) | | | \ \ __/\__ \ |/…

阿里产品专家:高情商的技术人,如何做沟通?

不愿沟通是固执,不会沟通是傻瓜,不敢沟通是奴隶。 ——德拉蒙德 工作中,你是否经常看到别人在会上谈笑风生、纵横捭阖,但自己却唯唯诺诺,不敢表达观点?即便鼓起勇气发言却不被重视,经常被人打断…

“刚毕业1年,做Python能挣多少?”网友:吹的不多..

01现状揭秘:Python的火持续燃烧程序员:心态崩了!2020年转眼已经大半,在近几个月的榜单中,Python已经连续走上卫冕的道路,并且与Java的差距拉得更远了一些。以往与Java常呈现你追我赶之势,而这一…

阿里云正式推出内容平台“云栖号”:全面助力企业和个人上云决策

1月7日,阿里云官网正式推出“云栖号”(https://yqh.aliyun.com/ ),旨在为大家提供第一手的上云资讯,云产品快速入门,来自不同行业精选的企业上云案例,基于众多成功案例萃取而成的最佳实践&#…

bootstrap table 搜索列formatter之后,单字节搜索异常

bootstrap table 搜索列formatter之后&#xff0c;单字节搜索异常 最近发现搜索这边出现这个问题&#xff0c;这样搜索没有效果 后面发现是因为搜索列formatter之后就会出现这个问题&#xff0c;那么我们就多生成一列不使用formatter并隐藏这列 <!DOCTYPE html> <h…

完了!TCP出了大事!

来源 | 编程技术宇宙责编 | 晋兆雨封图 | CSDN 下载自视觉中国不速之客夜黑风高&#xff0c;乌云蔽月。两位不速之客&#xff0c;身着黑衣&#xff0c;一高一矮&#xff0c;潜入Linux帝国。这一潜就是一个多月&#xff0c;直到他们收到了一条消息高个&#xff1a;“上峰终于给我…

基于Flutter+FaaS的业务框架思考与实践

闲鱼将使用Flutter和FaaS来建设未来的技术开发体系&#xff0c;这是一项长期的规划&#xff0c;新的技术在现在看来犹如雾里看花&#xff0c;需要我们不断的思考&#xff0c;探索&#xff0c;实践才能渐渐描绘出它的轮廓。本文对此提供一种思考角度&#xff0c;对未来基于FaaSF…

机器学习在高德用户反馈信息处理中的实践

1.背景 作为国内领先的出行大数据公司&#xff0c;高德地图拥有众多的用户和合作厂商&#xff0c;这为高德带来了海量的出行数据&#xff0c;同时通过各个渠道&#xff0c;这些用户也在主动地为我们提供大量的反馈信息&#xff0c;这些信息是需要我们深入挖掘并作用于产品的&a…

div中同时存在文本和数字超过两行出省略号

div中同时存在文本和数字超过两行出省略号 设置文本超过两行出省略号出现下面问题&#xff0c;未到指定宽度就换行 width: 255px;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;word-wrap: break-word…