SummarySummary 云原生 Spring 实战 (MEAP)欢迎第 1 章 云原生简介 1.1 什么是云原生 1.1.1 什么是云原生 1.2 云和云计算模型 1.2.1 基础设施即服务1.2.2 容器即服务1.2.3 平台即服务1.2.4 功能即服务1.2.5 软件即服务 1.3 云原生应用的特性 1.3.1 可扩展性1.3.2 松耦合1.3.3 强适应性1.3.4 可观测性1.3.5 可管理性 1.4 支持云原生的文化和实践 1.4.1 自动化1.4.2 持续交付1.4.3 DevOps 1.5 上云是最好的选择吗? 1.5.1 速度1.5.2 韧性1.5.3 规模1.5.4 成本 1.6 云原生拓扑 1.6.1 容器1.6.2 编排1.6.3 无服务器架构 1.7 云原生应用架构 1.7.1 从分层到微服务到更高级别1.7.2 基于服务的云原生应用体系结构 1.8 总结 第 2 章 云原生模式和技术 2.1 云原生开发原则:十二要素及其他 2.1.1 一份基准代码对应一个应用2.1.2 API 优先2.1.3 依赖管理2.1.4 设计、构建、发布、运行2.1.5 配置、证书、代码2.1.6 日志2.1.7 可丢弃2.1.8 后端服务2.1.9 环境一致性2.1.10 管理员进程2.1.11 端口绑定2.1.12 无状态进程2.1.13 并发2.1.14 遥测2.1.15 认证和授权 2.2 使用 Spring 构建云原生应用 2.2.1 Spring 全景概览2.2.2 创建 Spring Boot 应用 2.3 使用 Docker 容器化应用 2.3.1 Docker 介绍:镜像和容器2.3.2 运行 Spring 应用容器 2.4 使用 Kubernetes 管理容器 2.4.1 介绍 Kubernetes 的 Deployment、Pod 和 Service2.4.2 在 Kubernetes 是运行 Spring 应用 2.5 云原生应用 —— 极地书店 2.5.1 理解系统需求2.5.2 工程中用到的技术和模式 2.6 总结 第 3 章 进行云原生应用开发 3.1 创建云原生项目 3.1.1 一份基准代码对应一个应用3.1.2 使用 Maven 或 Gradel 管理依赖 3.2 使用内嵌服务器 3.2.1 可执行 JAR 和内嵌服务:为云做好准备3.2.2 理解 一个请求一个线程 模式3.2.3 配置内嵌 Tomcat 3.3 使用 Spring MVC 构建 RESTful 应用 3.3.1 REST API 第一,业务逻辑第二3.3.2 使用 Spring MVC 实现 REST API3.3.3 数据校验和出错处理3.3.4 为未来需求扩展 API 3.4 使用 Spring 测试 RESTful 应用 3.4.1 使用 JUnit 5 进行单元测试3.4.2 使用 @SpringBootTest 进行集成测试3.4.3 使用 @WebMvcTest 测试 REST 控制器3.4.4 使用 @JsonTest 测试 JSON 序列化 3.5 使用 GitHub Action 进行持续集成 3.5.1 使用 GitHub Action 进行自动构建和测试 3.6 总结 第 4 章 配置管理外部化 4.1 Spring 中的配置:properties 和 profiles 4.1.1 Properties:键值对4.1.2 Profiles:特性标志和配置分组 4.2 外部化配置:一个构建多个配置 4.2.1 命令行参数配置应用4.2.2 JVM 系统属性配置应用4.2.3 环境变量配置应用 4.3 用 Spring Config Server 进行集中化配置管理 4.3.1 使用 Git 存储配置数据4.3.2 设置 Config Server4.3.3 使 Config Server 更有韧性4.3.4 理解 Config Server 的 Rest API 4.4 通过 Spring Cloud Config Client 使用配置服务 4.4.1 设置 Config Client4.4.2 使 Config Client 更有韧性4.4.3 运行时刷新配置 4.4 总结