外行都能看懂,漫画解读“中台”

开发 架构 开发工具 中台
在传统 IT 企业,项目的物理结构是什么样的呢?无论项目内部如何复杂,都可分为“前台”和“后台”这两部分。

在传统 IT 企业,项目的物理结构是什么样的呢?无论项目内部如何复杂,都可分为“前台”和“后台”这两部分。

[[278313]]

图片来自 Pexels

没有中台的时代

在传统 IT 企业,项目的物理结构是什么样的呢?无论项目内部如何复杂,都可分为“前台”和“后台”这两部分。

什么是前台?

首先,这里所说的“前台”和“前端”并不是一回事。所谓前台即包括各种和用户直接交互的界面,比如 Web 页面,手机 App;也包括服务端各种实时响应用户请求的业务逻辑,比如商品查询、订单系统等等。

什么是后台?

后台并不直接面向用户,而是面向运营人员的配置管理系统,比如商品管理、物流管理、结算管理。后台为前台提供了一些简单的配置。

前台、后台、用户之间的关系,可以用下图简单表示:

在当时,项目的发展相对稳定,并不需要那么快速的去迭代和试错,所以这种结构并没有什么问题。

在互联网快速发展的今天,企业之间的竞争越来越激烈。只有以用户为中心,快速响应用户的需求,不断迭代和试错,才能让企业在竞争当中立于不败。

但是,现实情况下......

在传统的前台-后台架构中,各个项目相对独立,许多项目都在重复发明同样的轮子,即让项目本身越来越臃肿,也让开发效率越来越低。

这种时候,为提高开发效率,我们有必要整合出一个中间组织,为所有的项目提供一些公共资源。而这个中间组织,就是人们所说的“中台”。

中台的领跑者

SuperCell 是一家芬兰的手机游戏公司,这个名字或许有些陌生,但是说起下面几款游戏,大家一定会很熟悉:

部落冲突


海岛奇兵


皇室战争

SuperCell 公司就像是一个高产的游戏孵化器,在几年内开发出了 10 款以上的游戏,但是大部分用于试错的游戏都在研发过程中被腰斩了,最终呈献给用户的几款游戏都是经典中的经典。

是什么让 SuperCell 公司能够如此高效地试错和迭代呢?他们依靠的是强大的平台资源,支撑起各个游戏开发的小团队。

他们开发出的游戏看上去风格迥异,却存在许多共同之处。在业务上,共通的东西包括支付系统、用户系统等等,在技术上,共同的东西包括游戏引擎,内部开发工具等等。

而这些共通的资源,都可以由一个强大的“中台”来提供:

中台的架构思想改变的不只是项目结构,也影响了研发团队的组织形式。SuperCell 公司把这种高效的组织形式称为“部落”。

紧随其后,国内互联网公司也纷纷开始了各自的中台战略。

阿里巴巴提出了“大中台,小前台”的战略:

图中,阿里巴巴许多产品线的共通业务经过下沉,形成了中台的各种业务中心,而 Aliware 则是阿里巴巴的技术中间件平台,为各大业务线提供技术支持。

华为提出了“平台炮火支撑精兵作战”的战略:

华为把作战小分队比喻为前台项目团队,把中台比喻成战地指挥部。在这个比喻当中,中台的作用就是提供资源支持:要数据给数据、要技术给技术。

中台的具体划分

业务中台

业务中台在前文中反复提及,就是把各个项目的共通业务进行下沉,整合成通用的服务平台:

技术中台

技术平台,为了避免研发人员重复发明轮子,向各个项目提供通用的底层框架、引擎、中间件:

数据中台

数据中台,为各个项目进行各种数据采集和分析:

算法中台

算法中台,为各个项目提供算法能力,比如推荐算法、搜索算法、图像识别、语音识别等等:

中台的适用场景

①从 0 到 1 的阶段,没有必要搭建中台

从 0 到 1 的创业型公司,首要目的是生存下去,以最快的速度打造出产品,证明自身的市场价值。

这个时候,让项目野蛮生长才是最好的选择。如果不慌不忙地先去搭建中台,恐怕中台还没搭建好,公司早就饿死了。

②从 1 到 N 的阶段,适合搭建中台

当企业有了一定规模,产品得到了市场的认可,这时候公司的首要目的不再是活下去,而是活的更好。

这个时候,趁着项目复杂度还不是特别高,可以考虑把各项目的通用部分下沉,组建中台,以方便后续新项目的尝试和旧项目的迭代。

③从 N 到 N+1 的阶段,搭建中台势在必行

当企业已经有了很大的规模,各种产品、服务、部门错综复杂,这时候做架构调整会比较痛苦。

但是长痛不如短痛,为了项目的长期发展,还是需要尽早调整架构,实现平台化,以免日后越来越难以维护。

 

责任编辑:武晓燕 来源: 程序员小灰
相关推荐

2018-11-21 15:40:08

HTTP协议前端

2019-12-27 09:47:05

大数据TomcatWeb

2022-07-04 08:31:42

GitOpsGit基础设施

2020-03-31 10:36:07

数据平台架构

2020-12-01 09:03:22

分库分表MySQL

2020-01-21 10:16:15

Kubernetes教程容器

2018-11-21 09:40:57

熔断实践AOP

2017-11-02 12:08:56

2020-09-28 14:25:39

HTTPS加密算法

2021-09-27 13:50:13

Python装饰器函数

2020-06-22 08:07:48

Spring依赖场景

2019-09-05 11:14:12

监控系统拓扑图

2019-01-22 09:37:47

红黑树数据二叉树

2023-01-26 00:22:01

分布式架构大文件

2021-09-01 10:13:07

数据库面试节点

2020-09-08 06:30:59

微服务代码模块

2018-11-19 08:34:22

Hadoop架构HDFS

2017-02-22 15:04:52

2018-12-24 08:46:52

Kubernetes对象模型

2019-10-30 13:30:29

Python区块链编程语言
点赞
收藏

51CTO技术栈公众号