来源书籍

Cloud Native Spring in Action With Spring Boot and Kubernetes

框架类

- **高浓度**:不是操作手册式的"点击这里",而是持续解释架构决策的"为什么"——例如为什么云原生 强调水平扩展而非垂直扩展、为什么响应式编程用事件循环替代 thread-per-request、为什么要用 熔断器/重试/超时组合而不是单一机制、为什么密钥不该存在 ConfigMap 里、GitOps 为什么比传统 CD 更适合 Kubernetes。前言作者自述"guiding principle was to provide relevant, real-world examples",第一章通篇是云原生的定义辨析(cloud vs cloud native、三个P、五大属性、 DevOps 的五个"不是什么"),信息浓度很高。 - **低稳定性**:全书示例代码严格绑定 Java 17 + Spring Boot 2.7 + Gradle,并且深度耦合一整套 2022-2023 年时间点的工具链版本:Docker Compose、Tilt、Octant(已停止维护)、Kustomize、 GitHub Actions、Argo CD、Knative、GraalVM + Spring Native(Spring Native 项目后已被 Spring Boot 3 内置的 AOT 处理取代)。这些工具的具体用法、CLI 参数、配置格式会随版本演进 失效,这类内容需要读者自行对照当前版本核实。 综合落在**工程实践**象限:值得精读吸收其架构决策的思路,但不能把书中具体命令/配置当作 当前最佳实践直接照搬。

类别清单覆盖

8/8

已覆盖 7 补充生成 1 未覆盖 0

全书概览

Cloud Native Spring in Action: With Spring Boot and Kubernetes

  • Skill 版本:v1
  • 类别:框架类(以 Spring/Spring Boot 生态的设计与用法为主线,Kubernetes 作为部署目标平台)

四象限评级:工程实践(高信息浓度 × 低稳定性)

理由

  • 高浓度:不是操作手册式的”点击这里”,而是持续解释架构决策的”为什么”——例如为什么云原生 强调水平扩展而非垂直扩展、为什么响应式编程用事件循环替代 thread-per-request、为什么要用 熔断器/重试/超时组合而不是单一机制、为什么密钥不该存在 ConfigMap 里、GitOps 为什么比传统 CD 更适合 Kubernetes。前言作者自述”guiding principle was to provide relevant, real-world examples”,第一章通篇是云原生的定义辨析(cloud vs cloud native、三个P、五大属性、 DevOps 的五个”不是什么”),信息浓度很高。
  • 低稳定性:全书示例代码严格绑定 Java 17 + Spring Boot 2.7 + Gradle,并且深度耦合一整套 2022-2023 年时间点的工具链版本:Docker Compose、Tilt、Octant(已停止维护)、Kustomize、 GitHub Actions、Argo CD、Knative、GraalVM + Spring Native(Spring Native 项目后已被 Spring Boot 3 内置的 AOT 处理取代)。这些工具的具体用法、CLI 参数、配置格式会随版本演进 失效,这类内容需要读者自行对照当前版本核实。

综合落在工程实践象限:值得精读吸收其架构决策的思路,但不能把书中具体命令/配置当作 当前最佳实践直接照搬。

章节进度追踪表

章节号 章节标题 精读/略读 状态 卡片数
01 Introduction to cloud native 精读 done 13
02 Cloud native patterns and technologies 精读 done 15
03 Getting started with cloud native development 精读 done 9
04 Externalized configuration management 精读 done 5
05 Persisting and managing data in the cloud 精读 done 7
06 Containerizing Spring Boot 精读 done 7
07 Kubernetes fundamentals for Spring Boot 精读 done 6
08 Reactive Spring: Resilience and scalability 精读 done 9
09 API gateway and circuit breakers 精读 done 9
10 Event-driven applications and functions 精读 done 6
11 Security: Authentication and SPA 精读 done 6
12 Security: Authorization and auditing 精读 done 5
13 Observability and monitoring 精读 done 6
14 Configuration and secrets management 精读 done 8
15 Continuous delivery and GitOps 精读 done 6
16 Serverless, GraalVM, and Knative 精读 done 5
A 附录:Setting up your development environment 略读 done 0
B 附录:Kubernetes in production with DigitalOcean 略读 done 0

理由备注: - 1-16 章:每章都在讲解某个模式/原理/概念的实质性内容(云原生属性、12-Factor、响应式流、 熔断器、事件驱动、OAuth2/OIDC、可观测性四支柱、GitOps、Serverless),命中”概念类内容 强制生卡”规则,标记精读。 - 附录 A:纯环境搭建步骤(安装 JDK/Docker/kubectl 等),无原理性内容,略读。 - 附录 B:主要是在 DigitalOcean 上创建集群的操作步骤(点击/命令清单),偶有生产环境考量但 未展开原理,略读。

实践卡进度

序号 实践标题 实践方式 状态 关联章节 产出
1 给一个真实服务补齐熔断重试超时组合 真实任务 done 第8/9章 接入前后故障注入对比记录
2 审计一个真实项目的密钥管理是否符合最小暴露原则 证据验证 done 第14章 密钥存放现状清单与整改建议

待关联术语

术语名 出现章节 一句话语境
macroservices 01 讨论微服务过度拆分的反思时提到的替代思路,减少组件数量降低复杂度,未展开具体做法
citadel 架构 01 一种由中心单体+周边微服务组成的架构风格,仅提及名字未展开
modular monolith 01 Simon Brown 提出的术语,强调单体也能做到松耦合高内聚,未展开具体实现手法
domain-driven design / hexagonal architecture 03 提及”想让业务逻辑独立于持久化和API,可以进一步了解DDD和六边形架构”,未展开讲解具体做法
HashiCorp Vault / Consul / Alibaba Nacos / Apache Zookeeper 04 作为 Spring Cloud 配置服务的可插拔后端选项列出,未展开各自实现原理
AWS Parameter Store/Secrets Manager、Azure Key Vault、GCP Secret Manager 04 云厂商托管配置/密钥服务,仅作为选型列表提及
Liquibase 05 与 Flyway 并列的数据库版本控制工具,仅提及名字未展开
Jib 06 Google 出品的 Gradle/Maven 插件,另一种不写 Dockerfile 打包容器镜像的方式,仅提及名字未展开
Helm 07 类比操作系统包管理器的 Kubernetes 应用打包/安装工具,仅提及概念未展开使用细节
Linkerd / service mesh / sidecar 07 举例说明多容器 Pod 场景,未展开 service mesh 完整机制
Spring Cloud Contract / 消费者驱动契约测试 08 提及可用于自动检测下游API变更,未展开具体用法
Hystrix 08 Netflix 的熔断库,提及已进入维护模式被 Resilience4J 取代,未展开原理
RxJava / Vert.x 08 与 Project Reactor 并列的响应式流实现,仅提及名字
Spring for GraphQL 09 提及可用于网关层实现API聚合(API composition),未展开
Ambassador Emissary / Contour / Ingress NGINX 09 列举的 Ingress Controller 实现,仅提及名字
Istio 09 提及可作为处理集群网络配置的 service mesh,未展开
STOMP / MQTT 10 RabbitMQ 支持的其他消息协议,仅提及名字
SAML 2.0 11 Keycloak 支持的另一种认证协议,仅提及名字未展开
AppAuth 11 移动端 OIDC/OAuth2 客户端库,仅提及名字
Spring Authorization Server 11 Spring 官方的自建授权服务器项目,作为 Keycloak 的替代选项提及
OpenZipkin / OpenTracing / OpenCensus 13 分布式追踪领域早期/并列标准,提及已并入或被 OpenTelemetry 取代,未展开
Spring Cloud Sleuth / Micrometer Tracing 13 Spring 生态的追踪门面项目,提及其历史演进未深入展开机制
Honeycomb / Humio / Datadog / New Relic / Elastic 13 商业可观测性平台,仅作为 Grafana 技术栈的替代选项列举
ytt (Carvel 套件) 14 与 Kustomize/Helm 并列的另一种 Kubernetes 配置定制工具,提及同时支持补丁和模板两种方式,未展开具体用法
Kubeval 14 CI 流水线里用于校验 Kubernetes 清单合法性的工具,仅提及名字未展开
JReleaser 15 语义化版本发布自动化工具,仅提及名字未展开
CalVer(日历版本号) 15 语义化版本号的变体,把日期时间揉进版本号,仅提及名字未展开
Cucumber / Gatling / Chaos Monkey for Spring Boot 15 分别用于功能验收测试、性能测试、混沌工程测试的工具举例,仅提及名字
Flux / kapp-controller 15 与 Argo CD 并列的 GitOps 软件代理实现,仅提及名字未展开
CloudEvents 16 标准化云架构事件格式与分发方式的规范,仅说明可跨 HTTP/AMQP/RSocket 传输,未展开具体数据模型
RSocket 16 Spring Cloud Function 支持的二进制响应式协议,仅提及名字未展开
Tekton 16 从 Knative Build 独立出来的 Kubernetes 原生流水线工具,提及可替代 GitHub Actions,未展开用法
AWS Lambda / Azure Functions / Google Cloud Functions 16 Spring Cloud Function 支持对接的厂商专有 FaaS 平台,仅作为选型列表提及
Knative Eventing 16 Knative 的事件管理组件,与本章聚焦的 Knative Serving 并列提及,未展开
Tanzu Application Platform / Google Cloud Run / Red Hat OpenShift Serverless 16 基于 Knative 的托管 Serverless 平台,仅作为选型列表提及

引用文献

标题 类型 出现章节 一句话语境
Continuous Delivery (Jez Humble, David Farley) 01 提出部署流水线(deployment pipeline)概念的奠基之作,本书借鉴其持续交付纪律
Building Microservices, 2nd ed. (Sam Newman) 01 微服务话题的推荐延伸读物,本书不展开讲微服务细节
Microservices Patterns (Chris Richardson) 01 微服务话题的推荐延伸读物
Spring Microservices in Action, 2nd ed. (Carnell & Sanchez) 01 更偏 Spring 视角的微服务推荐读物
Cloud Native Patterns (Cornelia Davis) 01 本书”服务化架构”(services + interactions)的分类方式借鉴自此书
The Twelve-Factor App (Adam Wiggins) 网站/方法论 02 15-Factor 方法论的原始出处(12 条),Heroku 工程师总结
Beyond the Twelve-Factor App (Kevin Hoffman) 02 把 12-Factor 扩展为 15-Factor,本书采用的是这个扩展版本
Spring Start Here (Laurențiu Spilcă) 02 Spring 核心特性的推荐延伸读物
Spring in Action, 6th ed. (Craig Walls) 02 Spring 核心特性的推荐延伸读物
Spring Boot: Up & Running (Mark Heckler) 02 Spring 核心特性的推荐延伸读物
Agile Testing / More Agile Testing / Agile Testing Condensed (Crispin & Gregory) 03 敏捷测试象限模型的出处
Continuous Delivery Pipelines (Dave Farley) 03 部署流水线阶段划分的参考来源之一
High-Performance Java Persistence and SQL (Vlad Mihalcea) 05 JPA/Hibernate 深入学习的推荐读物
Java Persistence with Spring Data and Hibernate (Cătălin Tudose) 05 JPA/Hibernate 深入学习的推荐读物
Learn Docker in a Month of Lunches (Elton Stoneman) 06 Docker 深入学习的推荐读物
Docker in Practice, 2nd ed. (Ian Miell & Aidan Hobson Sayers) 06 Docker 深入学习的推荐读物
Release It! (Michael T. Nygard) 08 韧性设计/故障隔离主题的奠基书籍,”crack propagation”概念出处
Reactive Spring (Josh Long) 08 Spring 响应式编程深入学习的推荐读物
“Scaling your API with Rate Limiters” (Paul Tarjan / Stripe) 文章 09 令牌桶限流算法的实战参考文章
Monolith to Microservices (Sam Newman) 10 服务耦合类型(实现/部署/时间耦合)分类的出处
“Focusing on Events” / “Domain Event” / “What do you mean by ‘Event-Driven’?” (Martin Fowler) 文章 10 事件建模主题的推荐延伸读物
Microservices Patterns 第4章 (Chris Richardson) 10 saga 模式的详细讲解出处
Spring Security in Action (Laurențiu Spilcă) 11 Spring Security 用户管理/OAuth2 深入学习的推荐读物
OAuth 2 in Action (Justin Richer & Antonio Sanso) 11 OAuth2 深入学习的推荐读物
OpenID Connect in Action (Prabath Siriwardena) 11 OIDC 深入学习的推荐读物
Spring Microservices in Action, 2nd ed. 第9章 (Carnell & Sánchez) 11 Keycloak Spring Adapter 的历史用法参考
Real-World Cryptography (David Wong) 12 密码学深入学习的推荐读物
Spring Security in Action 第7、8、17章 (Laurențiu Spilcă) 12 授权架构与数据行级保护的深入讲解出处
“BlueGreenDeployment” (Martin Fowler) 文章 15 蓝绿部署概念的出处
“CanaryRelease” (Danilo Sato) 文章 15 金丝雀发布概念的出处
“ContinuousDelivery” (Martin Fowler) 文章 15 持续交付定义的引用出处
Continuous Delivery for Kubernetes 第5章 (Mauricio Salatino) 15 Kubernetes 部署与发布策略的深入讲解出处
Knative in Action (Jacques Chester) 16 Knative 深入学习的推荐读物

类别清单核对(框架类)

维度 覆盖状态 关联卡片标题或未覆盖理由
核心抽象/设计理念 已覆盖 [[云原生的三个P]]、[[API网关解耦客户端与内部演化]]、[[网关的路由谓词过滤器三要素]]
扩展机制 已覆盖 [[网关的路由谓词过滤器三要素]](谓词+过滤器链是 Spring Cloud Gateway 自定义行为的核心机制)
生命周期管理 已覆盖 [[优雅关闭的信号竞态与延迟]]、[[应用宽限期应短于平台强制期限]]、[[存活探针与就绪探针的后果不同]]
配置与约定的取舍 补充生成 [[自动配置靠条件注解隐藏而非消失]](Spring Boot 的”有主见默认值+条件化装配”机制,原文命中但此前未生卡,已补)
依赖管理/组件协作方式 已覆盖 [[构造器注入优于字段注入]](依赖注入);事件驱动与网关转发相关卡片覆盖模块间通信
与底层技术的关系 已覆盖 [[Thread-per-request模型与并发上限]](Spring MVC 基于 Servlet 线程模型)、[[事件循环重新分配等待期间的资源]](WebFlux 基于 Netty 事件循环)
性能特性与常见陷阱 已覆盖 [[CPU可压缩与内存不可压缩决定资源配置策略]]、[[响应式解决的是可扩展性不是速度]]、[[Thread-per-request模型与并发上限]]
适用边界 已覆盖 [[是否引入SpringCloudKubernetes看项目新旧]]、[[补丁式定制与模板式定制的取舍]]、[[SpringDataJDBC与JPA的取舍]]

章节与卡片

01 Introduction to cloud native

  1. 云原生的三个P 普通读书笔记卡
  2. 水平扩展优先于垂直扩展 普通读书笔记卡
  3. 松耦合的三个收益 普通读书笔记卡
  4. 故障-错误-失败三层模型 普通读书笔记卡
  5. 可观测性的四支柱 普通读书笔记卡
  6. 可管理性不是可维护性 普通读书笔记卡
  7. 雪花服务器到不可变服务器 普通读书笔记卡
  8. 持续交付与持续部署的区别 普通读书笔记卡
  9. DevOps不是什么 普通读书笔记卡
  10. 容器与虚拟机的隔离边界不同 普通读书笔记卡
  11. 容器编排的视角转换 普通读书笔记卡
  12. Serverless的控制权代价 普通读书笔记卡
  13. 服务化架构的两类服务 普通读书笔记卡

02 Cloud native patterns and technologies

  1. 15-Factor方法论的定位 普通读书笔记卡
  2. 代码库与部署的一对多 普通读书笔记卡
  3. API优先的协作价值 普通读书笔记卡
  4. 显式依赖声明的边界 普通读书笔记卡
  5. 设计-构建-发布-运行的不可变链条 普通读书笔记卡
  6. 配置泄露的判断法 普通读书笔记卡
  7. 日志即事件流 普通读书笔记卡
  8. 后备服务的资源绑定思想 普通读书笔记卡
  9. 环境对等的三个鸿沟 普通读书笔记卡
  10. 端口绑定与自包含应用 普通读书笔记卡
  11. 容器镜像的三份标准分工 普通读书笔记卡
  12. 可丢弃性的两个技术要求 普通读书笔记卡
  13. Buildpacks的源码到镜像抽象 普通读书笔记卡
  14. 零信任是认证授权的起点 普通读书笔记卡
  15. 自动配置靠条件注解隐藏而非消失 普通读书笔记卡

03 Getting started with cloud native development

  1. Thread-per-request模型与并发上限 普通读书笔记卡
  2. 共享应用服务器的耦合代价 普通读书笔记卡
  3. 仓储抽象隔离领域与持久化 普通读书笔记卡
  4. 构造器注入优于字段注入 普通读书笔记卡
  5. 集中式异常处理解耦错误分支 普通读书笔记卡
  6. API演进的三种策略 普通读书笔记卡
  7. 切片测试按需加载上下文 普通读书笔记卡
  8. 敏捷测试象限模型 普通读书笔记卡
  9. 部署流水线三阶段的时间预算 普通读书笔记卡

04 Externalized configuration management

  1. 属性来源的优先级链条 普通读书笔记卡
  2. Profile命名的环境陷阱 普通读书笔记卡
  3. 三种配置策略的选型依据 普通读书笔记卡
  4. 配置服务器的单点故障与快速失败 普通读书笔记卡
  5. 配置热更新不等于重启 普通读书笔记卡

05 Persisting and managing data in the cloud

  1. 数据服务选型的四个维度 普通读书笔记卡
  2. Spring Data JDBC与JPA的取舍 普通读书笔记卡
  3. 乐观锁的版本号机制 普通读书笔记卡
  4. 自然键与代理键的取舍 普通读书笔记卡
  5. 测试用真实容器而非内存数据库 普通读书笔记卡
  6. Flyway迁移即数据库版本控制 普通读书笔记卡
  7. 两阶段迁移保证滚动升级兼容 普通读书笔记卡

06 Containerizing Spring Boot

  1. 镜像分层与写时复制 普通读书笔记卡
  2. 镜像分层按变更频率排序 普通读书笔记卡
  3. 容器网络的两个独立问题 普通读书笔记卡
  4. 分层JAR对齐镜像缓存粒度 普通读书笔记卡
  5. 多阶段构建剔除中间产物 普通读书笔记卡
  6. Dockerfile与Buildpacks的治理取舍 普通读书笔记卡
  7. 容器默认root用户的风险 普通读书笔记卡

07 Kubernetes fundamentals for Spring Boot

  1. Pod到Deployment的三层控制链 普通读书笔记卡
  2. 声明式配置的协调循环 普通读书笔记卡
  3. 客户端与服务端服务发现的取舍 普通读书笔记卡
  4. 固定服务地址解决云环境的DNS失效 普通读书笔记卡
  5. 优雅关闭的信号竞态与延迟 普通读书笔记卡
  6. 应用宽限期应短于平台强制期限 普通读书笔记卡

08 Reactive Spring: Resilience and scalability

  1. 事件循环重新分配等待期间的资源 普通读书笔记卡
  2. 响应式解决的是可扩展性不是速度 普通读书笔记卡
  3. 背压让消费者掌控节奏 普通读书笔记卡
  4. 共享模型与复制模型的耦合取舍 普通读书笔记卡
  5. 三种超时各守一段链路 普通读书笔记卡
  6. 超时之后请求可能仍在原地执行 普通读书笔记卡
  7. 指数退避加抖动防止重试雪崩 普通读书笔记卡
  8. 重试只对幂等操作安全 普通读书笔记卡
  9. 预期错误应绕过重试直接降级 普通读书笔记卡

09 API gateway and circuit breakers

  1. API网关解耦客户端与内部演化 普通读书笔记卡
  2. 边缘服务器的隐性代价 普通读书笔记卡
  3. 网关的路由谓词过滤器三要素 普通读书笔记卡
  4. 熔断器的三态机制 普通读书笔记卡
  5. 韧性模式组合的执行顺序 普通读书笔记卡
  6. 三种限流场景对应三种模式 普通读书笔记卡
  7. 令牌桶算法允许突发不允许持续超额 普通读书笔记卡
  8. 限流状态必须外置到共享存储 普通读书笔记卡
  9. Ingress解耦应用路由与基础设施路由 普通读书笔记卡

10 Event-driven applications and functions

  1. 事件驱动解决时间耦合 普通读书笔记卡
  2. 发布订阅与事件流的能否重放之别 普通读书笔记卡
  3. 函数三原语作为业务逻辑的通用语言 普通读书笔记卡
  4. 消费者组避免同一事件被重复处理 普通读书笔记卡
  5. 至少一次投递要求消费者自己保证幂等 普通读书笔记卡
  6. 本地事务保证数据库写入与事件发布的原子性 普通读书笔记卡

11 Security: Authentication and SPA

  1. 识别认证授权三段论 普通读书笔记卡
  2. 委托身份提供者而非自建认证 普通读书笔记卡
  3. OIDC授权码流程的中间步骤 普通读书笔记卡
  4. JWT的三段结构与信任前提 普通读书笔记卡
  5. 前端持有令牌几乎不可能被安全保护 普通读书笔记卡
  6. 登出需要向身份提供者传播 普通读书笔记卡

12 Security: Authorization and auditing

  1. 令牌接力传递用户授权上下文 普通读书笔记卡
  2. JWT令牌免去资源服务器的网络往返 普通读书笔记卡
  3. 作用域是应用的角色,角色是用户的作用域 普通读书笔记卡
  4. 无状态令牌认证不需要CSRF防护 普通读书笔记卡
  5. 端点鉴权不等于数据行级隔离 普通读书笔记卡

13 Observability and monitoring

  1. 监控与可观测性的目标差异 普通读书笔记卡
  2. 存活探针与就绪探针的后果不同 普通读书笔记卡
  3. 就绪探针要不要囊括下游依赖看是否真阻塞 普通读书笔记卡
  4. 拉取式与推送式遥测采集的取舍 普通读书笔记卡
  5. 分布式追踪的trace与span 普通读书笔记卡
  6. 字节码注入实现无侵入埋点 普通读书笔记卡

14 Configuration and secrets management

  1. 配置广播刷新解决多实例规模问题 普通读书笔记卡
  2. 配置仓库存密钥的加密方式取舍 普通读书笔记卡
  3. ConfigMap挂载方式决定能否热更新 普通读书笔记卡
  4. Secrets不是真正的加密 普通读书笔记卡
  5. 是否引入SpringCloudKubernetes看项目新旧 普通读书笔记卡
  6. Kustomize的base与overlay分层 普通读书笔记卡
  7. Kustomize靠改名触发滚动重启 普通读书笔记卡
  8. 补丁式定制与模板式定制的取舍 普通读书笔记卡

15 Continuous delivery and GitOps

  1. 发布候选版本标识优先用可追溯的commit hash 普通读书笔记卡
  2. 并发控制丢弃排队中的过时验收任务 普通读书笔记卡
  3. CPU可压缩与内存不可压缩决定资源配置策略 普通读书笔记卡
  4. 蓝绿部署与金丝雀发布的取舍 普通读书笔记卡
  5. GitOps的四条原则 普通读书笔记卡
  6. 部署的推模式与拉模式的安全权限差异 普通读书笔记卡

16 Serverless, GraalVM, and Knative

  1. AOT原生镜像用构建期开销换运行期性能 普通读书笔记卡
  2. 缩容到零逼出对启动速度的极致要求 普通读书笔记卡
  3. Serverless让渡控制权换运维简化及厂商锁定风险 普通读书笔记卡
  4. Knative用单一资源抽象取代多个K8s资源 普通读书笔记卡
  5. 原生镜像编译校验该放哪个流水线阶段 普通读书笔记卡

相关主题

暂无公开主题。