​中台战略:业务中台的8个设计原则

业务中台是一个充满生命力的个体,它承载业务逻辑、沉淀业务数据、产生业务价值,并随着业务不断发展进化。它的设计遵循如下图所示的8个原则。

业务中台设计的8大原则

01 服务松耦合原则

(1)面向接口实现
这是服务松耦合的基本要求,即每一个服务都按接口的定义进行实现。服务的消费方不需要依赖某个特定的服务实现,避免服务提供方的内部变更影响到消费方。另外,在服务提供方切换到其他系统时,不影响服务消费方的正常运行。 

(2)异步事件解耦
服务间的事件通信采用异步消息队列来实现。由于有消息队列这个中介,因此生产者和消费者不必在同一时间都保持实时处理能力,而且消费生产者也不需要马上等到回复。 

(3)服务提供者位置解耦
服务消费者不需要直接了解服务提供者的具体位置信息,例如IP地址、端口。典型解决方法是服务注册中心,服务提供者启动时将自己注册到服务注册中心,服务消费者通过服务注册中心查找具体服务提供者来访问。同时,服务注册中心可以提供负载均衡及fail-over的能力。 

(4)版本松耦合
消费端不需要依赖服务契约的某个特定版本来工作,这就要求服务契约在升级时尽可能提供向下兼容性。

02 服务依赖原则

(1)有价值的领域模型

  • 价值导向:确保业务中心的服务都与企业的商业理想保持一致,相关联。 
  • 简捷为美:业务逻辑和流程避免复杂化。 
  • 领域洞察:紧贴业务的核心目的,从业务原则指导业务逻辑的设计。

 (2)服务间最小依赖 

  • 高内聚:同一类服务应归在一起。
  • 低耦合:服务间保持最小联系。
  • 能力与接口:业务流程和业务逻辑的操作都作为中心服务实现,而提供给外部调用的接口数据模型都会转化为服务。
  • 识别通用性:识别出每个通用能力的可扩展的类型,从设计上支持它不断扩展,并在接口定义上满足其不断升级的需求。

(3)能力实体具有层次性

  • 能力与接口:分离接口实体与能力实体。
  • 接口实体与限定元素:将接口实体核心元素与接口操作的限定元素分离。
  • 接口实体的层次结构:建设接口实体和上下文限定元素的层次结构。

(4)延迟对技术组件的依赖

  • 捆绑依赖:避免在无关的组件技术之间引入新的依赖。
  • 延迟绑定:在使用点才捆绑依赖关系。

03 服务设计原则

(1)优化远程调用
服务间的远程调用分为同步调用和异步调用两种模式。应当分析服务调用场景,选择较优的调用模式。 

(2)去掉冗余数据
尽量去掉接口实体中客户端不需要的冗余字段,既能减少网络开销,又能避免给前端解析带去复杂性。

(3)设计粗粒度的服务接口
服务接口若能与前端一个用例或一个业务场景相对应(粒度较粗)则既能减少远程调用次数,又能降低学习成本。

 (4)识别并设计通用的服务接口
由于中心服务不限定应用范围,因此一般要支持不同的应用。但不同应用在功能丰富性上有很大差异,这就决定了服务接口需要尽可能保证广泛兼容性。譬如,服务接口的参数和返回值必须是被广泛支持的较简单的数据类型。

 (5)隔离服务内部的变化
避免服务内部的领域模型直接传导给客户端。如未能提供合理的隔离措施,则当服务进行内部重构时,势必导致客户端频繁变化。 

(6)服务接口先行
详细规定服务与客户端双方对接的内容与形式等,对双方形成强有力的约束和保障

(7)服务接口向下兼容
由于应用的广泛性,在服务公开发布之后就要保证相当的稳定性,不能随便重构,即使升级也要尽可能考虑向下兼容性。

04 服务命名原则

强烈建议使用服务使用者专业领域内有意义的名称,优先选用业务概念而不是技术概念。 使用名词命名服务,使用动词命名操作。

05 服务颗粒度原则

服务应是内聚而完整的,能够独立完成一个职责。在服务内部可以是由多个逻辑上密切相关的代码块共同组成。

06 服务的无状态性原则

微服务体系的基本要求是服务无状态。无状态的服务是可伸缩、高可用性的基础。

07 服务操作设计原则

操作表示业务动作,应当使用具体的业务含义而不是泛型操作来定义操作。相关的最佳实践如下:

  • 重要的服务不能依赖非重要服务。
  • 任何服务调用都要设定超时时间。
  • 任何服务的调用结果只有三种可能:成功、失败或未知。
  • 能异步调用的服务尽量使用异步调用,从而提高系统响应速度,降低系统之间的耦合性。
  • 系统拆分时,粒度大小以一个系统3~8个开发人员维护为宜。
  • 系统拆分时,往往先拆分数据服务层,因为数据服务层通常是复用性高的一层。
  • 服务的实现不能有单点。
  • 线上遵循fast-fail原则,避免服务调用时间过长,导致性能下降。fast-fail原则是只要发生错误,则调用立即返回。
  • 需要对高压场景下的服务调用链路进行特殊处理,可采用将链路缩短、预热等方式。
  • 服务设计过程中,要避免同类服务由不同服务单元提供。
  • 服务要做到向后兼容,如果无法做到,则需要采取管控机制确保服务消费者升级服务。
  • 服务化架构的变化要使组织的架构能适应这种变化。
  • 在部署服务单元时,要将读服务和写服务分离,将核心服务和非核心服务分离,以保证整个服务单元的稳定性和可靠性。
  • 服务化时,要同时考虑安全。
  • 静态资源也可以实现服务化,实现静态资源与动态资源分离,从而提高性能。
  • 通过在外层系统埋点,可以实现面向终端用户服务的精细管理,比如服务的容量、服务的性能等。
  • 需要将每个业务领域的通用规则沉淀成服务。

08 服务约束原则

  • 上可依赖下;
  • 下不可依赖上;
  • 上可跨级依赖下;
  • 平级可允许单向调用,坚决禁止循环依赖;
  • 高级别不可依赖低级别;
  • 简单就是美;

重要的服务不能依赖非重要服务。

文章摘自:机械工业出版社《中台战略:中台建设与数字商业》 2019年9月出版

原文链接:https://mp.weixin.qq.com/s/yArlYBvIuZaEKJwm_Y5Z_g

Image placeholder
lzk254
未设置
  18人点赞

没有讨论,发表一下自己的看法吧

推荐文章
SACC2019:爱奇艺的大数据中台战略(附演讲实录)

  孙斌爱奇艺高级总监主要负责爱奇艺的大数据中台、商业智能、内容智能制作等业务。在互联网产品设计和研发方面有十多年经验,曾就职于微软、hulu、雅虎等公司。摘要:爱奇艺的业务已经从单一的视频业务发展为

数据科学在市场营销领域的8个最佳用例

在这篇文章中,我们将介绍一些数据科学在营销领域的关键用例。就数据科学的关键目标是将数据转化为可操作的洞察而言,为了获得更高的盈利,营销领域不能忽略这些洞察的应用。大数据技术,为在营销中更好地了解目标受

Apache 的架构师们遵循的 30 条设计原则

本文作者叫Srinath,是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员。 他是ApacheAxis2项目的联合创始人,也是ApacheSoftware基金会的成员。 他是WSO2流处理

阿里巴巴架构师:十问业务中台和我的答案

Photo@  ZachLucero文 |王思轩一切业务数据化,一切数据业务化。“中台”概念这几年非常火,特别是阿里、腾讯、百度、京东等互联网公司最近频繁的基于中台调整组织架构,把“中台”的热度又上升

支付中台的几个面向:支付业务、资金核算、面向风控等切面

手哥架构宝典之支付系统1.0发布后,很多架构师朋友表示受益匪浅,询问支付系统2.0版本什么时候放出来,今天刊发出《架构宝典》支付系统2.0版本,以飨读者。00 概述在1.0的支付系统中,我们遇到了诸多

中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作

中信银行信用卡业务数据库实现国产替换10月31日,由IT168旗下ChinaUnix社区主办的第十一届中国系统架构师大会(SACC2019)在北京召开。会上,中信银行软件开发中心/技术平台开发处副处长

深入浅出 Viewport 设计原理

Viewport是HTML5针对移动端开发新增的一个meta属性,它的作用是为同一网页在不同设备的呈现,提供响应式解决方案。这篇文章尝试通过循序渐进的方式,逐层探索Viewport的设计原理,希望能给

中台的末路

从15年开始,到19年现在为止。各大公司都在吹捧中台理念。仿佛中台是业务复杂性的救世主。是某些架构师和PM的新出路。各种割韭菜的讲中台的课程层出不穷。 当然,吹牛逼的时候大家都是拣好的说,苦逼的东西就

被前端业务倒逼出来的中台?

数字化智能时代,数据成为了新的生产资料,也是蕴含丰富价值的矿藏。随之而来的打破数据孤岛、拆掉部门墙的声音越来越高。2019年中台热席卷圈内,企业、投资者、媒体众说纷纭,百度搜索指数也是应声而涨。有人认

云服务已占企业网络流量的85%

来自云安全公司Netskope的一份报告显示,云服务目前已占企业网络流量的85%。云服务落地加快,主要由跨组织的协作驱动,需要多个云服务来支撑。在前20个云服务中,云存储和协作应用占据了榜单首位,一些

细数SAP环境中的8大安全错误

现代SAP足迹的复杂性和常见的安全故障使许多组织暴露在可避免的风险中。配置错误和其他错误(其中许多是多年来众所周知的)不断破坏企业SAP环境的安全性。SAP足迹的迅速复杂性增长是造成这种情况的一个重要

有了这8个Chrome扩展工具,Web开发事半功倍!

Chrome浏览器扩展程序,无论对开发人员还是设计人员来说,都是非常有用的,有些扩展程序会对开发工具的某类功能进行增强,也有一些会复制开发工具中的部分特性。从某种意义上来说,Chrome商店中的每个扩

18个图片视频音频素材网站

课程推荐:前端开发工程师--学习猿地精品课程 18个素材网站一图片1pixabay:https://pixabay.com/zh/2Unsplash:https://unsplash.com/3Pex

老焦专栏 | 用 RACI 模式梳理业务流程,提高业务发布的效率

转载本文需注明出处:微信公众号EAWorld,违者必究。最近经常在不同场合说,技术发展已经进入深水区。IT技术发展已经越来越成熟了,尤其在金融行业,以前是解决从无到有的问题,现在该有的系统都有了,是解

S.O.L.I.D: PHP 面向对象设计的五个基准原则

S.O.L.I.D是首个5个面向对象设计(OOD)准则的首字母缩写,这些准则是由RobertC.Martin提出的,他更为人所熟知的名字是UncleBob。 这些准则使得开发出易扩展、可维护的软件变

MongoDB与阿里云达成战略合作,云将是数据库最佳载体

摘要:开源数据库厂商与云服务供应商两大阵营之间存在争议是事实,MongoDB与阿里云达成战略合作,背后意味着什么?对MongoDB,对阿里云分别意味着什么?对整个数据库产业又意味着什么?MongoDB

Gartner:2020年十大战略技术趋势

技术变革的步伐正在迅速加快,IT专业人员需要研究的因素,他们以前从未处理过的事情(例如超级自动化、多重体验和人员扩充)都将对企业产生重大的影响。Gartner高级研究副总裁ValSribar说:“自从

媒体开放日,探秘百分点认知智能战略!

2009年7月1日,数据智能技术公司百分点正式成立,今年正好是第10个年头。百分点公司新址10年间,百分点经过多次转型,逐步形成了目前的企业级(ToB)、政府级(ToG)和SaaS服务三大业务体系,服

软件定义IT基础架构,如何看待深信服的产品战略布局?

在很多人的潜意识里,深信服是一家令人尊敬的企业,技术支撑能力强,产品种类多,功能全面,后劲足,是少数能和华为、新华三同台竞技的企业之一。但有时候,深信服也会被这些优势所累,比如经常会被问道:你们和华为

如何理解腾讯云数据库战略升级?

近日,腾讯云数据库在京正式启动战略升级,宣布未来将聚焦云原生、自治、超融合三大战略方向,以用户为中心,联接未来。并在现场面向全球用户同步发布五大战略级新品,包括数据库智能管家DBbrain、云数据库T

华为云存储All-Flash战略打造全新智能数据底座

华为全球产业展望报告显示,全球年数据增量将从2018年的32.5ZB快速增长到2025年的180ZB,但目前企业数据利用率只有10%,数据价值没有得到充分释放。面对海量数据爆炸式的增长和发掘数据内在价

Laravel 事务中 使用 悲观锁 小结

laravel提供了方便快捷的数据库事务使用方式,在使用中遇到过几个容易混淆和被误导的地方,这里做个记录,希望哪里写的不对的地方各位大神指点一下laravel事务分为手动方式和自动方式,但如果我们在使

干货 | 揭秘京东数科强一致、高性能的分布式事务中间件JDTX

导读:在分布式数据库、云原生数据库、NewSQL等名词在数据库领域层出不穷的当今,变革——在这个相对稳定的领域已愈加不可避免。相比于完全革新,渐进式增强的方案在拥有厚重沉淀的行业则更受青睐。同所有分布

施密特:谷歌的五大原则

大数据文摘出品作者:施密特在2013年的《致股东的公开信》中,谷歌创始人拉里·佩奇表示:“随着时间的推移,很多公司都习惯重复自己一贯的做法,只做出很少的渐进式的改变。假以时日,这样的渐进主义会导致落伍

敏捷开发流程之Scrum:3个角色、5个会议、12原则

本文主要从Scrum的定义和目的、敏捷宣言、Scrum中的人员角色、Scrum开发流程、敏捷的12原则等几方面帮助大家理解Scrum敏捷开发的全过程。一、Scrum的定义和目的Scrum是一个用于开发