一个常见的事业部制的组织机构图
产品中台:产品中台研究的是企业内部的软件系统如何进行抽象和设计,从而让企业的软件系统就像搭建积木一样灵活,可以重复高效利用现成的软件组件,快速组装开发出新的软件系统,从而节约软件开发成本,并能够快速支持新业务开展。很多文章也把这类中台产品称作业务中台,或业务中台产品。目前被广泛讨论的产品中台包括电商交易中台、账号中心中台等,其中电商交易线又被更加广泛的探讨,包括了订单中台、支付中台、商品中台、促销中台等。产品中台还有另一层含义,即能够给全公司全企业提供一致服务的管理软件产品,也可以纳入产品中台的范畴,例如呼叫中心、项目管理软件。从某种程度上来讲,这些标准化软件产品也是中台产品。 数据中台:数据中台研究的是企业内部的数据管理、治理问题,以及数据产品体系和数据底层结构的搭建问题。数据中台研究的范畴,包括企业统一的数据安全、数据规范、元数据管理、数据编码管理,以及数据仓库、数据集市的拓扑架构,也包括大数据底层和运算能力建设和复用。要注意的是,数据中台更多的关心从业务和产品层面对数据的治理、管理、应用,而非技术层面问题。 技术中台:技术中台研究的是软件产品的技术实现过程中,哪些技术上的处理能力和架构可以进行抽象复用,例如消息中间件MQ,分布式计算框架Hadoop,分布式服务框架HSF,各种Open API等等。技术中台是纯粹从技术实现底层来思考基础服务和基础模块的复用能力,其设计思路和产品中台一脉相承,是技术人员需要深度思考的问题。 以上四个主题,涵盖了互联网模式下对于企业中台建设的所有课题范围,其中,对于产品经理来讲,工作相关性最强,最需要关注的是产品中台和数据中台。 实际上,上述四个主题,也正是传统企业信息化建设中非常核心的企业架构EA(Enterprise Architecture)理论,对企业业务管理的IT视角下的切分。其中组织中台对应EA中研究的企业业务架构EBA(Enterprise Business Architecture)中的组织架构治理部分,产品中台对应EA中研究企业应用架构的EAA(Enterprise Application Architecture),数据中台对应EA中研究企业数据架构的EDA(Enterprise Data Architecture),技术中台对应EA中研究企业技术架构的ETA(Enterprise Technology Artchitecture)。 关于EA的论述,可能让很多纯互联网背景的同学读起来很困惑,但实际上,互联网企业所谓的中台建设思路,逃不出经过几十年沉淀的信息技术理论框架,以及管理理论框架。而传统信息技术理论,在互联网企业的B端产品建设中具有极强的参考、借鉴价值。 然而,我们今天讨论的主题,还不是研究企业架构EA对中台建设的指导,而是尝试从更加深层次的角度,去探索产品中台、数据中台的设计本质,尤其是对于B端产品经理来讲非常核心的产品中台的设计精要。 对于产品中台,目前公认的关键要点包括如下关键词:企业级、抽象、下沉、复用,这些关键词代表了产品中台建设的特点,同时也是在企业应用架构设计中需要深层次思考的问题。(所谓企业应用架构,是指企业内部的各个软件系统,应该以什么样的形式建设、组合,从而高效的支持企业的经营运作)因此,如果要深层次的思考软件产品的企业级抽象、下沉、复用问题,可以从以下三个角度进行全新的审视,分别是:基于抽象复用的视角,基于架构合理性的视角,基于业务统一管理的视角。 我们通过从这三个视角切入,可以全面的解构中台产品设计的要义,并且可以更加全面的穷举中台建设的方法论、要点和难点。合并共性模块
以上案例,演示了系统功能如何被合并、抽象、下沉,这种设计思路,节约了软件研发成本,是一种非常经典的中台设计思路。 接下来,我们通过一个实践案例,进一步演示这种设计思路。重复的客户详情页建设
遇到的问题 三套业务系统各自有产品研发团队维护,系统早期为了快速支持业务从而分别建设,快速响应业务诉求,为业务发展立下了汗马功劳。但随着系统的逐步成熟,其中一些问题也逐渐凸显,首要问题就是功能重复开发建设问题。虽然三个业务部门对客户关注的侧重点不同,但基本诉求是一致的,希望能看到客户所有的重要信息。因此,三个系统的客户详情页功能已经高度类似,而每次针对客户资料的调整变化,需要三个研发团队分别重复开发三遍,非常浪费人力资源。 解决方案 为了解决三套业务系统中高度类似的客户详情页的重复开发问题,也为了给业务人员提供一致的、准确的客户视图,公司决定将客户详情页模块从三个业务系统中剥离,将功能合并后,建设“统一客户视图(ECIF)”模块,该模块拥有一致的客户数据底层,并提供完整的客户信息查询服务化接口,以及可以嵌入业务系统直接使用的客户详情页面组件。“统一客户视图”将作为中台产品,为各个业务系统提供企业客户数据查询的服务以及视图。如下图。将客户详情页抽象下沉建设统一客户视图中台
任何业务系统,既可以调用该模块的成熟接口查询客户数据并自己设计前端页面,也可以直接嵌入“统一客户视图”提供的现成的客户详情页组件,并且该页面组件还可以进行灵活的权限配置,定义针对不同的业务系统、不同用户角色的数据查看、编辑范围。 由此,我们完成了对客户详情页的抽象下沉,三套曾经重复开发的页面被合并成了一套,以后研发团队只需要维护这一套页面,研发人力得到了释放。 这就是典型的基于抽象复用的视角设计的中台产品。这种模式有一个显著特点,即软件的抽象和复用是成本问题,不影响业务。案例中,虽然有三套客户详情页被重复建设,但只是个资源浪费问题,并不会影响到业务的开展。期望的抽象结果
然而受限于经验不足,或掌握的信息不足,很可能做出错误的判断和设计,做出了错误的抽象决策,最后被抽象的系统模块,并不能被充分复用,只是制造了一个畸形的别扭的模块,生硬的把一堆毫无关联的功能强行捏在一起,给研发工作反而带来的更大的麻烦,如下图。错误的抽象结果
我们将通过实际案例,给大家演示这种设计错误。并不一定正确的订单中台
错误的决策 实际上,公司经营的B2C电商业务和影票业务,在交易形态上有较大区别,尤其体现在订单模块的设计上,订单的状态机、数据模型和财务账务处理模式完全不同,强行将两者合并后,并没有太多的共性模块和功能,最终只是表面上看起来实现了订单中台,但是里边的功能模块各自独立,各自运转,完全没有抽象和复用。 扩展难题 现在,公司管理者以为拥有了强大的“订单中台”,可以为任何新业务的快速开展提供支持。很快,公司决定开展机票售卖业务,针对机票业务,有独立的C端,商品管理,促销管理。但是当产品经理和工程师开始期待订单中台的强大能力时,遗憾的发现订单中台无法给机票业务提供任何现成的功能复用能力,机票的订单模型和电商以及影票都不相同。 机票业务线的设计人员面临一个尴尬的局面,要么“政治正确”的将机票订单中心纳入订单中台统一建设,但实际上这会严重降低开发效率,因为中台研发团队肯定不会像机票业务自己的研发团队那样重视新业务的开展;要么就抛弃订单中台,自己独立开发订单模块,但这样做又会显得订单中台没有产生该有的价值。如果你是机票业务的负责人,该怎么权衡取舍呢?此时的系统架构如下图。订单中台并不能很好的支持机票业务
可见,订单中心,在不同业务模式下,并不一定适用于中台化建设,设计人员要有足够的思辨能力,判断产品形态上是否值得抽象下沉,是否能够提供复用能力。然而这也是软件工程设计中非常难的部分。 任何软件系统的设计,都是基于归纳法,而非演绎法,即软件设计人员总是通过对现有世界和业务的总结提炼,完成软件设计,而无法通过推测演绎,完成软件设计。设计人员无法对业务的未来做出预测,只能基于有限的经验,尽量的保证设计的灵活性和正确性。理解这一点非常重要,这会让你在软件设计、产品设计时心存敬畏之心,不会一味地追求短期无法论证的结论而产生的严重的过度设计。烟囱应用
因为烟囱应用的存在,每个应用系统生产的数据会更加孤立,系统之间数据没有关联,没有打通,系统之间的数据就像一座座孤岛,彼此独立,数据的价值被严重弱化,数据孤岛会造成严重的业务问题,接下来的案例,会演示数据孤岛问题,以及如何通过中台化的架构设计思路解决该问题。数据孤岛
客户数据存在孤岛
遇到的问题 显然,上述应用架构存在严重的数据孤岛问题,并且会产生严重的业务问题。具体如下: 线上客户如果想体验线下服务需要重新注册会员,客户体验极差 线下客户如果想体验线上业务需要重新注册账号,客户体验极差 线上线下客户数重复,无法识别唯一性 呈现给客服人员的客户数据是同步后的具有滞后性 客服无法准确识别客户信息并帮助客户修改资料 企业无法做线上线下客户消费的关联性分析,无法做交叉销售 解决方案 因为应用架构设计的不合理,导致业务受到严重影响,客户体验差。如何解决多个业务系统中存在的数据孤岛问题呢?实际上解决办法也很简单,就是将客户数据库合并后只保留唯一的一份客户数据资料,所有下游业务系统都访问这个唯一的客户数据库,进行客户数据的增删改查操作。此时,系统之间的拓扑结构发生了改变,新的应用架构图如下图。通过主数据设计思路解决孤岛问题
这种针对企业的核心的、相对稳定不容易变化的、被充分共享的数据,叫做主数据MDM(Master Data Management),通过主数据的设计思路,可以很好地解决烟囱应用和数据孤岛问题,尤其是数据孤岛问题。主数据作为一种基础服务,正是一种中台化的治理理念。企业内常见的主数据包括客户主数据、供应商主数据、组织机构主数据、商品主数据等等。你可能之前没有听到过主数据的概念,但仔细想想,实际上主数据在B端产品的架构设计中时刻存在。 基于应用架构合理性的视角来构建中台,这种模式的特点,是软件的抽象和架构设计会影响业务,这和基于抽象复用的视角构建中台有着显著地区别,前者如果不做抽象和下沉,会造成很多业务问题,例如案例中提到的客户管理问题;后者如果不做抽象和下沉,只是成本问题,不影响业务,例如之前统一客户视图的案例,虽然开发资源浪费,但系统的问题并不会影响业务开展。短视频业务的账号中心中台
遇到的问题 账号中心作为中台产品,除了为短视频业务提供服务,还能快速赋能新业务,支持理财业务开展业务。理财业务只需要建设对应的APP C端和简单的管理后台,对于比较复杂的账号中心,完全不用浪费人力从头开发。看起来,完美的架构发挥了优势,支持了业务。产研负责人很开心,中台理念得到了落地,在老板面前有面子。然而事实真的如此么? 理财业务开展过程之中,需要针对账号中心做较多的个性化功能定制,例如需要实线账号的信用认证管理,地址管理,银行卡管理等等,相对于短视频业务的账号中心,理财业务对账号中心的功能要求、安全性要求、风控要求更高。理财团队给账号中心提交了一堆需求,但是账号中心的响应速度非常缓慢,因为两个团队不是一个产研体系,也没有管理关系,账号中台团队总是将理财业务的需求优先级调到最低。 因为账号中台的响应速度慢,理财业务负责人多次找老板沟通协调,但公司对待理财业务的态度又变的有些暧昧,并没有保持最强有力的支持,这下就比较尴尬了,理财业务虽然有自己的研发团队,但是账号中心用的却是中台的,而中台团队又不是很支持理财业务(按照中台团队的说法,理财业务提交的需求个性化太强,工作量巨大,对短视频业务一点价值都没有,投入产出比低,优先级低),导致业务进展缓慢,不能很好地支持客户需求和业务发展诉求,浪费了宝贵的竞争时间,只能眼睁睁的看着对手攻城略地,越走越远。 可见,设计了正确的中台产品,以及保证了架构的合理性,在某些情况下,反而会影响到业务的快速发展。某集团三条业务线下的系统架构
业务诉求 三家公司独立经营,保持了充分的灵活性,能够快速响应市场变化,取得了成功。但是,随着经营的深入,有一些问题也逐步暴露,并且变得越来越严重,总部高度关注,需要尽快解决,典型问题如下: 三家公司经常出现重复采购流量的现象,浪费集团营销成本; 三家公司往往对同一个客户重复营销,造成客户投诉; 客户价值不能充分挖掘,跨业务线的交叉销售和向上销售做的不好; 现在,集团下定决心解决这些问题,而解决这些问题,必须通过软件产品的中台化建设来实现。 解决方案 针对集团面临的三点问题,解决方案如下: 1、建立集团的统一客户标识数据库(作为集团统一客户管理中心的核心模块来建设),从集团层面识别客户唯一性,确保各个业务线采买流量时能够正确过滤已有客户,节约成本。 2、具备客户唯一性识别的能力后,可以实现集团层面的统一客户营销管理、客户旅程管理、以及防骚扰控制。通过统一客户管理中心实现客户旅程模块、防骚扰控制模块,将控制策略插入到各个子公司的销售系统中,确保各个子公司的销售触达任务开始之前首先要经过集团层面的控制中心的校验和管理,从而确保同一客户不会同时被几条业务线的销售重复骚扰。 3、统一客户管理中心还可以实现交叉销售模块,针对某些业务场景下的客户数据,进行跨业务线的销售任务分发,例如识别某寿险客户经济实力较好,则将客户推送到理财业务的销售系统,尝试二次销售转化。 整个系统架构如下图。通过集团统一客户管理中心实现跨业务线的客户销售管控
综上可见,集团层面,如果想对各个子公司的客户资料、客户营销、客户触达进行统一管理,就必须建立统一客户管理中心,首先实现客户唯一性标识,其次基于客户唯一性标识落地各种统一客户管理策略。集团统一客户管理中心,正是中台设计思路的实践应用。而集中化的业务管理诉求,则必须通过软件的抽象和架构设计来实现,这也是这种中台建设模式的特点。很显然在目前的信息时代,借助类似于FineDataLink的这些工具,可以让企业加速融入企业数据集成和分析的趋势。备受市场认可的软件其实有很多,选择时必须要结合实际的情况。一般的情况下,都建议选择市面上较主流的产品,比较容易达到好的效果,就是帆软的数据集成平台——FineDataLink。
通过FineDataLink作为中间件,简道云数据下云本地化,原库用于提供业务负载,本地库搭配FineReport用于数据分析展示,解决了数据分析人员无法完全取到简道云数据的问题,在FineDataLink侧进行简单的配置,同步数据和附件,即可完成简道云数据的迁移。通过FineDataLink作为中间件,简道云数据下云本地化,原库用于提供业务负载,本地库搭配FineReport用于数据分析展示,解决了数据分析人员无法完全取到简道云数据的问题,在FineDataLink侧进行简单的配置,同步数据和附件,即可完成简道云数据的迁移。
整合了MES、ERP、SQS、APS、PLM等系统,建立了公司级别的数据仓库,统一数据源,统一数据分析出口。
FineDataLink和6节点的FineData相结合,自动把4个厂的MES、ERP、WMS、PLM等业务系统,通过数据库logminer、消息等进行实时采集同步;通过对ODS层的数据加工作转换进行分层建设,完成分布式数仓的搭建,10分钟内即可完成从业务库,到ODS的ELT的整个数据链条处理。