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

news2024/10/23 2:53:35

目录

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

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

复用性

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

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

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

中台定义

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

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

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

  • 前台(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 系统的建设,它的目标是实现企业整体业务
    能力的复用。

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源!在goview中实现cesium的低代码可视化编辑

大家好,我是日拱一卒的攻城师不浪,专注可视化、数字孪生、前端、nodejs、AI学习、GIS等学习沉淀,这是2024年输出的第19/100篇文章; 前言 前阵子写了一篇goview二开的文章教程,很多小伙伴留言对goview嵌套cesium并实现…

【Python日志模块全面指南】:记录每一行代码的呼吸,掌握应用程序的脉搏

文章目录 🚀一、了解日志🌈二、日志作用🌈三、了解日志模块⭐四、日志级别💥五、记录日志-基础❤️六、记录日志-处理器handler🎬七、记录日志-格式化记录☔八、记录日志-配置logger👊九、流程梳理 &#x…

基于Windows API DialogBox的对话框

在C中,DialogBox函数是Windows API的一部分,它用于在Win32应用程序中创建并显示一个模态对话框。DialogBox函数是USER32.DLL中的一个导出函数,因此你需要在你的C Win32应用程序中链接到这个库。 #include "framework.h" #include …

劲爆!Kimi月之暗面可以接入微信,智能升级, 打造个性多Agent(二)

前言 在当今这个快速发展的AI时代,抖音推出了一个名为“扣子Coze”的工具,帮助用户快速、低门槛地搭建属于自己的AI机器人。本文将详细介绍如何使用扣子Coze配置自己的AI Agent,并展示其在多个平台上的应用。 如何使用多个Agent 搭建更加智…

【可控图像生成系列论文(二)】MimicBrush 港大、阿里、蚂蚁集团合作论文解读2

【可控图像生成系列论文(一)】简要介绍了论文的整体流程和方法,本文则将就整体方法、模型结构、训练数据和纹理迁移进行详细介绍。 1.整体方法 MimicBrush 的整体框架如下图所示。为了实现模仿编辑,作者设计了一种具有双扩散模型…

2024年6月20日 (周四) 叶子游戏新闻

超市播音系统: 定时播放不同音乐 强制卸载软件: 一款强制卸载软件 免费多人沙盒游戏《宝藏世界》推出更新“潮起潮落”,带来全新克苏鲁风冒险准备好迎接一场超凡的冒险吧,MMORPG发行商gamigo宣布《宝藏世界》的最新更新:“潮起潮落”。这次更…

我的创作纪念日--码农阿豪

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

C语言程序设计-7 数组

在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数 组可以分解为多个数组元素,这些数组元素可以是基本数…

性能测试-性能监控分析与调优(三)《实战》

性能监控 使用命令监控 cpu瓶颈分析 top命令 在进行性能测试时使用top命令,界面如下 上图可以看出 CPU 概况区: %Cpu(s): us(用户进程占用CPU的百分比), 和 sy(系统进程占用CPU的百分比) 的数值很高…

Mybatis Plus 详解 IService、BaseMapper、自动填充、分页查询功能

结构直接看目录 前言 MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 愿景 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效…

【前端技巧】css篇

利用counter实现计数器 counter-reset&#xff1a;为计数器设置名称&#xff0c;语法如下&#xff1a; counter-rese: <idntifier><integer>第一个参数为变量名称&#xff0c;第二个参数为初始值&#xff0c;默认为0 counter-increment&#xff1a;设置计数器增…

Redis 主从复制+哨兵+集群

Redis复制 查看docker 容器 ip docker inspect 容器id | grep IPAddressdocker inspect -f{{.Name}} {{.NetworkSettings.IPAddress}} $(docker ps -aq)修改配置文件 初始配置文件见 > redis.conf 远程访问 bind 0.0.0.0protected-mode no 主机设置 replicaof 172.17.0.…

fastadmin多语言切换设置

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

文本高效管理神器:支持自定义行数拆分,轻松实现批量高效编辑与管理新体验

在信息爆炸的时代&#xff0c;文本处理成为了我们日常工作中不可或缺的一部分。然而&#xff0c;面对大量的文本数据&#xff0c;如何高效地进行编辑和管理&#xff0c;却成为了许多人头疼的问题。现在&#xff0c;有了我们的文本批量高效编辑管理工具&#xff0c;一切将变得简…

RS485中继器的作用你还不知道?

RS485是一种串行通信协议&#xff0c;支持设备间长距离通信。RS485中继器则像“传声筒”&#xff0c;能放大衰减信号&#xff0c;延长通信距离&#xff0c;隔离噪声&#xff0c;扩展分支。在实际场景中&#xff0c;如工厂内&#xff0c;通过中继器可确保控制室与远距离机器间通…

虚拟现实环境下的远程教育和智能评估系统(十一)

视频帧画面知识点区域划分 知识点区域精确分割技术: 在深度学习检测模型结果基础上使用基于交并比&#xff08;IoU&#xff09;阈值的目标合并算法&#xff0c;合并过度重合目标区域面积&#xff0c;实现知识点区域精确分割 多模态知识点内容匹配策略: 图像&#xff1a;利用…

Linux驱动开发-01配置开发环境

一、配置网络环境 使用桥接网卡时 Ubuntu 就是使用一个真实的网卡 &#xff1a;开发板的网线也连接到这个真实的网卡上&#xff0c;这样 Windows 、 Ubuntu 、开发板就都可以用过这个网卡互通了。 NAT 网卡&#xff1a; Ubuntu 通过它上网&#xff0c;只要 Windows 能上网&…

idea 配置文件中文乱码

再进行springboot项目开发时发现新建的配置文件中文注释乱码&#xff0c;如下: 处理办法: 1、打开idea&#xff0c;在 File 中找到 Settings,如下图 2、搜索 encodings 找到 File Encodings&#xff0c;如下图 3、将上图中圈上的地方全部改为 UTF-8 编码最后点击 Apply 应用即…

鸿蒙Harmony实战—通过登录Demo了解ArkTS

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义…

信息学奥赛初赛天天练-30CSP-J2022完善程序-结构体构造函数初始化、auto关键字、连通块、洪水填充算法实战

PDF文档公众号回复关键字:20240620 2022 CSP-J 阅读程序2 完善程序 (单选题 &#xff0c;每小题3分&#xff0c;共30分) 2 (洪水填充) 现有用字符标记像素颜色的8 * 8图像。颜色填充操作描述如下&#xff1a;给定起始像素的位置和待填充的颜色&#xff0c;将起始像素和所有可…