最近处处惹人爱的中台到底是什么

  在当下互联网圈子里要问什么最火莫过于中台这一概念了,各大公司都开始了一轮跑马圈地似的中台建设,那么到底中台是什么呢?本文我们就来谈谈这个话题。


a7ec60c20769b0e3115e7c6889beddaf.jpg


  一、什么是前台,后台

  在以往的互联网企业生产流程中,我们可以将研发团队宏观的划分为前台与后台两部分。

  所谓前台就是用户直接接触到的产品部分,如可在应用商店下载的APP,像微信、抖音、淘宝,或者可以使用的网站等。

  用户对产品的认知与体验也由此而生。比如大家对于微信的理解就是这个前台APP展示的一切给大家描绘的:一个绿色图标的应用,里面有我的A、B、C好友。

  而后台包含两个部分:

  企业的内部管理服务的统称,如:内部的CRM,ERP等;

  为前台提供服务能力的,如:数据压缩能力,并发等。

  后台最重要的特点就是其提供的服务都是不被普通用户所感知的,就像用户不会因为应用的并发,传输速度而记住微信这个品牌。

  在搞清楚了前台与后台的概念后,前后台模式的产品服务模式我们就可以用一张图来概括描述:


5f04ae8ea3f15479343d72802d42381c.jpg

  图1

  总的来说就是在应用中后台提供能力与计算,前台将后台的能力进行封装以图形化的形式展示给用户,让用户能更容易的使用公司提供的服务来解决个人需求。

  二、中台的白话解释

  在开始谈论中台之前,我们先要明白:当下的主流前后台模式并不是在业务实现上出现了问题,不支持眼下出现的种种新业务场景;相反地,这种前后台反而是公司最省事省力的一种提供服务的解决方案。因为这种模式不需要提供额外的建设,前台完成信息展示与交互,后台做好对应需求的解决逻辑就组成了一个产品。

  实际上,中台的出现更多是因为公司业务在发展到某一阶段时,在拥有多个业务线时继续发展遇到瓶颈与障碍后,为了解决如何继续朝下走的实际问题而提出的一个组织前台业与后台关系新解决方案的统称,而不是某个新的系统。

  在互联网进入日益复杂的市场环境的今天,市场中由于存在众多的竞争者,也逼迫着企业需要不断去更新产品去抢夺市场。

  而作为实际用户真正接触的前台业务,如:APP、小程序、网站等,必须要快速迭代新的功能才能让用户感知到。

  而在这个大背景下带来的矛盾就是——以往为了支撑前台越来越多的业务,后台不断地建设庞大起来的系统,由于一直在追求稳定性而生,反而在这个时候显得越发笨重起来。这样的后台变得越来越没法去快速响应前端变化所带来的改变。原来的前后台模式的这种直接关联决定了两者的冲突不可避免。

  例如:传统我们的一个电商网站,由于用户前端需要组织各种新的销售方式(拼团,一元购等),导致每次活动页面开发的时候,不仅需要前端重新设计页面,从后台接口提供与数据表都要重新设计。

  这无疑大大拉长了我们的需求响应时间,很有可能会导致在活动模块还没开发完成,我们的风口就已经过去了。因此我们需要一个能最少改动就能完成大部分需求的解决方案,这就是中台。

  中台解决方案到底是什么呢?让我们举个通俗的例子来说,如果将互联网公司的研发中心比作一个厨房,将研发新产品的过程比做菜的话,我们就可以很容易理解这个概念了。

  首先请大家想一个问题,在一家客流量非常大的餐厅中我们要如何缩短客人的等待时间呢?

  相信很多人的第一想法就是增加多名厨师,但时大多数的餐厅单纯的增加厨师这是不实际的,因为每增加一个厨师是有很高成本的,而且每天忙的就是中午和晚上这两个时间点,虽然在饭点解决了问题,但是在一天中其他的时间里,厨师人员就显得非常冗余了。

  而正确的做法是先将做菜这个任务拆分,让做菜这一件事变为多个环节来思考。也就是将做菜变为:


010d7ae36b345d2c43e844312221e35d.jpg
  图2

  通过这样的拆分后我们可以发现无论是做什么菜系,买菜与配菜都是共有的两个步骤,我们完全可以只需要增加一位配菜的小哥来代替厨师去进行前两步,这也就是现在大多数上规模餐厅的组织架构:


ffbacd64b5bc519f57578b1e09898063.jpg
  图3

  这样我们每一位厨师新做一道菜时没有必要一定要从买菜,洗菜,切肉这些最基础的环节开始,而是完全可以直接使用他人切好的肉片,洗好的菜下锅,唯一需要关心的就是如何在搭配调料上研究不同的创意。完全可以大大提高厨师的做菜速度,同时在成本上我们只增加了一个人就解决了所有问题。

  回到研发流程来看,买菜其实就是我们研发的后台,他们帮助我们解决最基础原料问题。厨师是我们的一个个业务前台团队,他们要做的就是根据不同地区口味烹饪出对应的菜系,而在业务多元化后洗菜,切菜,配菜都可以交给中台解决方案去完成,做菜的时候作为大厨只需要喊一句要什么材料既可,当然这里的配菜小哥就是我们的中台。

  所以说有了中台之后我们的前台业务就可以快速尝试迭代,不需要每件事都是从0到1开始了。

  让我们再站在架构的层面来看看中台对整个系统业务所起到的作用。

  假设我们是一个电商平台在我们未使用中台的时候,每一个前台的用户终端都需要与后台进行一次对接,就像下图:


4b125df748366894a0334dfd689f2e0b.jpg
图4

  而后台的每一个模块都需要维持与前台业务的关联,并根据不同业务前台的特征加入适配。这样造成的结果:

  后台的每一个模块都需要加入与前台适配的部分,从而大大加大了开发量;

  每个前端在启动时需要分别对接不同的后台模块,也加大前台启动时的工作量;

  当后台进行升级或架构调整时还需要考虑与前台的对接,并进行逐一的调整。

  当我们引入中台后,让中台作为一个对接层,帮我们去统一对接前台的不同终端,同时对后台各个子系统进行统一的封装,让前台能无感知的使用各项服务而不需要单独设计通道,我们的系统也就简化成了这个样子:


7f322167d3dc8fc98b74de057115184f.jpg
  图5

  通过对比我们能清楚的看到中台对于公司的整个业务架构起到了非常大的简化作用。

  用一句话来概括就是:中台的核心本质就是服务共享,目标是支持前台的快速创新或试错,而实现的手段是微服务架构、敏捷基础设施和公共基础服务。

  三、中台解决方案

  那么到这我们可以给中台解决方案下一个定义:

  中台解决方案的组成 = 能力输出 + 标准化中间件

  让我们来一个个解释:

  第一部分:能力输出

  所谓能力输出就是要规划出什么是公司的核心竞争力,理清楚公司发展的战略与目标与未来公司里的主要业务会涉及到哪些方面。并在这些业务层面中去提炼哪些模块是以共性存在的,并会在每个新开拓的业务中不断使用,然后就把他归类到中台进行建设。这也就是中台的一个重要的意义:为不同的前台业务提供可以重复使用的能力,形成一次建设多次使用。

  例如我们规划了公司的核心方向是视频方向,未来可能会涉及的业务形态有:

  在线视频

  视频直播

  短视频

  ……

  分析上面的业务方向我们不难判断出最基础要抽取的模块可以划分为:

  在线视频编辑

  视频压缩

  多人点播

  ……

  完成拆分后我们就可以通过中台去实现这几个通用模块。

  值得提一下的是虽然这里在说中台要考虑复用性、扩展性,但是要考虑多少,考虑多深这里又是一个非常考验产品功力的地方。

  还是举上面的例子来说我在设计一个视频社区APP的积分商城系统时,需要将商城交易方式抽象为能力时,我们大体上抽象为三种交易方式。

  但是同样的疑问来了,我们仅仅为了支持一个积分商城需要将中台的复用与扩展放大要考虑引入股票交易才使用到的撮合交易模式吗?

  当然这里的案例比较极端我们能快速判断,但是在具体的中台规划中我们会碰到很多这种类似的范围决策,我们必须要按照公司的核心业务规划来严格定义中台的能力,避免在中台出现过度建设的现象。

  第二部分:标准化中间件(整合能力,并封装头尾)

  在我们确定了公司的业务发展需要哪些能力之后,中台解决方案的另一个组成部分就是需要做一个将每个能力进行封装,形成一个统一的可供前台业务端方便使用的中间件。

  这里的统一具体表现在如下的几个方面:

  不同终端中的叫法与含义;

  定义统一化的输入输出;

  为什么要统一呢?

  以往的前后台模式中同一家公司内的不同业务如:直播项目组、短视频项目组各自为战的时候,经常会出现一个事物被不同项目因为场景化的需求,而出现两个称呼的现象,但是实际上他们本质上是同一个事物。这也是原来不同项目组想要进行复用前人的模块时一个天然的巨大障碍——无法快速对接。

  例如:就那一个用户昵称这个字段来看,在不同项目组中的应用中可能会叫:用户名称、用户昵称、称号、花名等等,而在数据库中又可能会有不同的字段名称:username、UN、name等等。

  因此我们需要一个中心化的产物帮助我们定义好这些个通用属性,使在公司中不同的业务端都能统一。

  面对这种现象,在有了中台后,我们就可以通过定义标准化的中间件来解决。以后假设公司内部孵化的项目组再次要使用用户昵称这个字段的时候,无论具体是什么业务前端都会是一个叫法、一种存储,这样不仅能直接使用之前项目的模块,同时还可以和公司内部的管理系统如CRM/BI等快速完成对接。

  四、最后

  在竞争日趋激烈的互联网行业中,如何低成本又快速地完成业务创新去占领市场是每个企业所追求的方向,而中台解决方案的出现给我们当下的互联网企业带来了一个全新的发展思路。