持续演进的Cloud Native:云原生架构下微服务最佳实践

持续演进的Cloud Native:云原生架构下微服务最佳实践 pdf epub mobi txt 电子书 下载 2026

出版者:电子工业出版社
作者:王启军
出品人:博文视点
页数:316
译者:
出版时间:2018-10
价格:79
装帧:平装
isbn号码:9787121351204
丛书系列:
图书标签:
  • 架构
  • 云原生
  • 微服务
  • 架构,云原生,微服务,一致性,可用性,扩展性
  • 计算机
  • 技术
  • 开发_架构
  • 分布式
  • 云原生
  • 微服务
  • 架构
  • 实践
  • 开发
  • 运维
  • 容器化
  • Kubernetes
  • DevOps
  • 持续交付
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《持续演进的Cloud Native:云原生架构下微服务最佳实践》从架构、研发流程、团队文化三个角度详细介绍了如何构建Cloud Native。作者长期活跃在研发一线,具有丰富的架构设计经验,也曾亲身经历过很多失败的架构设计,如很多团队在实施微服务架构的时候,只强调拆分服务,根本没有理解微服务架构应该怎么做。《持续演进的Cloud Native:云原生架构下微服务最佳实践》就是想告诉读者,除了拆分服务,还要把哪些事做好,例如基础设施、一致性、性能、研发流程、团队文化等。

《持续演进的Cloud Native:云原生架构下微服务最佳实践》共分为10 章,第1 章从整体上描述了Cloud Native 的起源、组成及原则等;从第2 章到第7 章重点描述了微服务架构、敏捷基础设施及公共基础服务、可用性、可扩展性、性能、一致性等方面的设计实践;第8 章介绍了Serverless 和Service Mesh;第9 章介绍了如何构建研发流程;第10 章介绍了如何建设团队文化。

《持续演进的Cloud Native:云原生架构下微服务最佳实践》希望给技术管理者、架构师和有一定基础的技术人员提供帮助,特别是希望改变研发模式,从交付型软件过渡到云服务的传统软件企业开发者,此书将帮助你少走弯路。

作者简介

王启军,目前就职于华为公司架构部,负责华为公司的Cloud Native、微服务架构推进落地,前后参与了华为手机祥云4.0、物联网IoT 2.0的架构设计。曾任当当架构师,主导电商平台架构设计,包括订单、支付、价格、库存、物流等。曾就职于搜狐,负责手机微博的研发。十余年的技术历练,也曾作为技术负责人带领过近百人的团队。公众号“奔跑中的蜗牛”的作者。

目录信息

第1章 综述 1
1.1 Cloud Native的起源 1
1.2 Cloud Native的组成 4
1.3 Cloud Native背后的诉求 5
1.4 如何衡量Cloud Native的能力 5
1.5 Cloud Native的原则 6
第2章 微服务架构 11
2.1 微服务架构的起源 11
2.2 为什么采用微服务架构 12
2.2.1 单体架构与微服务架构 12
2.2.2 什么时候开始微服务架构 14
2.2.3 如何决定微服务架构的拆分粒度 14
2.3 微服务设计原则 15
2.4 微服务架构实施的先决条件 17
2.4.1 研发环境和流程上的转变 17
2.4.2 拆分前先做好解耦 18
2.5 微服务划分模式 20
2.5.1 基于业务复杂度选择服务划分方法 20
2.5.2 基于数据驱动划分服务 21
2.5.3 基于领域驱动划分服务 22
2.5.4 从已有单体架构中逐步划分服务 23
2.5.5 微服务拆分策略 24
2.5.6 如何衡量服务划分的合理性 25
2.6 微服务划分反模式 26
2.7 微服务API设计 28
2.7.1 优秀API的设计原则 28
2.7.2 服务间通信——RPC 28
2.7.3 序列化——Protobuf 30
2.7.4 服务间通信——RESTful 33
2.7.5 通过Swagger实现RESTful 36
2.7.6 通过Spring Boot、Springfox、Swagger实现RESTful 41
2.7.7 HTTP协议的进化——HTTP/2 46
2.7.8 HTTP/2和Protobuf的组合——gRPC 48
2.8 微服务框架 53
2.9 基于Dubbo框架实现微服务 54
2.10 基于Spring Cloud框架实现微服务 58
2.11 服务发现场景下的ZooKeeper与Etcd 67
2.12 微服务部署策略 68
2.12.1 服务独享数据库 69
2.12.2 服务独享虚拟机/容器 70
2.13 为什么总觉得微服务架构很别扭 70
第3章 敏捷基础设施及公共基础服务 73
3.1 传统基础设施面临的挑战 73
3.2 什么是敏捷基础设施 74
3.3 基于容器的敏捷基础设施 75
3.3.1 容器VS虚拟机 76
3.3.2 安装Docker 77
3.3.3 部署私有Docker Registry 79
3.3.4 基于Spring Boot、Maven、Docker构建微服务 79
3.3.5 基于docker-compose管理容器 84
3.4 基于公共基础服务的平台化 85
3.5 监控告警服务 86
3.5.1 监控数据采集 87
3.5.2 监控数据接收模式 87
3.5.3 通过时间序列数据库存储监控数据 88
3.5.4 开源监控系统实现Prometheus 88
3.5.5 通过Prometheus和Grafana监控服务 90
3.6 分布式消息中间件服务 96
3.6.1 分布式消息中间件的作用 97
3.6.2 业界常用的分布式消息中间件 98
3.6.3 Kafka的设计原理 99
3.6.4 为什么Kafka性能高 100
3.6.5 Kafka的数据存储结构 102
3.6.6 如何保证Kafka不丢消息 104
3.6.7 Kafka跨数据中心场景集群部署模式 106
3.7 分布式缓存服务 108
3.7.1 分布式缓存的应用场景 109
3.7.2 业界常用的分布式缓存Memcached 110
3.7.3 业界常用的分布式缓存——Redis 111
3.7.4 Redis常用的分布式缓存集群模式 112
3.7.5 基于Codis实现Redis分布式缓存集群 116
3.8 分布式任务调度服务 118
3.8.1 通过Tbschedule实现分布式任务调度 119
3.8.2 通过Elastic-Job实现分布式任务调度 123
3.9 如何生成分布式ID 126
3.9.1 UUID 126
3.9.2 SnowFlake 127
3.9.3 Ticket Server 128
3.9.4 小结 129
第4章 可用性设计 130
4.1 综述 130
4.1.1 可用性和可靠性的关系 130
4.1.2 可用性的衡量标准 131
4.1.3 什么降低了可用性 131
4.2 逐步切换 132
4.2.1 影子测试 132
4.2.2 蓝绿部署 133
4.2.3 灰度发布/金丝雀发布 134
4.3 容错设计 135
4.3.1 消除单点 136
4.3.2 特性开关 136
4.3.3 服务分级 137
4.3.4 降级设计 138
4.3.5 超时重试 139
4.3.6 隔离策略 152
4.3.7 熔断器 153
4.4 流控设计 157
4.4.1 限流算法 157
4.4.2 流控策略 159
4.4.3 基于Guava限流 160
4.4.4 基于Nginx限流 162
4.5 容量预估 163
4.6 故障演练 164
4.7 数据迁移 165
4.7.1 逻辑分离,物理不分离 166
4.7.2 物理分离 166
第5章 可扩展性设计 168
5.1 加机器能解决问题吗 168
5.2 横向扩展 169
5.3 AKF扩展立方体 170
5.4 如何扩展长连接 172
5.5 如何扩展数据库 175
5.5.1 X轴扩展——主从复制集群 175
5.5.2 Y轴扩展——分库、垂直分表 176
5.5.3 Z轴扩展——分片(sharding) 177
5.5.4 为什么要带拆分键 182
5.5.5 分片后的关联查询问题 183
5.5.6 分片扩容(re-sharding) 184
5.5.7 精选案例 187
5.6 如何扩展数据中心 190
5.6.1 两地三中心和同城多活 190
5.6.2 同城多活 191
5.6.3 异地多活 192
第6章 性能设计 194
6.1 性能指标 195
6.2 如何树立目标 195
6.3 如何寻找平衡点 196
6.4 如何定位瓶颈点 197
6.5 服务通信优化 198
6.5.1 同步转异步 198
6.5.2 阻塞转非阻塞 199
6.5.3 序列化 200
6.6 通过消息中间件提升写性能 201
6.7 通过缓存提升读性能 202
6.7.1 基于ConcurrentHashMap实现本地缓存 203
6.7.2 基于Guava Cache实现本地缓存 204
6.7.3 缓存的常用模式 205
6.7.4 应用缓存的常见问题 207
6.8 数据库优化 208
6.8.1 通过执行计划分析瓶颈点 208
6.8.2 为搜索字段创建索引 209
6.8.3 通过慢查询日志分析瓶颈点 210
6.8.4 通过提升硬件能力优化数据库 211
6.9 简化设计 212
6.9.1 转移复杂度 212
6.9.2 从业务角度优化 212
第7章 一致性设计 214
7.1 问题起源 214
7.2 基础理论 215
7.2.1 什么是分布式事务 216
7.2.2 CAP定理 218
7.2.3 BASE理论 219
7.2.4 Quorum机制(NWR模型) 219
7.2.5 租约机制(Lease) 220
7.2.6 状态机(Replicated State Machine) 221
7.3 分布式系统的一致性分类 222
7.3.1 以数据为中心的一致性模型 223
7.3.2 以用户为中心的一致性模型 226
7.3.3 业界常用的一致性模型 229
7.4 如何实现强一致性 230
7.4.1 两阶段提交 230
7.4.2 三阶段提交(3PC) 231
7.5 如何实现最终一致性 232
7.5.1 重试机制 232
7.5.2 本地记录日志 233
7.5.3 可靠事件模式 233
7.5.4 Saga事务模型 235
7.5.5 TCC事务模型 237
7.6 分布式锁 238
7.6.1 基于数据库实现悲观锁和乐观锁 239
7.6.2 基于ZooKeeper的分布式锁 241
7.6.3 基于Redis实现分布式锁 242
7.7 如何保证幂等性 244
7.7.1 幂等令牌(Idempotency Key) 244
7.7.2 在数据库中实现幂等性 246
第8章 未来值得关注的方向 247
8.1 Serverless 247
8.1.1 什么是Serverless 247
8.1.2 Serverless的现状 248
8.1.3 Serverless的应用场景 249
8.2 Service Mesh 250
8.2.1 什么是Service Mesh 250
8.2.2 为什么需要Service Mesh 252
8.2.3 Service Mesh的现状 253
8.2.4 Istio架构分析 255
第9章 研发流程 258
9.1 十二因子 258
9.2 为什么选择DevOps 261
9.3 自动化测试 263
9.3.1 单元测试 263
9.3.2 TDD 264
9.3.3 提交即意味着可测试 265
9.4 Code Review 265
9.4.1 Code Review的意义 265
9.4.2 Code Review的原则 266
9.4.3 Code Review的过程 267
9.5 流水线 267
9.5.1 持续交付 267
9.5.2 持续部署流水线 268
9.5.3 基于开源打造流水线 268
9.5.4 Amazon的流水线 271
9.5.5 开发人员自服务 271
9.6 为什么需要AIOps 272
9.7 基于数据和反馈持续改进 273
9.8 拥抱变化 274
9.9 代码即设计 274
第10章 团队文化 276
10.1 为什么团队文化如此重要 276
10.2 组织结构 278
10.2.1 团队规模导致的问题 278
10.2.2 康威定律 278
10.2.3 扁平化的组织 279
10.2.4 独裁的管理方式还是民主的管理方式 280
10.2.5 民主的团队如何做决策 282
10.3 环境氛围 282
10.3.1 公开透明的工作环境 282
10.3.2 学习型组织 283
10.3.3 减少正式的汇报 284
10.3.4 高效的会议 284
10.3.5 量化指标致死 286
10.4 管理风格 287
10.4.1 下属请假你会拒绝吗 287
10.4.2 为什么你招不到你想要的人 288
10.4.3 得到了所有人的认可,说明你并不是一个好的管理者 291
10.4.4 尽量避免用自己的权力去做决策 291
10.4.5 一屋不扫也可助你“荡平天下” 292
10.4.6 如何留下你想要的人293
10.5 经典案例 294
10.5.1 Instagram的团队文化 294
10.5.2 Netflix的团队文化 294
· · · · · · (收起)

读后感

评分

又是一本写云原生架构的好书。这本书与《未来架构》面临同样的难题,云原生这个问题太大,不像云、微服务架构这些问题那么相对紧凑,粒度小到可以被当作一个易于处理的点来对待,云原生更像是一个由这些可以被看作点的相关技术构成的体系,每一个点要想说清楚都至少需要一本书...

评分

又是一本写云原生架构的好书。这本书与《未来架构》面临同样的难题,云原生这个问题太大,不像云、微服务架构这些问题那么相对紧凑,粒度小到可以被当作一个易于处理的点来对待,云原生更像是一个由这些可以被看作点的相关技术构成的体系,每一个点要想说清楚都至少需要一本书...

评分

又是一本写云原生架构的好书。这本书与《未来架构》面临同样的难题,云原生这个问题太大,不像云、微服务架构这些问题那么相对紧凑,粒度小到可以被当作一个易于处理的点来对待,云原生更像是一个由这些可以被看作点的相关技术构成的体系,每一个点要想说清楚都至少需要一本书...

评分

又是一本写云原生架构的好书。这本书与《未来架构》面临同样的难题,云原生这个问题太大,不像云、微服务架构这些问题那么相对紧凑,粒度小到可以被当作一个易于处理的点来对待,云原生更像是一个由这些可以被看作点的相关技术构成的体系,每一个点要想说清楚都至少需要一本书...

评分

又是一本写云原生架构的好书。这本书与《未来架构》面临同样的难题,云原生这个问题太大,不像云、微服务架构这些问题那么相对紧凑,粒度小到可以被当作一个易于处理的点来对待,云原生更像是一个由这些可以被看作点的相关技术构成的体系,每一个点要想说清楚都至少需要一本书...

用户评价

评分

从学习曲线的角度来看,这本书的难度设置非常精妙。它非常友好地为初学者铺设了必要的知识桥梁,比如对容器化和虚拟化基础的简要回顾,确保读者不会在术语上迷失。然而,对于资深工程师,它又提供了足够的深度来激发思考,比如在讨论服务治理时,对各种容错机制(熔断、限流、降级)的取舍和权衡,作者并没有给出一个“万能公式”,而是引导读者根据自身业务场景进行定制化选择。这种亦步亦趋,又留有余地的讲解方式,使得不同经验水平的读者都能从中获得显著的提升。这本书像是为技术学习者量身定做的一张地图,既标明了主要干道,也提示了岔路口的风险,让人感到既踏实又充满探索的欲望。

评分

我阅读了许多关于微服务架构转型的书籍,但这本书在叙事风格上给我带来了耳目一新的感觉。它不像传统的教科书那样干巴巴地罗列理论,而是通过一系列生动的“场景重建”来阐述最佳实践。作者仿佛是一位经验丰富的架构师,将我们在实际项目中遇到的那些经典的、让人头疼的问题——比如分布式事务的僵局、跨服务调用的延迟黑洞——娓娓道来,然后,再逐步展示如何利用云原生提供的工具链来优雅地解决它们。这种“问题导向”的叙事结构,极大地增强了知识的代入感和实用性。我感觉自己不是在被动地接受信息,而是在与一位资深专家进行深度对话,共同拆解复杂的工程难题。对于那些正在经历或即将经历架构重构的工程师来说,这种实战化的切入角度,无疑比纯粹的理论推导更具指导价值。

评分

我必须得提一下这本书在“组织与文化变革”方面的内容,这往往是技术书籍中被忽略的薄弱环节。作者非常务实地指出,云原生转型不仅仅是技术的堆砌,更是组织架构和团队协作模式的重塑。书中关于DevOps文化如何落地、如何通过“You Build It, You Run It”的理念来打破开发与运维之间的壁垒,提供了许多可操作的建议和案例分析。这些内容并不局限于技术实现的细节,而是触及到了工程管理的核心。我特别喜欢书中提到的一些“软技能”实践,比如如何通过明确的SLA/SLO定义来量化团队的责任边界,这对于提升团队的交付效率和责任感非常有帮助。这本书的视野,超越了单纯的代码和基础设施,真正做到了技术与管理的高度融合。

评分

这本书的装帧设计给我留下了非常深刻的印象。封面采用了一种低饱和度的蓝色调,配合简洁的白色字体,整体给人一种既专业又富有未来感的视觉体验,非常符合“云原生”这个主题所蕴含的技术深度和前瞻性。内页的纸张质量也相当出色,触感温润,墨色清晰,即便是长时间阅读也不会觉得眼睛疲劳。我尤其欣赏它在排版上的用心,大量的图表和代码示例都经过精心布局,逻辑清晰,不会显得拥挤。比如,书中关于服务网格组件调用的架构图,那种分层和依赖关系的展示方式,比许多在线文档的示意图要直观得多,让人能迅速抓住核心概念。这不仅仅是一本技术书,更像是一件精心打磨的工艺品,每一个细节都体现出作者和出版社对读者的尊重,让人在阅读技术内容的同时,也能享受到阅读本身的愉悦。这种对阅读体验的重视,在当前快节奏的技术书籍出版市场中,显得尤为难得。

评分

这本书的深度和广度令人称奇。它没有仅仅停留在Kubernetes或Docker这些基础工具的表面操作上,而是深入剖析了支撑整个云原生生态的底层原理和设计哲学。特别是对“可观测性”那一章的论述,作者对Metrics、Tracing和Logging三者的关系进行了极富洞察力的剖析,不再是简单地介绍Prometheus或Jaeger,而是探讨了如何构建一个统一的、能够支撑快速故障排查和性能优化的数据观察体系。这种深入到底层的探究,让我对许多过去只是“会用”的组件,有了“为何如此设计”的根本理解。对于希望从“实现者”跃升到“设计者”的读者而言,这种对技术本质的挖掘,是极其宝贵的财富,它为我们构建更健壮、更具弹性的系统打下了坚实的理论基础。

评分

2019-03-13 初读; 2019-06-10重读;怎么说呢,大纲还是挺有意思的,要实现云原生需要什么,答曰:第一是基础,即敏捷的基础设置(数据库、缓存、队列、ID 生成 和 CT 调度等),其次是设计方面,体现在:可用性(降级、发布:蓝绿、金丝雀、影子)、可扩展性(扩容、partition)、性能(异步化提升吞吐,书中提到,kafka 的吞吐量是 db 的三四十倍,缓存提升读性能(redis 10w tps),CQRS 等)、一致性(各种模式)等等.. 整体来说,还是太过浅显 ... 当成一个 introduction 中的 introduction 吧 ...

评分

算是比较全面了,但all in的通病就是浅显。拿来串串体系还是可以的

评分

讽刺的是,最后一章所说的种种缺点都是华为有的,而作者在华为

评分

亲自验证,书是好书,如果能够仔细阅读,还是能引发思考,作者的角度更高,当然,同样的内容对于不同层次的人来说肯定收获不一样,不要相信@张岩Kris,当时差点信了,但是看过之后觉得还是值得,这兄弟既然这么牛,出本牛的书给我们看看啊,书里的内容不可能完全是自己的观点,书的作用是把晦涩难懂的理论通俗的讲出来,这本书做到了。

评分

很全面的经验之谈,只是限于篇幅,有些章节其实可以再深入一些

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有