系统架构:通俗易懂教你理解中台

架构,简单来理解,就是架设产品的结构。

架构,离不开4个关键字:效率、适用性、稳定性、可扩展性。

  1. 效率:好的架构提升迭代效率;

  2. 适用性:好的架构可以在小修小补之下适用各个业务需求;

  3. 稳定性:系统是高可用的;

  4. 可扩展性:无需改动底层;

B 端产品需要解决企业不断发展过程中遇到的各种问题,所以随着新的商业环境、新的业态、新的模式,必然伴随着催生出新的需求。

每家企业发展的方向不同、策略不同、组织不同,都会导致需求有很多变种,在这种情况下,如何能够通过一款产品满足各种数以万计的企业,就变得异常有挑战性。

没有一个好的产品架构,是无法做到这件事的。

产品架构不好,带来的很多问题,这里不再赘述,主要包括:一碰到新需求就要改底层;改动牵一发而动全身;一碰到新需求就要大改。

我们往往会看到那种结构图,分层分区块,不同层做不同的事,不同块承担不同的角色和职能。

我们要明白所有的架构,最终都为了提效,没能提效的都不是好的架构。

01 产品架构思维

这里引入 2 个思维:

阶段一:线性化思维

就是说比如一个用户进入一个电商网站,他找到一个商品,然后下单,支付,然后商家发货,用户确认收货,交易完成。

如果我们把这些环节都做到一个线性流里,是不是发现这个产品是单层的,所有功能都有序的杂糅其中。

这样一个产品、一套代码,一旦涉及其中一个环节的改动,就会动整个产品、整套代码。

所以开始有了模块的拆分,以及前后端分离。

模块的拆分,能够很好的划分边界,即把相同目标的一些场景功能集成在一起,把不同定位的场景功能排除在外。

那么后面假如只针对A模块进行业务迭代,毫无疑问降低了对整个产品的影响,且更加容易和高效。

模块作为业务层横向的拆分,将线性化的产品变成了离散型。

毫无疑问,线性一定比离散型更快,更高效,但是随着业务的诉求日益增长,任何的快都要建立在满足需求的前提下,否则效率无从谈起。

阶段二:模块化思维

模块化到底是怎么做的呢?

举个例子,从产品角度通俗易懂的讲,比如商品,那么商品中所有的底层数据、商品相关的各种能力(比如创建商品、商品类目管理、商品上下架管理等等)都会被囊括在商品模块(中心)中。模块对外就是提供各种商品相关的接口能力。

模块化还有个好处,就是降低了产品开发的边际成本,同样的商品创建,按照线性开发我肯定还要再做一遍;但是如果集成到一个模块中,我只需要让商品模块可以支撑起他业务的商品创建,做一些轻度扩展,即可满足。

模块化按照颗粒度还可以进行拆分,比如商品模块里面,还可以拆分商品基础信息模块、商品销售信息模块、商品活动信息模块等等。

这些都视业务发展的诉求而定,比如需要针对不同类型的活动,制定不同的商品信息策略,而且这类的业务需求又多又高频,那么是有必要抽出这个模块进行单独迭代的。

模块化有一点比较负责的就是定边界,哪些该放在业务侧,哪些该放在模块服务侧。

我的原则是:高度关联且具备一定通用性的放在模块服务侧,低关联且个性化的功能放在业务开发侧。

02 什么时候需要建立中台

上面讲的是单个业务线的模块化,但是随着企业发展,多条业务线并行其实是很正常的,这个时候,每个业务线都需要用到商品,比如一家公司既要发展电商业务,也要发展农产品业务,都会涉及到商品能力的搭建。

理论上来说,如果能用一套商品模块支持 2 个业务线的商品需求,是不是能让降低至少一半的开发成本?

那么问题来了,假如用一套商品模块来支持2个业务的商品需求,会带来什么样的问题呢?

比如电商商品是按照「件」来计算数量的,农产品商品是按照 kg/g 等重量来计算数量的,也就是说商品模块需要支持 kg、g、件等各种计量单位,这还不够,涉及到退货、出入库管理、物流配送费等,都需要做额外的方案兼容。

最后整个商品模块会变得很重,任何不同业务的商品需求都会被迭代到这个商品模块中,成了一个商品中心。

如果同时有 4,5 条线在跑,且他们对商品的需求又各有差异,那么商品中心就会变的很重,这种【重】甚至会反过来影响各个业务线的商品功能,使其变得很难用。

随着越来越【重】,任何一条业务线的商品需求的变更、新增,都会带来成几倍的开发难度和工作量,因为任何一次变更、新增都要基于之前【厚重】的商品模块的产品逻辑来考虑。

这个时候中台的概念应运而生,中台某种意义上来讲,和开放平台非常相似,就是对外提供底层能力。

我们换个思路,假如,每个业务都能自己建立自己的商品中心,不用受其他业务线的商品功能的影响,是不是会更加舒服呢?

但是像前面说的,从 0 到 1 自己再建个商品中心太麻烦了,那能不能复用一些已有的能力呢?但是又可以抛弃掉一些不需要的功能。

这个时候我们就抽离出技术中台这一层概念。

03 中台要做什么?

技术中台就是对各个商品中心进行能力的抽象,为各业务线提供底层的商品能力。

而各业务线就是基于这些基础能力,去搭建自己的商品中心,做更上层的商品相关的产品功能。

这样每个业务的商品中心都只服务于自己,更加完美的契合业务需求,使用也更高效,同时基于中台能力的商品中心搭建起来也更加便捷和迅速。

所以对于中台来说,如何避免弱抽象,又不过度抽象,就变得非常有难度了。

弱抽象,就意味着有很多业务的东西夹杂其中,每次迭代都可能涉及到中台能力和接口的改动。

过度抽象,就会导致中台体现不出价值,业务开发工作依然繁重,甚至因为新增对接中台而加大工作量。

中台进阶:

那么是否这样就是一个最终形态了?并不是。

假如中台对外提供的是最基础的能力,那么对业务来说,他需要花费很多时间通过这些基础能力接口去做上层的业务拼装,并引入基础能力之外的业务逻辑,而这些业务逻辑可以由中台提供,也可以由业务自己来实现。

那么考虑到让业务效率最大化,最好的方式是什么呢?提供基础能力,其实是相对简单的,工作量的大头其实是业务。

那么假如中台能够以一种通用性的方式,帮助业务完成一部分业务需求,何乐而不为呢?

很多书中都在告诉大家,中台就只做抽象,只提供基础能力,虽然前提是对的,但是忽略了很重要的一点,中台的第一目的就是帮助业务减负,最大化业务效率。

如果做不到这点,中台再强调抽象,再强调低耦合,都对企业的发展没有太大帮助。

所以换个思路来讲,比如业务中,做营销活动的时候,不同类型的营销活动对用户参与门槛都有不同的限制,类似这样的限制规则其实非常多,10 个活动都要用到这样的限制规则,且这些规则离不开类似(是否新用户、是否用户等级大于 XX、是否活跃用户等等),既然如此,为何不为业务去提供一套整合的规则池,并提供一套门槛校验能力,进一步帮助业务减负?

这样的例子有很多。可以说这样的规则池也是一种抽象,但其实更像是枚举,因为每一个规则都可能完全不同,需要一个个建立起来。

04 技术中台的坑

中台化的能力,帮助业务减负的基础上,进一步收拢了数据,和模块化的统一管理,从逻辑上来讲,一定能够帮助企业大幅提升效率。

但是真正执行中,往往效果没有达到预期,一般主要由以下几个原因导致:

1)业务理解深度不够

没有对业务进行深度调研,导致设计的中台,业务不可用,或者难用,满足不了需求,这必然导致中台能力应用的推进难度增加,有些业务甚至脱离中台自建底层能力。

2)技术对接沟通不充分

在对接过程中,没有做好充分的技术对接沟通,导致业务开发觉得中台提供的少,中台觉得业务开发不懂中台,没有形成合作共识。

3)中台能力过于散装

上游业务组装依然复杂、需要耗费大量精力,体现不出效率的提升。

未完,实战内容待续。

#专栏作家#

司马特小分队,公众号:司马特小分队,人人都是产品经理专栏作家。8年+互联网资深产品经验,多年B端产品管理经验。具有多个从0到1的大型B端产品的孵化、重构、迭代经验;主要教授产业互联网产品相关的硬核知识点。

本文原创发布于人人都是产品经理

(0)

相关推荐

  • 数据中台不是“银弹”:云原生数据中台:架构、方法论与实践

    彭锋等 技术琐话 要不要建设数据中台,这是每个需要做数字化运营的公司必须回答的问题.第1章介绍了数据中台的定义及其与大数据平台的关系,可以看到,数据中台所提供的功能肯定是企业需要的.那么何时开始建设数 ...

  • 数据中台即服务——数据中台的四大支柱

    作者丨石秀峰 全文共4416个字,建议阅读10分钟 中台概念,2015年诞生,2019年爆火,在最火的时候被很多人当成了"无所不能"的"万能药",只要是IT的问 ...

  • 最开始反对中台的人,结果还是选择了中台

    前言 很多人没搞明白中台是什么,一蜂窝围上去,又一蜂窝散开.郭东白认为,这非常不尊重技术人生命. 和郭东白老师在 2016 年就合作过,彼时他是阿里巴巴 AliExpress 资深总监,在架构师会议上 ...

  • 百度交易中台之订单系统架构浅析

    公众号 黑客专栏 黑客专栏,专注分享黑客技术,黑客技术教程,黑客程序员社区,黑客技术分享. 公众号 作者丨西西 来源丨百度Geek说(ID:baidugeektalk) 导读:百度交易中台作为集团移动 ...

  • 不容错过的灰度发布系统架构设计

    重磅干货,第一时间送达 来自:小杨互联网 大家好,我是你们帅气的喵哥! 灰度发布的定义 互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰 ...

  • Pony.ai 硬件系统架构介绍

    自动驾驶是软硬件结合的系统工程,本文将为您解读Pony.ai 自动驾驶车辆的硬件架构.自研的计算系统,以及深度讲解自动驾驶行业所需的硬件技术. 01 产汽车电子电气架构回顾 传统汽车由Electron ...

  • 系统架构师、算法工程师、人工智能工程师需要学多少数学?

    昨天有网友问我,他原先没有学过奥数,问能不能当系统架构师?其他也有人有疑问,是不是应该先学数学,然后在考研的时候转入计算机? 我先说一下结论,没有学过奥数,完全可以当系统架构师.如果真的喜欢数学,可以 ...

  • 【混动】深度解读P0-P4电机系统架构

    来源:龙域电机 在发烧友和技术控眼中,新能源车更像一件艺术品,每一个核心部件都是其精髓所在.聊到纯电动车,他们会问你电池厂商或是电芯的供应商,这可以视作车辆的第二品牌:聊到混合动力汽车,他们会问你是& ...

  • 赞豳邑航天人高级系统架构师笫五亚洲 文/张小锋

    公刘故里,陕西旬邑,中华诗词之乡,人杰地灵,英才辈出.北斗星通公司高级系统架构师第五亚洲,荣获2021年"全国五一劳动奖章".他先后荣获首届海淀园"创新工匠"荣 ...

  • 38张史上最全的系统架构师技能图谱(高清)

    球迷Long导语 系统架构并不神秘,但也不必陷入到某一个技术领域不可自拔,范围太广,需要结合自身工作需要有针对性的掌握才好. 今天给大家分享38张 史上最全系统架构师技能图谱 文末有38张技能图谱下载 ...

  • 38张史上最全的系统架构师技能图谱(高清)(内附下载链接)

    史上最全系统架构师技能图谱 文末有38张技能图谱下载方式 架构师图谱 Java架构师图谱 微服务架构秘籍 一致性图谱 互联网大流量的方法 安全秘籍 阿里巴巴常用小框架 架构方法论图谱 设计模式秘籍图谱 ...

  • 最常见的六种视频监控工程系统架构

    很多的朋友对监控的安装有很多疑问,在很多情况下,作为施工人员我们要根据客户的要求进行施工,那么我们所了解的方法就可能不止一种,这样才能满足客户的不同要求,本期我们来总结网络监控系统安装的六种传输方式. ...