云原生模式 设计拥抱变化 的软件若飞 宋净 电子工业出版社pdf下载

云原生模式 设计拥抱变化 的软件若飞 宋净 电子工业出版社百度网盘pdf下载

作者:
简介: 云原生模式 设计拥抱变化 的软件若飞 宋净 电子工业出版社
出版社:
出版时间:2020-08
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍




书名:云原生模式

定价:109.00

作者: 张若飞,宋净

ISBN: 9787121389139

出版日期:2020-08

出版社: 电子工业出版社




拥抱“云”,更多指的是如何设计你的应用程序,而不是你在哪里部署它们。本书是一本架构指南,指导你如何让应用程序在动态的、分布式的、虚拟的云世界中茁壮成长。本书介绍了云原生应用程序的多种思维模型,以及支持其构建的模式、实践和工具,同时提供了一些实际案例和专家建议,帮助你更好地开发和使用应用程序、数据、服务、路由等。本书分为两部分。 1 部分定义了云原生的上下文环境,并展示了软件部署环境的特点。2 部分深入探讨了云原生模式,包括请求 / 响应、事件驱动、断路器等。无论你是否有云原生的开发经验,通过本书提供的众多模式,一定可以更好地理解和掌握云原生开发。




1部分 云原生上下文

1章 什么是“云原生”...............................................................................................3

1.1 现代应用程序的需求 ...........................................................................................7

1.1.1 零停机时间 ...............................................................................................7

1.1.2 缩短反馈周期 ...........................................................................................8

1.1.3 移动端和多设备支持 ...............................................................................8

1.1.4 互联设备(物联网) .................................................................................9

1.1.5 数据驱动 ...................................................................................................9

1.2 云原生软件简介 .................................................................................................10

1.2.1 定义“云原生” .......................................................................................10

1.2.2 云原生软件的思维模型 .........................................................................12

1.2.3 云原生软件实战 .....................................................................................17

1.3 云原生与世界和平 .............................................................................................21

1.3.1 云和云原生 .............................................................................................22

1.3.2 什么不是云原生 .....................................................................................23

1.3.3 云原生的价值 .........................................................................................24

小结 ..............................................................................................................................26

2章 在生产环境中运行云原生应用程序. ...................................................................27

2.1 面临的困难 .........................................................................................................28

2.1.1 碎片化的变化 .........................................................................................30

2.1.2 有风险的部署 .........................................................................................31

2.1.3 认为变化是例外 .....................................................................................35

2.1.4 生产环境的不稳定性 .............................................................................35

2.2 解决办法 .............................................................................................................36

2.2.1 持续交付 .................................................................................................37

2.2.2 可重复性 .................................................................................................41

2.2.3 安全部署 .................................................................................................46

2.2.4 变化是一定的 .........................................................................................49

小结 ..............................................................................................................................52

3章 云原生软件平台................................................................................................53

3.1 云(原生)平台的发展 .....................................................................................54

3.1.1 从云计算开始 .........................................................................................54

3.1.2 云原生的“拨号音” ...............................................................................56

3.2 云原生平台的核心原则 .....................................................................................59

3.2.1 先聊聊容器 .............................................................................................60

3.2.2 支持“不断变化” ...................................................................................61

3.2.3 支持“高度分布式” ...............................................................................64

3.3 人员分工 .............................................................................................................68

3.4 云原生平台的其他功能 .....................................................................................70

3.4.1 平台支持整个软件开发生命周期 .........................................................70

3.4.2 安全性、变更控制和合规性(管控功能) ...........................................73

3.4.3 控制进入容器的东西 .............................................................................75

3.4.4 升级与安全漏洞修补 .............................................................................77

3.4.5 变更控制 .................................................................................................79

小结 ..............................................................................................................................81

2部分 云原生模式

4章 事件驱动微服务:不只是请求/响应. ..................................................................85

4.1 我们(通常)学习的是命令式编程 .................................................................86

4.2 重新介绍事件驱动的计算 .................................................................................88

4.3 我的食谱 .....................................................................................................89

4.3.1 请求 / 响应 ..............................................................................................90

4.3.2 事件驱动 .................................................................................................96

4.4 命令查询职责分离模式 ...................................................................................106

4.5 不同的风格,相同的挑战 ...............................................................................108

小结 ............................................................................................................................110

5章 应用程序冗余:水平伸缩和无状态. .................................................................111

5.1 云原生应用程序会部署许多实例 ...................................................................113

5.2 云环境中的有状态服务 ...................................................................................114

5.2.1 解耦单体程序并绑定到数据库 ...........................................................115

5.2.2 错误处理会话状态 ...............................................................................119

5.3 HTTP会话和黏性会话 .....................................................................................133

5.4 有状态服务和无状态应用程序 .......................................................................136

5.4.1 有状态服务是特殊的服务 ...................................................................136

5.4.2 让应用程序变得无状态 .......................................................................138

小结 ............................................................................................................................143

6章 应用程序配置:不只是环境变量.....................................................................144

6.1 为什么要讨论配置 ...........................................................................................145

6.1.1 动态伸缩 — 增加和减少应用程序实例的数量 ...............................146

6.1.2 基础设施变化会导致配置变化 ...........................................................146

6.1.3 零停机时间更新应用程序配置 ...........................................................148

6.2 应用程序的配置层 ...........................................................................................148

6.3 注入系统/环境值 ..............................................................................................153

6.3.1 实际案例 :使用环境变量进行配置 ...................................................153

6.4 注入应用程序配置 ...........................................................................................162

6.4.1 配置服务器简介 ...................................................................................163

6.4.2 安全方面的额外需求 ...........................................................................171

6.4.3 实际案例 :使用配置服务器的应用程序配置 ...................................171

小结 ............................................................................................................................174

7章 应用程序生命周期:考虑不断的变化..............................................................175

7.1 运维同理心 .......................................................................................................177

7.2 单实例应用程序生命周期和多实例应用程序生命周期 .........................................178

7.2.1 蓝 / 绿升级 ............................................................................................182

7.2.2 滚动升级 ...............................................................................................183

7.2.3 并行部署 ...............................................................................................184

7.3 协调多个不同的应用程序生命周期 ...............................................................187

7.4 实际案例:密码轮换和应用程序生命周期 ...................................................191

7.5 处理临时运行时环境 .......................................................................................200

7.6 应用程序生命周期状态的可见性 ...................................................................202

7.6.1 实际案例 :健康端点和探测 ...............................................................207

7.7 无服务器架构 ...................................................................................................210

小结 ............................................................................................................................212

8章 如何访问应用程序:服务、路由和服务发现...................................................214

8.1 服务抽象 ...........................................................................................................217

8.1.1 服务示例 :用 Google 进行搜索 .........................................................218

8.1.2 服务示例 :我们的博客聚合器 ...........................................................220

8.2 动态路由 ...........................................................................................................221

8.2.1 服务端负载均衡 ...................................................................................221

8.2.2 客户端负载均衡 ...................................................................................222

8.2.3 路由刷新 ...............................................................................................223

8.3 服务发现 ...........................................................................................................226

8.3.1 Web 的服务发现 ...................................................................................229

8.3.2 服务发现和客户端负载均衡 ...............................................................230

8.3.3 Kubernetes 中的服务发现 ....................................................................232

8.3.4 实际案例 :使用服务发现 ...................................................................234

小结 ............................................................................................................................237

9章 交互冗余:重试和其他控制循环.....................................................................238

9.1 请求重试 ...........................................................................................................240

9.1.1 基本的请求重试 ...................................................................................240

9.1.2 实际案例 :简单的重试 .......................................................................241

9.1.3 重试 :可能出了什么问题 ...................................................................246

9.1.4 创建一个重试风暴 ...............................................................................247

9.1.5 实际案例 :创建一个重试风暴 ...........................................................248

9.1.6 避免重试风暴 :友好的客户端 ...........................................................259

9.1.7 实际案例 :成为一个更友好的客户端 ...............................................259

9.1.8 什么时候不需要重试 ...........................................................................265

9.2 回逻辑 ...........................................................................................................266

9.2.1 实际案例 :实现回逻辑 ...................................................................266

9.3 控制循环 ...........................................................................................................272

9.3.1 了解控制循环的类型 ...........................................................................272

9.3.2 如何控制控制循环 ...............................................................................273

小结 ............................................................................................................................275

10章 前沿服务:断路器和API网关........................................................................277

10.1 断路器 .............................................................................................................279

10.1.1 软件中的断路器 ...............................................................................279

10.1.2 实现一个断路器 ...............................................................................282

10.2 API网关 ..........................................................................................................294

10.2.1 云原生软件中的 API 网关 ..............................................................296

10.2.2 API 网关拓扑 ...................................................................................297

10.3 服务网格 .........................................................................................................299

10.3.1 挎斗 ...................................................................................................299

10.3.2 控制平面 ...........................................................................................302

小结 ............................................................................................................................304

11章 故障排除:如同大海捞针..............................................................................305

11.1 应用程序日志 .................................................................................................306

11.2 应用程序度量指标 .........................................................................................310

11.2.1 从云原生应用程序中获取指标 .......................................................311

11.2.2 由云原生应用程序推送指标 ...........................................................314

11.3 分布式跟踪 .....................................................................................................317

11.3.1 跟踪器的输出 ...................................................................................320

11.3.2 通过 Zipkin 组合跟踪轨迹 ..............................................................323

11.3.3 实现细节 ...........................................................................................328

小结 ............................................................................................................................329

12章 云原生数据:打破数据单体..........................................................................331

12.1 每个微服务都需要一个缓存 .........................................................................334

12.2 从请求/响应到事件驱动 ................................................................................337

12.3 事件日志 .........................................................................................................339

12.3.1 实际案例 :实现一个事件驱动的微服务 .......................................341

12.3.2 主题和队列的新特点 .......................................................................354

12.3.3 事件载荷 ...........................................................................................358

12.3.4 幂等性 ...............................................................................................360

12.4 事件溯源 .........................................................................................................361

12.4.1 到目前为止的旅程 ...........................................................................361

12.4.2 真实来源 ...........................................................................................363

12.4.3 实际案例 :实现事件溯源 ...............................................................365

12.5 我们只是介绍了一些皮毛 .............................................................................368

小结 ...............................................................




^_^:033c02bbcf18ef9c78048934a61058ca



^_^:f7a2cfdd4e63ffde27ba5d69423b3f3a