从复用性角度阐述中台建设

目录

  • 复用性
  • 中台定义
  • 深思中台建设
    • 产品线形态
    • 何时演变
    • 中台能力
    • 落地中台
  • 业务中台架构
  • 总结

技术学习永不止步,最近也是看了很多关于架构设计相关的专栏,慢慢总结出来一部分知识,代入自己的思考与理解,以及结合并反思自己之前公司的架构设计经验,发现很多方法论适用场景,也希望能够解决小伙伴们的一些疑惑以及感谢大佬们也给我指点迷津,站在巨人的肩膀上成长~

复用性

首先谈一下复用性的理解:
复用性是指在系统设计和开发过程中,通过抽象和模块化设计,将通用的功能和逻辑提取出来,以便在多个不同的业务场景或技术场景中重复使用。

结合日程工作中我们能够接触的复用场景会更清晰的理解,并且可以快速切入后续中台的定义,从小到大,比如:代码复用—技术组件复用—业务实体复用—业务流程复用—产品复用

意义:复用性是系统设计中的重要原则,通过技术复用和业务复用,可以提高开发效率,降低开发成本,确保系统和业务的一致性和稳定性。

中台定义

中台核心定义:企业级能力复用平台,简单直接明确定义,也符合这篇文章的主题。
下面分别拆分阐述一下这个定义:

  • 企业级:定义中台的范围;企业级侧重说明中台处理的问题在于企业级别,即至少多条业务线或者服务多个前台产品;
    因此,中台建设,一定需要跳出单条业务线,站在企业整体视角来审视业务全景,区分开了单系统的服务化与微服务;
  • 能力:定义中台主要承载的对象;不同企业的中台能力均不相同,可以满足用户不同层面的需求,即差异化竞争力;
  • 复用:定义中台的核心价值;复用,是中台更加关注的目标,也是业务驱动和用户驱动的;
  • 中台的衡量标准
    “可复用性”和“易复用性”是衡量中台建设好坏的重要指标;
    “业务响应力”和“业务满意度”是考核中台建设进度的重要标准。

用一张图解释一下,前台、后台、中台之间协调关系:

  • 前台(Small Front Platform)是指直接面向用户的具体业务应用(面向C端应用,比如:微信、淘宝等),通常是轻量级的、灵活的、快速迭代的。前台业务应用主要负责与用户交互,提供具体的业务功能。
    从开发角度可以将其理解为“前端应用服务+后端应用服务”,即不仅仅指前端,还包含与前端配套的服务端;
  • 后台:企业内部系统,比如ERP、CRM、仓库管理系统等,主要面向企业内部人员使用。

从上面的图中可以清晰看到前台需要快速响应,而后台企业内部流程基本不变,稳定不需要随意调整。

中台建设能力

  • 中台建设,根本上是为了解决企业响应力困境, 通过对后台内部基础设施的包装,为前台提供全方位的支持;
  • 中台建设,提供一个中间层来适配前台与后台的配速问题,打通并顺滑链接前台需求与后台资源,帮助企业从整体上不断提升用户响应力。
  • 中台建设,不仅仅是前后台之间简单的适配器,中台本身也会有业务数据,完整的业务规则;与此同时,中台与前台构成C端业务的小闭环,支持业务的快速创新,等待业务模式验证后,中台与后台彻底打通,构成业务的大闭环;

深思中台建设

从复用性角度理解中台,可能会更直接一点,最简单的就是日常开发过程中代码的抽象设计思维,只不过从更高层面理解。
哪什么时候考虑落地中台建设呢?从上面的中台的定义也可以清晰表明,中台要基于多条产品业务线抽象设计。
故随着企业业务从0到1再到N条业务线时,则需要考虑中台建设。但是此过程中,我们最好能够在设计中保持SOLID原则,也为了方便后期服务治理,这是面对公司从初始开始,但是面对已经有N条业务线的企业,则另当别论啦~

产品线形态

一、川字型结构
独立地建设新业务线,构成川字型结构;
这种结构比较常见,企业N条业务产品线,各干各的业务,重复建设业务功能,系统间大量的代码复制,浪费资源;

二、山字型结构
将各个业务线中相同的核心逻辑抽取出来,通过抽象设计,实现通用化,共同服务于所有业务线的需求,构成山字型

说明
山”字型的上面三竖,代表各个业务线定制的应用;
最底下一横,代表通用层,它把各个业务线有机粘合在一起,实现了业务逻辑和业务规则的统一。

优点:达到一处建设,多处复用,一处修改,多出变化,高程度复用。

何时演变

即何时从川字型转变成山字型???主要从以下方面考虑:

  • 业务线的数量:业务线越多,意味着重复建设的成本会更大,故第三条业务线,开始考虑抽象设计;
  • 业务线的相似度:相似度越高,意味着业务线之间有更多类似的逻辑;

中台能力

中台通过实现基础业务的平台化,实现了企业级业务能力的快速复用。

  • 变化速度:企业基础业务相对固定,具体上层业务场景相对多变的

  • 数量:基础业务数量有限,具体上层业务场景是无限的
    中台的建设,可以通过有限而比较固定的基础业务,来满足无限而快速变化的上层业务场景。

  • 业务角度:中台收敛了业务场景,统一了业务规则

  • 系统角度:中台统一对外提供标准的接口,屏蔽底层服务的复杂性

  • 数据角度:中台收敛数据,统一使用相同的数据模型以及数据库存储

落地中台

经过之前的学习理解,概述:梳理企业目前现有的业务线,依据领域驱动原则,拆分功能模块,聚合领域服务(即微服务或者基础服务),最终形成平台化服务;
中台建设,需要建立在微服务设计的基础上,故引发思考,如何将现有单体服务逐步拆分成微服务设计呢????
以电商平台为例,在微服务架构下,我们拆分出订单服务、商品服务、库存服务等;而在中台建设中,会将这些微服务升级为订单中心、商品中心、库存中心等;
升级前后的区别

  • 服务中心更强调体系化:业务通用能力、系统运营能力、业务运营能力;
  • 服务中心围绕自身核心业务,自成体系、业务内聚,成为一个微内核;

典型的业务中台架构图如下:

  • 通用聚合服务:对基础业务进行组合,提升业务能力的易用性(可以将其理解为BFF层);
  • 通用基础业务平台:基础的业务能力实现;
  • 通用中间件平台:通过技术手段保证业务中台的稳定性

总之,中台是微服务的升级。即松散的微服务—>共享服务体系—>中台。

业务中台架构

典型的企业中台架构设计是什么样的???
如图所示:

  • 渠道&应用
    整个系统的对外部分;包括了各个应用的前端:App、小程序、公众号等等;
    以及提供对部上下游企业调用的open API;

  • 应用平台
    具体应用的母体;包括各个应用的服务端:小程序服务端、APP服务端等,即聚合基础服务能力,可以做流程编排和信息聚合;
    网关:位于服务端和前端之间,实现前后端隔离,负责外部访问的安全验证和监控、以及内外部请求的路由和消息格式转换;

  • 业务中台
    中台架构的核心;包括一系列的通用基础服务、以及上面的通用聚合服务和下面的技术平台;

  • 后台
    适配插件:用于连接内部系统中台基础服务;插件是定制的,具体和每个企业的后台系统有关。
    企业内部系统:企业的IT基础设施;

综上:
中台代表了企业核心的业务能力,它自成体系,能够为 C 端的互联网场景提供通用的能力,并通过各种插件和后台打通。

通过构建这样一系列的共享服务,我们就实现了各个渠道业务规则和业务数据的统一管理,
最终我们落地了一个强大的业务中台,可以很方便地扩展各个业务,实现企业整体业务能力的复用。

借助总的中台架构图,我们一起看下具体的业务场景是怎么样的呢?以外卖下单为例

特殊说明

  • 应用平台层:可以理解为通用聚合服务,聚合多服务之间的功能;
  • 订单控制服务(Order Control Service,OCS),负责订单逻辑的编排以及前后台之间的状态同步,你可以把它看作是基础服务之上的聚合服务。

思考,应用端是否可以跨过应用平台层,直接调用业务中台服务呢???

  • 不推荐,对于外部过来的请求,我们需要提供一些非业务性的功能,比如签名验证,协议和参数适配(外部的rest和内部的rpc);

  • 中台只是提供基础业务功能,前端过来的请求是代表一个业务场景,需要同时用到多个服务的功能,比如前台下单,需要用到用户服务,商品服务,库存服务,订单服务等,这不合适直接在前端做功能整合。

总结

  • 中台是从企业的业务战略高度,来考虑企业 IT 系统的建设,它的目标是实现企业整体业务
    能力的复用。

  • 从落地的角度看:
    对于互联网企业而言:大量的微服务做基础,往中台转是改良;
    目的是更好地衔接前台和后台,实现业务的快速创新;

    对于传统企业而言:内部有大量的遗留系统,落地中台是革命;
    目的是盘活老系统,全面实现企业的数字化转型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/727786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows和linux下清空Redis

前言 在本文中,我们将详尽阐述在Windows与Linux操作系统中有效清除Redis缓存的实践方法,旨在为您提供清晰、高效的指导流程,确保数据管理的灵活性与效率。 windows下推荐两款可视化工具 Another Redis Desktop Manager 这是我用的最多也是最…

安卓手机删除的照片如何恢复?2个有效方法,教你找回

手机相册就像是我们的私人宝藏,里面装满了无数珍贵的回忆。但是,如果你不小心把里面的宝贝照片给删了,那可真是让人欲哭无泪啊!删除的照片如何恢复?今天,我要给你介绍几个方法,让你轻松找回那些…

网络编程(二)TCP编程 TCP粘包问题

文章目录 一、TCP网络编程(一)流程(二)相关函数1. socket2. bind3. listen4. accept5. connect 二、收发函数(一)send函数(二)recv函数 三、TCP粘包问题(一)将…

linux精通 4.1

2.1.3 http服务器实现 目的 reactor应用——webserver webclient 每次上课前 看大纲down code 复习: 不行啊 编译给的代码报错啊 给的最新的不是0430那一版就不行啊 reactor.c:(.text0x254): relocation truncated to fit: R_X86_64_PC32 against symbol begin de…

Gobject tutorial 八

The GObject base class Object memory management Gobject的内存管理相关的API很复杂,但其目标是提供一个基于引用计数的灵活的内存管理模式。 下面我们来介绍一下,与管理引用计数相关的函数。 Reference Count 函数g_object_ref和g_object_unref的…

车载测试面试项目看这一套就够了!车载测试___自我讲解项目

面试官您好,我叫xx来自安微,今年xx岁,毕业于安微新华学院,我是从2017年开始接触软件测试行业,目前从事软件测试工作有5年多时间,第一家公司做了电商和进销存项目app和web都有做过,上家公司做了车…

Python使用策略模式实现绘图功能

策略模式(Strategy Pattern):允许定义一系列算法,将它们封装起来,使得它们可以互换。 实现绘制不同类型的图表(如折线图、柱状图和饼图)功能。 下面是一个示例,展示如何传入横坐标和纵坐标内容…

Spring Boot集成tablesaw插件快速入门

1 什么是tablesaw? Tablesaw是一款Java的数据可视化库,主要包括两部分: 数据解析库,主要用于加载数据,对数据进行操作(转化,过滤,汇总等),类比Python中的Pandas库; 数据…

JVM中的垃圾回收机制

文章目录 什么是垃圾为什么需要垃圾回收早期垃圾回收Java的垃圾回收机制垃圾回收主要关注的区域垃圾判定算法引用计数算法可达性分析算法 垃圾收集算法标记清除算法复制算法标记整理算法分代收集思想增量收集算法分区算法 什么是垃圾 垃圾回收(Garbage Collection&…

Java面试八股之Mybatis和JPA的区别

Mybatis和JPA的区别 Mybatis 和 JPA(Java Persistence API)是两种在 Java 应用程序中用于数据持久化的框架,它们各有特点和适用场景。下面是它们之间的一些主要区别: 映射方式: Mybatis 是半自动的 ORM 框架&#xf…

Vue66-vue-默认插槽

一、默认插槽需求 1-1、原本的写法: 在每个category组件中用v-show来做条件渲染,但是不方便! 1-2、默认插槽 img标签,ul标签,video标签,都是在app组件中完成解析之后,塞到category组件中的&…

实验室装修公司教你:真菌实验室设计建设的必备技巧

在当今的科学研究和生物技术领域,真菌实验室设计建设显得尤为重要。然而,很多实验室在实际操作中常常面临空间布局不合理、设备配置不当以及环境控制不到位等诸多挑战,导致实验效率低下,甚至危及人员安全。那么要怎么才能设计建设…

【Unity】AssetBundle打包策略

【Unity】AssetBundle打包策略 在游戏开发过程中,AssetBundle(AB)打包策略的重要性不容忽视。游戏开发者往往手动设置游戏资源包名进行管理,难免会造成资源确实或导致冗余,因此对于AB包的打包流程来说,进行策略管理显得十分重要。…

卓越的 App UI 风格引领潮流

卓越的 App UI 风格引领潮流

fastadmin多语言切换设置

fastadmin版本:1.4.0.20230711 以简体,繁体,英文为例 一,在application\config.php 里开启多语言 // 是否开启多语言lang_switch_on > true, // 允许的语言列表allow_lang_list > [zh-cn, en,zh-tw], 二…

Linux环境编程基础学习2

For循环累加求和,两种方式,c方式的运算更快 打开文件操作 cat操作的实现 EOF: 1.diff A B比较两个文件是否一样,一样则什么结果都没有 Od -c 文件名可以显示出文件中的不可见字符

Stable Diffusion WebUI 使用ControlNet:IP-Adapter保持生图的角色一致性

IP-Adapter-FaceID可以在保持人脸一致的条件下生成各种风格的图像。 下载 IP Adapter 需要的 Face ID 模型和 Lora 下载地址:https://huggingface.co/h94/IP-Adapter-FaceID/ 下载 ip-adapter-faceid-plusv2_sd15.bin 和 ip-adapter-faceid-plusv2_sd15_lora.saf…

Linux:文件描述符

文件描述符实际上就是一个小整数 0 & 1 & 2 Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入0, 标准输出1, 标准错误2. 0,1,2对应的物理设备一般是:键盘,显示器,显示器 所以输入输…

SpingBoot快速入门下

响应HttpServietResponse 介绍 将ResponseBody 加到Controller方法/类上 作用:将方法返回值直接响应,如果返回值是 实体对象/集合,将会自动转JSON格式响应 RestController Controller ResponseBody; 一般响应 统一响应 在实际开发中一般…

多线程下JVM内存模型 和 volatile关键字

1、线程的概念 线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务…