-
内容大纲
拥抱“云”,更多指的是如何设计你的应用程序,而不是你在哪里部署它们。本书是一本架构指南,指导你如何让应用程序在动态的、分布式的、虚拟的云世界中茁壮成长。本书介绍了云原生应用程序的多种思维模型,以及支持其构建的模式、实践和工具,同时提供了一些实际案例和专家建议,帮助你更好地开发和使用应用程序、数据、服务、路由等。
本书分为两部分。第1部分定义了云原生的上下文环境,并展示了软件部署环境的特点。第2部分深入探讨了云原生模式,包括请求/响应、事件驱动、断路器等。无论你是否有云原生的开发经验,通过本书提供的众多模式,一定可以更好地理解和掌握云原生开发。 -
作者介绍
科妮莉亚·戴维斯(Cornelia Davis)是Pivotal公司的技术副总裁,她负责为Pivotal公司和Pivotal公司的客户制定技术战略。目前,她正在研究如何将各种云计算模型(基础设施即服务、应用程序即服务、容器即服务和函数即服务)整合到一个全面的产品中,使IT组织能够在最高层面上运行。 Cornelia在图像处理、科学可视化、分布式系统和Web应用程序架构,以及云原生平台方面有超过三十年的工作经验。她拥有加州州立大学北岭分校的计算机科学本科和硕士学位,并在印第安纳大学进一步研究了计算机原理和编程语言。 因为内心一直想当一名老师,所以Cornelia在过去的三十年里,一直致力于开发更好的软件,以及培养更好的软件开发人员。 空闲的时候,Cornelia喜欢做瑜伽和烹饪。 -
目录
第1部分 云原生上下文
第1章 什么是“云原生”
1.1 现代应用程序的需求
1.1.1 零停机时间
1.1.2 缩短反馈周期
1.1.3 移动端和多设备支持
1.1.4 互联设备(物联网)
1.1.5 数据驱动
1.2 云原生软件简介
1.2.1 定义“云原生”
1.2.2 云原生软件的思维模型
1.2.3 云原生软件实战
1.3 云原生与世界和平
1.3.1 云和云原生
1.3.2 什么不是云原生
1.3.3 云原生的价值
小结
第2章 在生产环境中运行云原生应用程序
2.1 面临的困难
2.1.1 碎片化的变化
2.1.2 有风险的部署
2.1.3 认为变化是例外
2.1.4 生产环境的不稳定性
2.2 解决办法
2.2.1 持续交付
2.2.2 可重复性
2.2.3 安全部署
2.2.4 变化是一定的
小结
第3章 云原生软件平台
3.1 云(原生)平台的发展
3.1.1 从云计算开始
3.1.2 云原生的“拨号音”
3.2 云原生平台的核心原则
3.2.1 先聊聊容器
3.2.2 支持“不断变化”
3.2.3 支持“高度分布式”
3.3 人员分工
3.4 云原生平台的其他功能
3.4.1 平台支持整个软件开发生命周期
3.4.2 安全性、变更控制和合规性(管控功能)
3.4.3 控制进入容器的东西
3.4.4 升级与安全漏洞修补
3.4.5 变更控制
小结
第2部分 云原生模式
第4章 事件驱动微服务:不只是请求/响应
4.1 我们(通常)学习的是命令式编程
4.2 重新介绍事件驱动的计算
4.3 我的全球食谱
4.3.1 请求/响应
4.3.2 事件驱动
4.4 命令查询职责分离模式
4.5 不同的风格,相同的挑战
小结
第5章 应用程序冗余:水平伸缩和无状态
5.1 云原生应用程序会部署许多实例
5.2 云环境中的有状态服务
5.2.1 解耦单体程序并绑定到数据库
5.2.2 错误处理会话状态
5.3 HTTP会话和黏性会话
5.4 有状态服务和无状态应用程序
5.4.1 有状态服务是特殊的服务
5.4.2 让应用程序变得无状态
小结
第6章 应用程序配置:不只是环境变量
6.1 为什么要讨论配置
6.1.1 动态伸缩-增加和减少应用程序实例的数量
6.1.2 基础设施变化会导致配置变化
6.1.3 零停机时间更新应用程序配置
6.2 应用程序的配置层
6.3 注入系统/环境值
6.3.1 实际案例:使用环境变量进行配置
6.4 注入应用程序配置
6.4.1 配置服务器简介
6.4.2 安全方面的额外需求
6.4.3 实际案例:使用配置服务器的应用程序配置
小结
第7章 应用程序生命周期:考虑不断的变化
7.1 运维同理心
7.2 单实例应用程序生命周期和多实例应用程序生命周期
7.2.1 蓝/绿升级
7.2.2 滚动升级
7.2.3 并行部署
7.3 协调多个不同的应用程序生命周期
7.4 实际案例:密码轮换和应用程序生命周期
7.5 处理临时运行时环境
7.6 应用程序生命周期状态的可见性
7.6.1 实际案例:健康端点和探测
7.7 无服务器架构
小结
第8章 如何访问应用程序:服务、路由和服务发现
8.1 服务抽象
8.1.1 服务示例:用Google进行搜索
8.1.2 服务示例:我们的博客聚合器
8.2 动态路由
8.2.1 服务端负载均衡
8.2.2 客户端负载均衡
8.2.3 路由刷新
8.3 服务发现
8.3.1 Web的服务发现
8.3.2 服务发现和客户端负载均衡
8.3.3 Kubernetes中的服务发现
8.3.4 实际案例:使用服务发现
小结
第9章 交互冗余:重试和其他控制循环
9.1 请求重试
9.1.1 基本的请求重试
9.1.2 实际案例:简单的重试
9.1.3 重试:可能出了什么问题
9.1.4 创建一个重试风暴
9.1.5 实际案例:创建一个重试风暴
9.1.6 避免重试风暴:友好的客户端
9.1.7 实际案例:成为一个更友好的客户端
9.1.8 什么时候不需要重试
9.2 回退逻辑
9.2.1 实际案例:实现回退逻辑
9.3 控制循环
9.3.1 了解控制循环的类型
9.3.2 如何控制控制循环
小结
第10章 前沿服务:断路器和API网关
10.1 断路器
10.1.1 软件中的断路器
10.1.2 实现一个断路器
10.2 API网关
10.2.1 云原生软件中的API网关
10.2.2 API网关拓扑
10.3 服务网格
10.3.1 挎斗
10.3.2 控制平面
小结
第11章 故障排除:如同大海捞针
11.1 应用程序日志
11.2 应用程序度量指标
11.2.1 从云原生应用程序中获取指标
11.2.2 由云原生应用程序推送指标
11.3 分布式跟踪
11.3.1 跟踪器的输出
11.3.2 通过Zipkin组合跟踪轨迹
11.3.3 实现细节
小结
第12章 云原生数据:打破数据单体
12.1 每个微服务都需要一个缓存
12.2 从请求/响应到事件驱动
12.3 事件日志
12.3.1 实际案例:实现一个事件驱动的微服务
12.3.2 主题和队列的新特点
12.3.3 事件载荷
12.3.4 幂等性
12.4 事件溯源
12.4.1 到目前为止的旅程
12.4.2 真实来源
12.4.3 实际案例:实现事件溯源
12.5 我们只是介绍了一些皮毛
小结
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...