本书的组织路线图
本书分为四部分,共计16章。
第一部分内容为从代码到生产的云原生之旅奠定基础,帮助你更好地理解本书其他部分所涉及的主题,并将它们正确定位在整个云原生的全景图中。
■ 第1章是对云原生全景的介绍,包括云原生的定义、云原生应用的基本属性,以及支撑它们的流程。
■ 第2章涵盖了云原生开发的原则,并指导你首次亲身体验构建一个最小的Spring Boot应用,并将其作为一个容器部署到Kubernetes中。
第二部分介绍了使用Spring Boot和Kubernetes构建生产就绪的云原生应用的主要实践和模式。
■ 第3章涵盖了启动一个新的云原生项目的基础知识,包括组织代码库、管理依赖关系和定义部署流水线的提交阶段的策略。你将学习如何使用Spring MVC和Spring Boot Test实现和测试REST API。
■ 第4章讨论了外部化配置的重要性,并介绍了Spring Boot应用的一些可用方案,包括属性文件、环境变量和Spring Cloud Config的配置服务。
■ 第5章主要介绍了云中的数据服务,并展示如何使用Spring Data JDBC向Spring Boot应用添加数据持久化功能。你将学习如何使用Flyway管理生产环境中的数据以及使用Testcontainers进行测试的策略。
■ 第6章是关于容器的,我们将学习关于Docker的更多知识,以及如何使用Dockerfile和Cloud Native Buildpacks将Spring Boot应用打包为容器镜像。
■ 第7章讨论了Kubernetes,包括服务发现、负载均衡、可扩展性和本地开发工作流程。你还会学习将Spring Boot应用部署到Kubernetes集群的更多知识。
第三部分涵盖了云中分布式系统的基本属性和模式,包括韧性、安全性、可扩展性和API网关。这部分还介绍了反应式编程和事件驱动架构。
■ 第8章介绍了反应式编程和Spring反应式技术栈(包括Spring WebFlux和Spring Data R2DBC)的主要特性,你还会学习如何使用Reactor项目使应用更具韧性。
■ 第9章涵盖了API网关模式以及如何使用Spring Cloud Gateway构建边缘服务。你将学习如何使用Spring Cloud和Resilience4J构建有韧性的应用,在这个过程中会使用重试、超时、回退、断路器和限流器等模式。
■ 第10章描述了事件驱动架构,并教你使用Spring Cloud Function、Spring Cloud Stream和RabbitMQ来实现该架构。
■ 第11章是关于安全的,向你展示了如何使用Spring Security、OAuth2、OpenID Connect和Keycloak在云原生系统中实现认证。它还描述了当系统使用单页应用时,如何解决安全问题,如CORS和CSRF。
■ 第12章继续安全之旅,涵盖了如何使用OAuth2和Spring Security在分布式系统中实现委托访问、保护API和数据,并根据用户的角色进行授权。
第四部分指导你完成最后几个步骤,使你的云原生应用为生产做好准备,解决了可观测性、配置管理、Secret管理和部署策略等问题。它还涵盖了Serverless和原生镜像。
■ 第13章介绍了如何利用Spring Boot Actuator、OpenTelemetry和Grafana可观测性技术栈以使你的云原生应用支持可观测性。你将学习如何配置Spring Boot应用,以产生重要的遥测数据,如日志、健康状况、度量、跟踪等。
■ 第14章涉及高级配置和Secret管理策略,包括Kubernetes原生方案(如ConfigMap和Secret)以及Kustomize。
■ 第15章指导你完成云原生之旅的最后一个步骤,并讲解如何配置Spring Boot的生产环境。然后,我们将会为应用设置持续部署,采用GitOps策略将它们部署到公有云的Kubernetes集群中。
■ 第16章涉及Serverless架构以及基于Spring Native和Spring Cloud Function的函数。你还会了解Knative及其强大的功能,它在Kubernetes之上提供了卓越的开发者体验。
一般来说,我建议从第1章开始,按顺序阅读每一章。如果你喜欢根据自己的兴趣以不同的顺序阅读各章,请确保先阅读完第1~3章,以便更好地理解全书使用的术语、模式和策略。然而,因为每一章都建立在前一章的基础之上,所以如果你决定不按顺序阅读,可能会缺少一些背景知识。