提交 20d09c93 作者: 张鹏

每天也没时间写

上级 54ba965b
......@@ -95,7 +95,7 @@ Apache Druid 特点:
通过分析、沉淀数据的公用属性,抽象公共业务能力到中台,使得快速支撑前台业务研发成为可能。
![image](https://git.allhome.com.cn/debuglife/DataDevCenter/raw/master/pics/%E6%96%B0-%E4%B8%AD%E5%8F%B0%E6%9E%B6%E6%9E%84%E5%B1%82%E6%AC%A1.jpg)
![image](https://git.allhome.com.cn/debuglife/DataDevCenter/raw/54ba965b7729983fd58a24ba747c8e89fb0ec784/pics/20190107-%E4%B8%AD%E5%8F%B0%E6%9E%B6%E6%9E%84%E5%B1%82%E6%AC%A1.jpg)
### 3.1 平台工作流
......@@ -137,8 +137,6 @@ Apache Druid 特点:
### 3.3 公共业务接口(业务中台)
简单来说,业务中台是各领域公用能力的集合,聚合**数据后台**提供的“细粒度”数据,以rest api的形式为前台系统的研发提供便利。这里所说的业务中台是一组数据服务集群,同时提供业务系统所需的“统一计算过程”并对外暴露接口,为其他系统提供进一步的数据分析能力。
业务中台的公用能力沉淀问题,如 [3.2 前台](#32)提到的例子,应收应付业务因其具备公用能力并提供业务服务,可将该能力提炼到**业务中台**,我称之为**统一计算过程**。之后,再充分利用**工作流系统**的节点编排能力,将“应收应付”这个“统一计算过程”能力编排到需要的业务系统中,实现真正意义上的**业务中台**
>继续延伸,该应收应付中台服务,可在不侵入前台业务的情况下将数据进一步下沉至数据分析数据库,实施进一步的分析聚合,直接为上层用户提供决策分析依据。
......@@ -149,8 +147,15 @@ Apache Druid 特点:
- 企业人员档案速查接口
- ...
简单来说,业务中台是各领域公用能力的集合,聚合**数据后台**提供的“细粒度”数据,以 API 的形式为前台系统的研发提供便利。这里所说的业务中台是一组数据服务集群,同时提供业务系统所需的“统一计算过程”并对外暴露接口,为中台其他系统提供进一步的数据分析能力。
需要强调的是,前台和中台业务数据直接写入数据后台,并基于这些数据形成细粒度的业务数据接口。中台数据来自于**数据后台**提供的“细粒度”数据。
简单来说,后台数据由前台业务系统写入,中台数据由后台数据提炼,并进行更进一步的分析。
基于此种架构,中台要做的事情其实远不止于此。后台元数据的缓存、Join等使用频繁的操作,均可在中台进行提炼和缓存,这些数据能力其实也是公共能力的一种。
架构的变革,势必会影响到开发模式。以往我们只需要使用CRUD模式即可完成一套并发要求不高的业务系统的研发。现在却不得不同时使用CQRS和CRUD两种模式,为此,研发部门还需要对数据操作进行标准封装,将这两种数据操作模式做成SDK供前台业务开发人员使用。
### 3.4 统一计算过程
......@@ -162,47 +167,61 @@ Apache Druid 特点:
- 保障各项目业务逻辑运算结果和聚合分析结果的一致性
- 借助工作流系统的任务编排能力,将**统一计算过程**编排到**业务中台**的接口中,解除耦合,增强维护性
“统一计算过程“的提炼和沉淀要求工作人员具备一定的架构经验,对平台项目细节保持关注,敏锐洞察平台各系统中的公共部分,为后期的业务中台建设节约成本。
“统一计算过程“的提炼和沉淀要求工作人员具备一定的架构经验,对平台项目细节保持关注,敏锐洞察平台各系统中的公共能力,为后期的业务中台建设节约成本。
### 3.5 数据中台
#### 3.5.1 主要职能
数据中台的概念延伸自业务中台,结合当前平台架构现状,主要应包括以下几种能力:
- 元数据管理
- 业务数据的公用能力下沉
- 业务数据的公用能力提炼
1. 分离原有后台服务为中台和后台(业务部分为中台,基础数据部分为后台)
2. 后台细粒度接口的数据聚合,并以Rest接口的形式对前台系统提供服务
- 业务数据的实时/离线聚合分析能力
维护数据中台过程中,一个需要设计师时刻保持警觉的问题是:数据沉淀太过随意,将业务个性化的数据随意提炼到数据中台,最后发展成专门面向某一领域或项目特有的“数据集市”,随着业务的变化和扩张,该集市体量越来越大,服务范围却越来越”专一“,最终不得不进行分拆或重建以适应新的领域需求。
#### 3.5.2 数据的公用能力
业务中台的数据直接落地到数据后台,与**数据后台**基于API进行同步阻塞(确保事务性)或异步非阻塞通讯,目的是为了解耦具体技术产品和数据模型。基于后台服务返回结果集完成各类SQL等效操作,降低或者压缩SQL的使用影响和范围
维护数据中台过程中,一个需要设计师时刻保持警觉的问题是:数据公用能力的提炼太过随意,将业务个性化的数据随意提炼到中台,最后发展成专门面向某一领域或项目特有的“数据集市”,随着业务的变化和扩张,该集市体量越来越大,服务范围却越来越”专一“,最终不得不进行分拆或重建以适应新的领域需求
>SQL是一种领域特定语言(DSL),虽然很强大但并不是很好的工程语言。由于它不能在内存中定义和操作复杂的数据结构,如果要做模块化的逻辑封装,模块的输入输出必须是数据库表,这就带来了 I/O 损耗,大量的模块化,必然带来导致 I/O 性能的显著下降。而这些模块存在的方式只是脚本,缺少治理工具,大量零散的模块如何管理也是一个难题。系统实施者必须在模块化和性能间权衡,性能是显性的,直接影响用户体验且有明确的度量指标;模块化是隐形的,而且缺少度量工具。因此实际工程中,很少真正做到逻辑的模块化,数据库表的层次不规范,甚至出现数千行 SQL 语句从源表加工数据直接写入结果表。由于缺少治理工具,规范难以执行,久而久之大家也就默认了这样的事实。
因此,**数据公用能力的提炼不能仅依靠架构师的个人能力,需要制定明确边界的操作规范,避免上述情况的发生。**
>大范围使用SQL的代价是可测试性极差,每次逻辑的变化都要通过对代码的修改来实现而并不是新增逻辑。试想一段上千行、逻辑纵横交错的 SQL 语句,要在其中修改某个单点逻辑,没有高覆盖率的单元测试用例,如何确保正确性,最终只能依靠细心和运气,代码质量必定是脆弱的,不能称为真正的工程化项目,治理和敏捷都无从谈起。
#### 3.5.3 降低或压缩SQL的使用影响和范围
### 3.5 数据后台
业务中台的数据直接落地到数据后台,与数据后台基于 API 进行同步阻塞(确保事务性)或异步非阻塞(非事务性)通讯,目的是为了解耦具体技术产品和数据模型。基于后台服务返回结果集完成各类SQL等效操作,**降低或者压缩SQL的使用影响和范围。**
>SQL是一种领域特定语言(DSL),虽然**很强大但并不是很好的工程语言**。由于它不能在内存中定义和操作复杂的数据结构,如果要做模块化的逻辑封装,模块的输入输出必须是数据库表,这就带来了 I/O 损耗,大量的模块化,必然带来导致 I/O 性能的显著下降。而这些模块存在的方式只是脚本,缺少治理工具,大量零散的模块如何管理也是一个难题。系统实施者必须在模块化和性能间权衡,性能是显性的,直接影响用户体验且有明确的度量指标;模块化是隐形的,而且缺少度量工具。因此实际工程中,很少真正做到逻辑的模块化,数据库表的层次不规范,甚至出现数千行 SQL 语句从源表加工数据直接写入结果表。由于缺少治理工具,规范难以执行,久而久之大家也就默认了这样的事实。
>**大范围使用SQL的代价是可测试性极差**,每次逻辑的变化都要通过对代码的修改来实现而并不是新增逻辑。试想一段上千行、逻辑纵横交错的 SQL 语句,要在其中修改某个单点逻辑,没有高覆盖率的单元测试用例,如何确保正确性,最终只能依靠细心和运气,代码质量必定是脆弱的,不能称为真正的工程化项目,治理和敏捷都无从谈起。
### 3.6 离线数据计算中心
因此,**降低或者压缩SQL的使用影响和范围**成为建设中台数据设施的必选项。
### 3.5 技术中台
#### 3.5.4 降低数据存储冗余
技术中台同样服务于业务中台,包括:
数据中台应“降低数据存储冗余”。前面提到,数据由前台系统直接落地到数据后台进行保存,中台数据由后台数据反哺而来。中台只保留用户、机构等维度数据,用于提升处理效率。
- 服务于数据的数据技术中台,如聚合分析和计算能力等
- 提炼自业务的公用计算能力
- 服务于研发自身的组件库,标准库,以及各公用服务及各自的SDK开发包等
水平方向上来说,系统间数据冗余是业务逻辑重复开发的土壤;垂直方向来说,数据中台和后台之间的数据冗余,同样是数据孤岛的成因,因此,需要在顶层架构设计中尽量规避。
技术中台的终极目标只有一个关键词:效率。将提高研发速度和质量作为第一要务,在企业中起着不可或缺的重要作用。是一个研发平台的基石。
为此,**制定明确的设计规范,将用于提升处理的效率的冗余数据统一存储在特定数据设施中**,划分该类冗余数据和分析结果存储设施的边界。
### 3.6 数据后台
### 3.6 统一计算过程
数据后台直接存储来自前台系统的业务数据,提供 API 供上层系统使用。
### 3.6 离线数据计算中心
---
<font color="red"> 阐述技术在数据中台和后台的作用</font>
技术中台服务于其他中台,包括:
- 服务于数据的数据技术中台,如聚合分析和计算能力等
- 提炼自业务的公用计算能力
- 服务于研发自身的组件库,标准库,以及各公用服务及各自的SDK开发包等
技术中台的终极目标只有一个关键词:效率。将提高研发速度和质量作为第一要务,在企业中起着不可或缺的重要作用。是一个研发平台的基石。
## 4. 整体架构设计
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论