这是一本从技术和商业双重视角剖析云原生如何赋能实际业务的著作,是阿里云智能云原生应用平台团队的经验总结,得到了阿里云智能总裁兼达摩院院长张建锋、阿里巴巴首席技术官程立、阿里云智能基础产品事业部负责人蒋江伟等专家的联袂推荐。
本书内容全面,对云原生所涵盖的技术和业务特性一览无余,从设计原则、模式/反模式、技术选项、设计方法、行业案例等多个维度全面总结阿里云云原生架构的方法论和实践经验。
第1章强调了云原生是云计算的再升级,重点介绍了在研发流水线、软件交付模式、运维模式、应用架构、组织结构等方面的升级,以及阿里云云原生架构发展的3个阶段;
第2章介绍了云原生架构的定义,以及云原生架构实际落地时需要遵循的7个关键原则。
第3章总结了云原生架构的10种模式和5种反模式。
第4章全面介绍了云原生所涉及的10余种技术,详细讲解了每种技术的典型架构与阿里的实践案例。
第5章以阿里云ACNA架构设计方法开篇,重点讲解评估云原生架构成熟度所需要考虑的维度与细则。
第6章从职能价值角度出发,阐述了云原生如何为不同岗位的业务赋能。
第7章聚焦于云原生架构落地,分享了多个具有代表性的企业案例和Z佳实践,这些最佳佳实践对于打造一个成功的云原生应用来说有非常大的帮助。
第8章对云原生背景下的容器技术、Serverless技术、大数据技术、数据库技术等的发展趋势进行了分析和展望。
序1
序2
序3
前言
第1章 云原生:云计算的再升级1
1.1 什么是云原生1
1.1.1 云原生的概念1
1.1.2 云原生是云计算的趋势5
1.1.3 支撑淘宝千亿交易背后的技术平台故事6
1.2 云原生是云计算的再升级8
1.2.1 重塑研发流水线9
1.2.2 重新定义软件交付模式9
1.2.3 运维模式的升级11
1.2.4 应用架构的升级12
1.2.5 组织结构的升级13
1.3 构建现代化应用14
1.3.1 现代化应用及其特点14
1.3.2 云原生架构的提出14
1.3.3 云原生架构能为企业带来什么价值16
1.4 案例:阿里巴巴云原生发展实践17
1.4.1 应用架构互联网化阶段18
1.4.2 核心系统全面云原生化阶段18
1.4.3 云原生技术全面升级阶段19
1.5 本章小结19
第2章 云原生架构的定义和原则21
2.1 云原生架构定义21
2.1.1 降低研发成本和项目维护复杂度22
2.1.2 加快软件迭代速度,降低管理和运行成本23
2.2 云原生架构原则24
2.2.1 服务化原则25
2.2.2 弹性原则26
2.2.3 可观测原则28
2.2.4 韧性原则29
2.2.5 所有过程自动化原则30
2.2.6 零信任原则32
2.2.7 架构持续演进原则34
2.3 本章小结35
第3章 云原生架构的模式和反模式36
3.1 服务化架构模式36
3.1.1 服务接口定义37
3.1.2 IDL定义37
3.1.3 OpenAPI 38
3.2 Service Mesh化架构模式40
3.2.1 Service Mesh之Sidecar模式41
3.2.2 Service Mesh之服务注册和发现模式45
3.2.3 Service Mesh之中心化Broker模式48
3.3 Serverless架构模式51
3.4 计算存储分离模式54
3.5 分布式事务模式55
3.5.1 两阶段提交55
3.5.2 BASE56
3.5.3 TCC56
3.5.4 Saga57
3.5.5 AT58
3.6 可观测架构模式59
3.6.1 日志60
3.6.2 度量60
3.6.3 追踪62
3.6.4 事件流订阅63
3.7 事件驱动架构模式63
3.7.1 什么是事件64
3.7.2 事件的生成和消费64
3.7.3 事件异步通信65
3.7.4 数据变更捕获65
3.7.5 读写分离66
3.8 网关架构模式67
3.9 混沌工程模式68
3.10 声明式设计模式69
3.11 典型的云原生架构反模式70
3.11.1 庞大的单体应用70
3.11.2 单体应用“硬拆”为微服务71
3.11.3 缺乏自动化能力的微服务71
3.11.4 架构不能充分使用云的弹性能力72
3.11.5 技术架构与组织能力不匹配73
3.12 本章小结74
第4章 云原生技术及概念介绍75
4.1 容器技术75
4.1.1 容器技术的背景与价值75
4.1.2 典型的容器技术77
4.1.3 应用场景案例:申通基于Kubernetes的云原生化81
4.2 DevOps技术84
4.2.1 DevOps的技术背景与价值84
4.2.2 DevOps的原则与技术85
4.2.3 应用场景案例:阿里巴巴DevOps实践91
4.3 微服务93
4.3.1 微服务的背景与价值93
4.3.2 微服务的设计约束原则与典型架构94
4.3.3 应用场景案例:阿里巴巴的Dubbo实践98
4.4 Serverless99
4.4.1 Serverless的技术背景与价值99
4.4.2 Serverless的典型技术与架构100
4.4.3 应用场景案例:越光医疗巧用Serverless容器提升诊断准确度102
4.5 开放应用模型103
4.5.1 OAM的技术背景与价值103
4.5.2 OAM的典型原则与架构104
4.5.3 应用场景案例:KubeVela基于Kubernetes OAM实现106
4.6 Service Mesh技术109
4.6.1 Service Mesh的技术背景与价值109
4.6.2 Service Mesh的典型技术与架构110
4.6.3 应用场景案例:阿里巴巴Service Mesh实践112
4.7 分布式消息队列114
4.7.1 分布式消息队列的背景与动机114
4.7.2 分布式消息队列的典型技术与架构115
4.7.3 应用场景案例:阿里巴巴的RocketMQ实践117
4.8 云原生数据库技术119
4.8.1 云原生数据库的技术背景与价值120
4.8.2 云原生数据库的典型技术120
4.8.3 应用场景案例:PolarDB助力银泰实现快速云化138
4.9 云原生大数据139
4.9.1 云原生大数据的技术背景与价值140
4.9.2 云原生大数据的典型技术140
4.9.3 应用场景案例150
4.10 云原生AI153
4.10.1 云原生AI的技术背景与价值154
4.10.2 云原生AI的典型技术154
4.10.3 应用场景案例:利用云原生AI打造新一代社交推荐平台157
4.11 云端开发159
4.11.1 云端开发的技术背景与价值159
4.11.2 应用场景案例:杭州幻熊科技借助云效平台实现每日交付162
4.12 云原生安全164
4.12.1 云原生安全的技术背景与价值165
4.12.2 云原生安全的典型技术166
4.13 本章小结178
第5章 阿里巴巴云原生架构设计179
5.1 云原生架构的四个不同成熟阶段180
5.2 ACNA的概念181
5.2.1 ACNA-S1:企业战略视角182
5.2.2 ACNA-S2:业务发展视角183
5.2.3 ACNA-S3:组织能力视角183
5.2.4 ACNA-S4:云原生技术架构视角184
5.2.5 ACNA-S5:架构持续演进闭环185
5.3 云原生架构成熟度模型187
5.3.1 6个评估维度187
5.3.2 评估模型的实施指导和工作表188
5.3.3 服务化能力的评估190
5.3.4 弹性能力的评估191
5.3.5 无服务器化程度的评估191
5.3.6 可观测性的评估192
5.3.7 韧性能力的评估193
5.3.8 自动化能力的评估194
5.4 如何向云原生架构迁移194
5.4.1 技术栈迁移评估表195
5.4.2 组织和文化的改变195
5.4.3 现有产品的迁移路径197
5.4.4 项目实施关键点197
5.5 架构风险控制198
5.6 本章小结200
第6章 云原生落地实践对不同岗位的影响201
6.1 CXO和IT主管201
6.1.1 外部环境201
6.1.2 内部环境202
6.2 架构师/咨询人员/系统规划人员203
6.3 开发人员204
6.4 运维人员206
6.5 软件交付工程师/系统集成工程师207
6.6 从数据库管理员到数据库架构师208
6.7 本章小结210
第7章 不同行业的云原生架构实践211
7.1 完美日记的云原生之路211
7.2 突围数字化转型,云原生赋能特步新零售214
7.3 落地云原生,联通构建新一代云化业务支撑系统220
7.4 申通快递核心业务系统云原生之路223
第8章 云原生架构的发展趋势227
8.1 容器技术的发展趋势227
8.2 基于云原生的新一代应用编程界面的发展趋势232
8.3 Serverless发展趋势233
8.4 采用云原生技术的软件交付模式235
8.5 云原生大数据发展趋势237
8.6 云原生数据库的发展趋势238
8.7 本章小结240
附录A 阿里云云原生产品介绍242
附录B 常见分布式设计模式257