Cloud Native
00. 学习路线图与资料地图
本章先回答两个问题:应该按什么顺序学,以及这些教程参考了哪些资料。路线图把官方文档、报告、社区讨论和视频资料拆开看,避免“把网上某个学习路线当成唯一答案”。
1. Java/SOFA 微服务学习路线图
阶段 0:校准目标
目标不是“会背 Spring Cloud 组件名”,而是能在金融系统中交付可维护、可观测、可审计、可恢复的后端服务。金融微服务比普通 CRUD 更强调:
- 请求幂等:支付、转账、开户、授信、风控回调不能因为重试产生重复副作用。
- 一致性边界:不是所有链路都能强一致,必须说清楚本地事务、分布式事务、最终一致和对账补偿的边界。
- 审计与追踪:每个关键业务状态变化要有可查询证据,调用链、业务流水、操作人、版本都要能串起来。
- 稳定性优先:超时、熔断、限流、降级、灰度和回滚比“多拆几个服务”更重要。
- 安全默认:鉴权、授权、数据最小化、日志脱敏、供应链扫描必须在开发流程里。
阶段 1:补 Spring 基础
适合读者:会写 @RestController,但对 Spring 容器、Bean、AOP、事务、自动配置只停留在“能用”。
学习顺序:
- IoC/DI:Bean 是怎么创建、装配、选择、销毁的。
- 配置模型:
application.yml、Profile、环境变量、@ConfigurationProperties。 - AOP:为什么事务、日志、鉴权经常通过代理实现。
- 事务:本地事务传播、只读事务、异常回滚、事务失效场景。
- 自动配置:Spring Boot starter、条件装配、Actuator。
- 测试:单元测试、切片测试、集成测试、Testcontainers 思路。
对应教程:01-spring-foundation-for-microservices.md
阶段 2:理解微服务不是框架集合
学习顺序:
- 单体、模块化单体、微服务的边界。
- 服务拆分:业务能力、数据所有权、团队边界、变更频率。
- 服务通信:HTTP、RPC、消息、事件。
- 服务治理:注册发现、负载均衡、超时、重试、熔断、限流、灰度。
- 可观测性:日志、指标、链路追踪、业务指标。
V2EX 的 JavaWeb 后端学习讨论中,多位回复把 Spring、Spring Boot、Spring Cloud、Redis、MySQL、MQ、分布式锁、分布式事务、缓存一致性、DevOps、Docker、K8s 作为后端进阶路线;另一个微服务学习路线讨论提醒“微服务是一种架构风格,不是先学一堆组件”。这两个社区信号非常适合校准学习路线:先理解问题,再选组件。
对应教程:02-java-sofa-microservices-core.md
阶段 3:进入 SOFAStack/SOFABoot/SOFARPC
学习顺序:
- SOFAStack 是什么:面向金融级分布式架构的中间件集合。
- SOFABoot 与 Spring Boot 的关系:基于 Spring Boot 增强研发框架能力。
- SOFARPC:服务发布、引用、调用协议、注册中心、过滤器、超时。
- SOFARegistry:服务注册发现的角色与部署方式。
- SOFATracer/Lookout:调用链与指标。
- 与 Spring Cloud、Dubbo、Nacos、Sentinel、Seata 的边界和迁移关系。
对应教程:02-java-sofa-microservices-core.md
阶段 4:金融微服务工程化
学习顺序:
- 领域建模:账户、交易、支付、风控、账务、通知。
- 数据一致性:本地事务、TCC/Saga、事务消息、Outbox、补偿、对账。
- 高可用:超时预算、重试风暴、熔断、隔离、限流、降级。
- 发布:蓝绿、金丝雀、灰度、回滚、兼容性。
- 运维:SLO、告警、容量、压测、故障演练。
对应教程:03-financial-microservices-engineering.md
阶段 5:安全、DevSecOps 与 AI 辅助开发
学习顺序:
- OWASP API Security Top 10 与微服务安全清单。
- NIST SP 800-204 微服务安全策略。
- NIST SSDF、CISA/NCSC Secure by Design、NCSC 安全开发部署原则。
- Semgrep 静态扫描、依赖与密钥扫描、容器扫描。
- GitHub Copilot 的正确用法:拆小任务、给上下文、验证输出、人工 Review。
- DORA 视角:AI 是放大器,平台、流程、测试和团队能力弱时会放大混乱。
- Google SAIF:如果系统引入 AI Agent、RAG、智能风控,要补 AI 风险治理。
对应教程:04-security-devsecops-ai-assisted-development.md
2. Go 与云原生学习路线图
用户画像:不了解 Go 与云原生,对 Docker 基础概念不清楚,但会用 docker run 和 Compose。
阶段 A:补容器概念
- 镜像、容器、层、registry、volume、network。
- Dockerfile 和 Compose 分工:Dockerfile 构建镜像,Compose 编排本地多容器。
- 数据持久化:容器可删,数据要放 volume 或外部服务。
- 配置:镜像不写环境差异,运行时注入环境变量、Secret、配置文件。
阶段 B:Go 语言入门到服务端
- 语法、模块、包、错误处理。
context.Context、超时、取消、请求级元数据。- goroutine、channel、mutex、WaitGroup。
- HTTP 服务、JSON、数据库、配置、日志。
- 测试、基准测试、race detector、govulncheck。
阶段 C:Kubernetes 基础
- Pod、Deployment、ReplicaSet。
- Service、Ingress/Gateway API。
- ConfigMap、Secret、Volume。
- Readiness/Liveness/Startup probe。
- Requests/Limits、HPA、滚动发布。
- Namespace、RBAC、NetworkPolicy。
阶段 D:云原生工程化
- 12-factor、不可变基础设施、声明式 API。
- Helm/Kustomize。
- OpenTelemetry、Prometheus、Grafana、日志收集。
- 镜像安全、最小权限、SBOM、SCA。
- GitOps/CI/CD。
对应教程:05-go-cloud-native-roadmap.md、06-go-language-from-zero-to-services.md、07-docker-kubernetes-cloud-native-tutorial.md
3. 资料地图
调研与生态报告
用途:这些资料用于判断 Java、Spring、Docker、Kubernetes、Go、AI 编码工具在真实开发者生态中的位置。DORA 用于强调 AI 与平台工程、价值流、团队能力的关系。
Java、Spring、SOFA 官方资料
用途:教程中的框架说明、组件边界和代码方向基于这些资料。
安全、合规与工程治理
用途:安全章节、DevSecOps 检查清单和 AI 系统风险治理来自这些资料。
GitHub Copilot 与 AI 编码工具
用途:AI 辅助开发章节基于官方“给上下文、拆任务、验证输出”的建议,并结合社区对 AI 代码安全和责任归属的讨论。
Go、Docker、Kubernetes、云原生官方资料
用途:Go 与云原生教程的基础概念、命令和工程建议优先来自官方文档。
社区与实践讨论
用途:社区资料帮助识别真实学习者的卡点,例如“Spring 魔法太多”“微服务先理解取舍”“Compose 和 K8s 的边界”“K8s 官方文档太干”“AI 工具输出要审查”。教程不会把网盘课程资源当作授权学习资料,只提炼其公开目录暴露出的学习顺序。