谈业务中台模块识别(12.03)

标签: 微服务架构 | 发表时间:2019-12-03 10:08 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
注:图片来源于阿里云栖大会相关材料

再谈业务中台前,首先看下对于中台原来我们一般说法就是包括了业务中台和数据中台,而现在另外一种说法是包括了业务中台,数据中台,技术中台和AI中台。而实际上 对于技术中台不建议划分到中台里面,可以划分到底层的技术支撑平台,属于技术PaaS平台的一部分。而对于AI中台单独划分出来本身也没有必要,AI中台可以划分到数据中台的大范畴里面。

就拿企业来说,中台的构建本身包括了业务中台和数据中台,按道理应该是先考虑业务中台如何构建,再基于构建好的业务中台来构建数据中台。但是也有企业由于遗留系统很多,并没有参考理想的方法去构建完整的业务中台,而是直接去构建数据中台。数据中台安装全新的方法去构建,替代传统的ODS加数据仓库的构建方法。

对于数据中台的构建,我们后面再展开分析,今天还是想再谈下业务中台的构建。

先看下传统的业务系统规划和构建思路,我们讲过更多的是业务和流程驱动型构建模式。简单来说就是,我们先分析清楚在业务上有哪些流程需要支撑,哪些业务需求需要支撑,然后基于流程逐层分解的方法来分析整个业务架构,基于业务架构再来分析数据架构,最后结合业务+数据架构来分析需要规划建设哪些业务系统或子系统。最后才会去考虑数据如何落地到数据库,应该有哪些数据对象和建立哪些数据库表。

以数据驱动先行的思路来考虑中台模块的识别

而对于业务中台的构建思路,我们这里给出一种新的构建思路,即数据驱动型的构建思路,对于切入你还是可以从端到端流程切入,但是只需要初步分析顶层业务流程即可,不需要进行详细的业务流程分析和分解,并规划业务架构。而是先进行数据架构规划和数据域划分。

即流程并不需要分析的太细,你实际上已经能够完全了解企业核心基础主数据和核心共享数据。这个时候你已经可以梳理出比较粗的数据架构模型。找到核心的业务对象(基础主数据和核心共享数据)。

同时我们也初步定义了数据域和数据边界。那么这个数据域和边界的划分是否合理?

这又得回到我们前面分析的端到端流程,即还是需要根据端到端的业务流程来进一步试算和演练我们的数据域划分是否合理,即在端到端流程协同的时候是否会出现底层数据域之间的频繁交互和协同,如果存在多个数据对象间频繁交互,那么这些数据对象往往不能进行拆分,否则就可以拆分。

同时我们看到以核心基础数据和共享数据为主体进行数据分域,分域后形成的各个数据域本身之间满足松耦合的要求,那么这些分离出来的数据域就是独立的中台各个业务能力提供中心。类似我们常说的订单中心,合同中心,项目中心,产品中心,用户中心,供应商中心,物料中心,客户中心等。

在这个过程中你会发现供应商和物料之间的耦合性很强,那供应商+物料可以规划在中台的一个中心,一个微服微模块里面来实现。类似框架协议和采购订单,也需要放在一个中台中心一个道理。

以对外流程协同,对内数据能力提供两条线来考虑中台模块接口服务识别

如果中台模块已经识别出来,那么接着就需要去思考每个中台模块究竟需要提供哪些接口服务能力。而这种接口服务的识别,我们考虑两条线相互结合的方式进行。

其一,是根据中台模块的核心数据对象来思考应该包括哪些数据接口服务能力,你可以理解为你先不用去思考需要支撑上层哪些业务功能和流程,就是将你已经识别的基础主数据对象和核心共享数据的CRUD能力暴露出现。但是这个暴露本身和简单额暴露数据库表有差异,这里暴露的应该是核心领域对象和数据对象,这个对象可能是底层多张数据库表。

即将底层数据库表,以领域对象模型聚合后的思路将API接口暴露出去。同时我们还需要初步分析哪些能力是不需要对外开放的。比如一些数据对象只需要朝外暴露查询能力接口即可,而有些业务对象则需要暴露CRUD的所有能力,这个也需要分析清楚。

其二,仍然是结合端到端交互流程,或者你也可以是理解为前台需要实现的业务场景和流程,来分析究竟中台模块需要提供哪些能力,要知道通过第一点往往并不能识别出来所有的中台模块应该提供的API接口服务,特别是一些涉及到业务规则和逻辑的接口服务能力,因此在这里还需要继续识别还需要哪些接口服务,这些接口应该确保粗粒度和可重用。

简单的类似业务对象状态便跟的一个接口服务能力,在第一种方式下我们往往并不会单独将其识别出来定义为一个独立的API接口服务,但是基于业务场景分析后发现有这个需求,那么就需要单独定义接口。

所有中台的构建目的都是为了更好的为前台业务功能实现服务,因此结合前台的业务场景和功能需求来进一步识别需要暴露的接口服务能力是必须的。即我们要意识到前台的构建更多的都是组装中台层各个微服务模块暴露的API接口服务能力,而不是自己去实现这个能力,前台可能有自己独立的数据库,但是这个数据库本身也很轻,只会存储一些临时的或局部使用的数据信息。

 

相关 [业务 中台 模块] 推荐:

谈业务中台模块识别(12.03)

- - 人月神话的BLOG
注:图片来源于阿里云栖大会相关材料. 再谈业务中台前,首先看下对于中台原来我们一般说法就是包括了业务中台和数据中台,而现在另外一种说法是包括了业务中台,数据中台,技术中台和AI中台. 而实际上 对于技术中台不建议划分到中台里面,可以划分到底层的技术支撑平台,属于技术PaaS平台的一部分. 而对于AI中台单独划分出来本身也没有必要,AI中台可以划分到数据中台的大范畴里面.

谈业务中台构建场景(12.04)

- - 人月神话的BLOG
注:图片来源阿里云栖大会材料. 最近我谈企业中台的文章比较多,主要原因还是我们看到企业对于中台构建的需求越来越多,这里面有些企业是想参考互联网企业的最佳实践,觉得是业务和技术发展趋势,但是中台建设究竟提供哪些业务价值并不清楚,还有一些企业是确实明白了一点,就是我原来提到过的中台是企业核心共性业务能力下沉,是属于企业业务资产和核心竞争力.

微服务架构-数据中台和业务中台(3.27)

- - 人月神话的BLOG
首先我们看下阿里巴巴Aliware团队对企业中台的定义. 即企业中台是由业务中台和数据中台构建起数据闭环的运营体系,实现以数字化资产的形态构建企业核心差异化竞争力. 在原来我谈企业中台的时候,很少专门谈到数据中台和业务中台,更多谈的是技术中台和业务中台,技术中台类似我们原来说的技术平台层和业务不相关.

Nginx模块开发入门

- ripwu - 博客园-EricZhang's Technology Blog
Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%. 与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.

nginx防hashdos模块释出

- - 五四陈科学院-坚信科学,分享技术
以下内容由 [五四陈科学院]提供. hashdos这个事,严格意义上不是各种语言的错了(不过perl的确处理得很好),但是用nginx来擦屁股要干净些. 借鉴tomcat的作法,实现了下面这个nginx-http-hashdos-module,通过设置hashdos(默认on)的开关和body_max_count(默认值1000),对nginx后面的服务进行安全防护,相比对php或者java进行patch,这或许是最好的办法了.

追加安装sticky模块

- - 开源软件 - ITeye博客
下载地址: http://code.google.com/p/nginx-sticky-module/downloads/list. 进入nginx-1.9.3目录. /ngx_http_sticky_module.c:333: 警告:赋值时将整数赋给指针,未作类型转换. ake[1]: *** [objs/addon/nginx-sticky-module-1.1/ngx_http_sticky_module.o] 错误 1.

开发一个Nginx模块

- - 互联网 - ITeye博客
用C语言写一个ngx_http_hello_module.c的文件. ngx_null_command }; // 不设置在HTTP初始化完成的,则不需要设置回调函数 static ngx_http_module_t ngx_http_hello_module_ctx = {. NULL }; // 定义http的hello模块 ngx_module_t ngx_http_hello_module = {.

jQuery 模块介绍与 jQuery 插件的深度模块化

- zhibin - 岁月如歌
大名鼎鼎的 jQuery 就不多介绍了,详细介绍推荐官网:jquery.com. 阮一峰最近整理的文章也不错,推荐:jQuery 设计思想, jQuery 最佳实践. jQuery 是 DOM 操作类库,其核心功能是找到 DOM 元素并对其进行操作. 拿 jQuery 与 YUI, Dojo 等框架相比是不公平的,就如拿轮胎和汽车相比一样.

Javascript模块化编程(一):模块的写法

- - 阮一峰的网络日志
随着网站逐渐变成" 互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. 网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑. Javascript模块化编程,已经成为一个迫切的需求. 理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块.