作品简介
拥抱“云”,更多指的是如何设计你的应用程序,而不是你在哪里部署它们。《云原生模式》是一本架构指南,指导你如何让应用程序在动态的、分布式的、虚拟的云世界中茁壮成长。本书介绍了云原生应用程序的多种思维模型,以及支持其构建的模式、实践和工具,同时提供了一些实际案例和专家建议,帮助你更好地开发和使用应用程序、数据、服务、路由等。本书分为两部分。第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 什么是“云原生”
1.1 现代应用程序的需求
1.2 云原生软件简介
1.3 云原生与世界和平
小结
2 在生产环境中运行云原生应用程序
2.1 面临的困难
2.2 解决办法
小结
3 云原生软件平台
3.1 云(原生)平台的发展
3.2 云原生平台的核心原则
3.3 人员分工
3.4 云原生平台的其他功能
小结
第2部分 云原生模式
4 事件驱动微服务:不只是请求/响应
4.1 我们(通常)学习的是命令式编程
4.2 重新介绍事件驱动的计算
4.3 我的全球食谱
4.4 命令查询职责分离模式
4.5 不同的风格,相同的挑战
小结
5 应用程序冗余:水平伸缩和无状态
5.1 云原生应用程序会部署许多实例
5.2 云环境中的有状态服务
5.3 HTTP会话和黏性会话
5.4 有状态服务和无状态应用程序
小结
6 应用程序配置:不只是环境变量
6.1 为什么要讨论配置
6.2 应用程序的配置层
6.3 注入系统/环境值
6.4 注入应用程序配置
小结
7 应用程序生命周期:考虑不断的变化
7.1 运维同理心
7.2 单实例应用程序生命周期和多实例应用程序生命周期
7.3 协调多个不同的应用程序生命周期
7.4 实际案例:密码轮换和应用程序生命周期
7.5 处理临时运行时环境
7.6 应用程序生命周期状态的可见性
7.7 无服务器架构
小结
8 如何访问应用程序:服务、路由和服务发现
8.1 服务抽象
8.2 动态路由
8.3 服务发现
小结
9 交互冗余:重试和其他控制循环
9.1 请求重试
9.2 回退逻辑
9.3 控制循环
小结
10 前沿服务:断路器和API网关
10.1 断路器
10.2 API网关
10.3 服务网格
小结
11 故障排除:如同大海捞针
11.1 应用程序日志
11.2 应用程序度量指标
11.3 分布式跟踪
小结
12 云原生数据:打破数据单体
12.1 每个微服务都需要一个缓存
12.2 从请求/响应到事件驱动
12.3 事件日志
12.4 事件溯源
12.5 我们只是介绍了一些皮毛
小结