最近有童鞋在我之前发布的《聊聊中台》一文中提问:技术中台是什么?和业务中台又有什么区别?考虑到在工作中,也有部分同事问过这个问题,我这里总结一下形成此文进行答复。
1、复习:什么是中台
这里引用王健老师在专栏《说透中台》中给中台下的定义:“企业级能力复用平台”。
所谓企业级,主要是指中台处理的问题范围在企业级别,即包含多条业务线或服务多个前台产品(团队),且建设中台一定要跳出单条业务线、站在企业整体视角来审视业务全景。
所谓能力,主要是指中台主要承载的对象,每家企业的核心能力都不同,要找到差异化竞争力。
所谓复用,即中台的核心价值,它的可复用及易复用的特性能够实现更多地对前台业务的支撑。
所谓平台,即中台的主要形式,它通过对于更细粒度能力的识别与平台化沉淀,实现企业能力的柔性复用。
在之前我的《聊聊中台》一文中,重点强调和介绍了业务中台,这是大部分谈论中台的人谈到的中台类型,因为不论什么中台,最终都是为业务服务,赋能前台,提高企业的用户响应力的。
中台的兴起,主要源于BATJ等大厂的推动,他们在2015年兴起的中台战略开始推动了企业组织结构的调整和变革,建立了所谓的“共享服务中心体系”来应对新业务扩展带来的成本,从而实现基础能力的复用,不再进行重复建设和投资。这种以确定性面对不确定性的做法,一经大厂宣传,各家传统行业的企业就纷纷上船,貌似各家都有建设中台的需求。我对这种跟潮流的做法,表示中立态度,拥抱不一定就正确,但是漠视可能会落伍。冷眼旁观,热心研究,未尝不可。
一个常见的电商业务中台示例图
2、技术中台又讲了什么
虽然我比较认可网易云的观点“所有的中台都是业务中台”,而其他的中台其实都是一种广义上的业务中台,被称之为中台,就需要具备一定的业务属性,最终都要为业务服务。但还有众多的其他中台被搬上了舞台,其中作为开发人员的视角,最关心的可能就是技术中台了。那么,什么是技术中台?这里我们通过下面这张图,来看看阿里是如何定义技术中台的。
阿里中台体系示意图
通过上图,我们也可以看到阿里的技术中台主要由两部分组成:
(1)IaaS层:基础设施层,主要指计算、存储、网络等基础设施资源,他们通常由服务器、机房及数据中心组成,主要由Ops运维人员进行管理。对于我们中小企业来说,这部分几乎都是交给了云服务商,比如我司使用的阿里云ECS虚拟机等。
(2)PaaS层:平台服务层,主要指中间件技术、大数据和研发平台等,例如Job任务中心组件、统一日志组件、事件总线组件等等。对于我们中小企业来说,这部分可以选择自建,即通过一系列的开源项目组件如EFK、CAP、Hangfire、Hadoop等来搭建供所有的微服务共用,也可以选择直接使用云服务商提供的PaaS级服务来微服务提供基础能力从而可以让我们专注于业务逻辑,比如阿里云的日志服务、MaxCompute大数据服务等。
这就是阿里的技术中台,它强调基础设施和中间件的抽象整合,为业务中台服务(一般以微服务形式展现)提供通用基础能力的支撑,让业务中台服务能够专注于自己的业务领域逻辑开发,减少对于通用基础能力的耗时。类似的,还可以看看eBay和拍拍贷的中台架构示意图,技术中台都扮演着同样的角色。(均来自于波波老师的《Spring Boot与K8s云原生应用开发》课程PPT)
eBay中台体系示意图
拍拍贷中台体系示意图
3、我司的业务中台与技术中台
分享一个我司目前的总体技术体系图,这是我在2018年底的时候画的:
我司的总体技术体系示意图
其中,基础服务层就可以理解为是我司的业务中台,他们是用ASP.NET Core开发的微服务来提供基础的业务能力服务,比如用户中心、商品中心、订单中心等等。而支撑组件层就可以理解为是一个技术中台,他们使用各种开源组件搭建的通用中间件集合,为上层所有的微服务API提供通用能力,从而不用过分关注类似日志、Job、监控等通用能力的开发。
最后,你可能会问,为什么要在基础服务层(即业务中台)和API网关之间还要加一层应用服务层(我一般称之为BFF)?这个问题,就留在下一期骚年快答给你回复吧。