中台这个词现在已经非常火了,17 年开始搞算法平台和大数据平台,到这两年才知道这就是中台。以前更多是凭借自己的感觉和经验在设计和开发,希望这本书能给我带来一些大厂的视角。
注:本书可以看做是一个大杂烩技术简介,入门可以参考。
更新历史
- 2020.12.07: 完成初稿
前言
- 大家普遍希望通过中台战略来实现数据整合、技术沉淀、能力共享和功能复用,并期望以此为切入点来引领组织架构的升级和重塑。
- 算法中台和数据中台是紧密联系的。算法挖掘数据,而数据决定了算法的效果上限。
算法与数据中台概述
算法与数据中台的技术体系,汇总如下:
- 在线算法平台
- 倒排检索系统同
- 相似检索系统
- 策略机制引擎
- 模型预估服务
- 动态配置系统
- 特征服务
- 多租户平台
- 效果监控系统
- AB 实验平台
- 在线开关系统
- 机器学习平台
- 深度学习框架
- 算法组件
- 模型管理
- 特征管理
- 模型可视化
- AutoML
- 作业调度
- 数据标注
- 样本拼接
- 样本管理
- 分布式数据库平台
- 键值数据库
- 表格数据库
- 缓存数据库
- 图数据库
- NewSQL
- 关系数据库
- 对象存储数据库
- Gossip 协议库
- 分布式事务协议库
- 分布式一致性协议库
- 大数据平台
- 集群管理系统
- 分布式协调系统
- 分布式文件系统
- 分布式计算系统
- 数据查询系统
- 数据仓库系统
- 数据可视化平台
- 消息管道系统
- 基础设施平台
- 代码构建系统
- 通用压测服务
- 服务发布平台
- 服务注册发现
- 监控告警系统
- 持续集成系统
- 远程通信框架
- 日志检索平台
- 服务治理平台
- 链路跟踪系统
常见的互联网场景:搜索引擎、推荐系统、数字广告、电子商务、本地生活服务
基础设施
这一部分对于小公司来说,不要过重,不然反而影响效率
- 代码审查:Phabricator
- 持续集成:Jenkins
- 监控报警:Prometheus + Grafana
在线算法系统
整体架构
- 在线流程
- 物料检索系统
- 物料召回
- 倒排索引:Lucene, BitMap, NoSQL
- 相似检索:FM 模型,双塔模型,Faiss 检索库
- 模型粗排
- 物料召回
- 模型预估服务
- 流量分发管理
- 预测框架路由:WBL, Tensorflow, XGBoost, ONNX
- 模型计算引擎
- 模型加载管理
- 模型预测:特征抽取,模型计算
- 策略机制引擎
- 物料检索系统
- 集群管理平台
- 资源管理
- 模型管理
- 配置管理
- 监控报警
- 效果评估系统
- 数据分析
- AB 实验系统
- 报表系统
机器学习平台
机器学习的研发流程
- 业务需求 -> 业务建模
- 数据收集:数据集成、清洗、规约、变换
- 数据探索分析
- 特征工程
- 模型训练,参数优化
- 模型评估
- 效果达标:则上线模型、AB 测试、效果监控、数据回流
- 效果不达标:则优化数据、特征、模型,直到达标
分布式数据库
- OLAP(On-Line Analytical Processing):数据计算与分析
- OLTP(On-Line Transaction Processing):面向实时交易和在线数据访问
- ACID 理论
- Atomicity 原子性
- Consistency 一致性
- Isolation 隔离性:事务的并发控制
- Read-Uncommitted
- Read-Committed
- Repeatable-Read
- Serializable
- Durability 持久性
- CAP 理论:一个分布式系统最多只能三选二
- Consistency 一致性:强一致性、弱一致性、最终一致性
- Availability 可用性
- Partition-Tolerance 分区容错性
- BASE 理论:基本指导思想
- Basically-Available 基本可用
- Soft-State 软状态
- Eventually-Consistent 最终一致性
- 数据分片策略
- 评估点
- 数据分布的均匀程度
- 元数据管理的复杂程度(有无状态)
- 路由规则额复杂程度(计算开销)
- 弹性伸缩的灵活度
- 数据的迁移成本
- 常用方法
- 哈希取模分片策略
- 一致性哈希分片策略
- 连续区域分片策略
- 评估点
- 数据复制策略:异步、同步
- Gossip 协议(Cassandra, Consul)
- 优点:简单、可扩展、去中心化、健壮
- 缺点:消息延迟、消息冗余、弱一致性
- 分布式一致协议
- Paxos 理论上解决了分布式一致性问题
- Multi-Paxos 大幅度提升运行性能和工程可执行性
- Raft 增强可理解性并降低实现难度
- 分布式事务协议
- 二阶段提交协议
- 三阶段提交协议
- 尽量避免使用,从系统机制上解决,因为这些协议都不完美,还会极大增加系统的复杂度和运维难度
大数据平台
整体架构
- 分布式协调系统:Google Chubby, ZooKeeper, Consul
- 数据仓库与查询系统:Scuba, Google BigQuery, Presto, Hive
- 分布式计算系统:MapReduce, Spark, Flink, Apache Beam
- 分布式文件系统:Google GFS, HDFS, Dropbox MP
- 消息管道系统:Google Pubsub, Kafaka
- 集群管理系统:Google Borg, YARN, K8S
推荐系统
整体架构
- 业务流量入口:信息流推荐、相似推荐、关系推荐、个性化消息
- 特征与画像服务:统计、序列、组合、向量、标签
- 召回与索引服务:标签、规则、关系图、语义、向量
- 在线存储系统:SQL, NoSQL, NewSQL
- 集群管理平台:日志分析、性能监控、链路跟踪、负载均衡
- 数据挖掘平台:内容理解、用户理解、标签生产、行为分析
- 在线预估服务:LR, GBDT, FM, DNN
- 机器学习平台
- 排序策略服务:动态配置、流量标签、负反馈、竞价机制、冷启动、多样性、上下文理解、自定义运营逻辑
- 数据管道与数据仓储平台:日志收集、数据清洗、反作弊、大数据处理、流式计算
- AB 实验平台
- BI 商业分析平台
数字广告
整体架构
- 广告业务平台:广告投放、效果展示、结算报表、商业工具
- 广告投放平台:广告召回、收益管理、模型预估、广告结算、策略机制、商业智能
- 在线存储系统:广告索引、用户画像、策略数据、特征数据、效果数据、向量仓库
- 在线预测系统:点击率预测、互动率预测、转化率预测、向量计算
- 大数据平台:行为分析、样本拼接、数据清洗、AB 实验数据、数据聚合、流式计算
- 机器学习平台:特征处理、模型评估、模型训练、模型验证
网约车平台
整体架构如下,该例子介绍的比较清晰,是很好的参考
- 产品接入平台:乘客 APP、司机 APP
- 业务中台:需求池、调度系统、运力池、订单系统、分单系统、抢单系统、定价系统、策略引擎、司机系统
- 算法与数据中台:用户画像服务、LBS 数据服务、机器学习平台、在线预估服务、司机画像服务、特征服务、样本拼接系统、训练框架
- 基础架构:分布式存储、流式计算引擎、服务发现系统、资源调度系统、运维系统、编译测试系统