书籍详情

云原生模式

云原生模式

作者:[美] Cornelia Davis(科妮莉亚・戴维斯) 著,张若飞 译

出版社:电子工业出版社

出版时间:2020-08-01

ISBN:9787121389139

定价:¥109.00

购买这本书可以去
内容简介
  拥抱“云”,更多指的是如何设计你的应用程序,而不是你在哪里部署它们。本书是一本架构指南,指导你如何让应用程序在动态的、分布式的、虚拟的云世界中茁壮成长。本书介绍了云原生应用程序的多种思维模型,以及支持其构建的模式、实践和工具,同时提供了一些实际案例和专家建议,帮助你更好地开发和使用应用程序、数据、服务、路由等。本书分为两部分。第 1 部分定义了云原生的上下文环境,并展示了软件部署环境的特点。第2 部分深入探讨了云原生模式,包括请求 / 响应、事件驱动、断路器等。无论你是否有云原生的开发经验,通过本书提供的众多模式,一定可以更好地理解和掌握云原生开发。
作者简介
  Cornelia Davis 是 Pivotal 公司的技术副总裁,她负责为 Pivotal 公司和 Pivotal 公司的客户制定技术战略。目前,她正在研究如何将各种云计算模型(基础设施即服务、应用程序即服务、容器即服务和函数即服务 ) 整合到一个全面的产品中,使 IT 组织能够在**层面上运行。Cornelia 在图像处理、科学可视化、分布式系统和 web 应用程序架构,以及云原生平台方面有超过 30 年的经验。Cornelia 拥有加州州立大学北岭分校的计算机科学本科和硕士学位,并在印第安纳大学进一步研究了计算机原理和编程语言。因为内心一直想当一名老师,所以 Cornelia 在过去的 30 年里,一直致力于开发更好的软件,以及培养更好的软件开发人员。空闲的时候,Cornelia 更喜欢瑜伽锻炼和烹饪。张若飞,TGO会员,曾任易通贷CTO,宜人贷首席架构师,在雅虎北研、金山云、POLYCOM等公司担任架构师。十余年互联网研发及技术管理经验,管理过过百人的技术研发团队,对搭建海量数据、大型分布式系统有丰富经验,对互联网金融领域有广泛涉猎。著有十余本技术译著,包括《云原生Java:Spring Boot、Spring Cloud与Cloud Foundry弹性系统设计》《面向可伸缩架构》《代码不朽:编写可维护软件的十大则》《给大忙人看的JavaSE 8》《Grails指南》等书,总计300余万字。
目录
第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
小结 ...............................................................
猜您喜欢

读书导航