前言
"AI 能让你写代码快 10 倍,但如果没有护法加持,你可能在以 10 倍速度制造技术债。"
2020 年初版的 《微服务之道:度量驱动开发》 出版时,AI 辅助编程还只是一个遥远的概念。 短短几年间,世界已经发生了翻天覆地的变化。ChatGPT、Claude、Copilot 等 AI 工具 已经深入到每个开发者的日常工作中。AI 可以在五分钟内生成 500 行代码, 但问题随之而来:
你怎么知道它写对了? -- 可验证性 (TDD)
上线之后怎么监控? -- 可观测性 (MDD)
三个月后你还能看懂吗? -- 可理解性 (活文档)
度量驱动开发 (MDD) 作为 可观测性 的核心实践,在 AI 时代不仅没有过时, 反而变得前所未有地重要。
为什么要修订
初版以 Java (Spring Boot) 为主要技术栈,以微服务为唯一视角。 七八年过去了,技术格局已经发生了巨大变化:
多语言并行: Go、Python、C++、Rust 各有其生态中的度量方案
云原生崛起: Kubernetes、Service Mesh、Serverless 改变了部署和运维方式
可观测性统一: OpenTelemetry 成为 CNCF 的统一标准
AI 辅助编程: 代码生成速度指数级提升,度量作为质量护栏更加关键
SRE 实践成熟: SLI/SLO/SLA、Error Budget 成为行业标准
因此,本次修订不是简单的翻新,而是在保留 MDD 核心理念的基础上, 进行全面的现代化重构。
AI 时代的三大护法
在 AI 辅助编程时代,要驯服 AI 这匹烈马,你需要三大护法:
护法 |
核心问题 |
实现方法 |
AI 时代的价值 |
|---|---|---|---|
可验证性 |
AI 写对了吗? |
TDD (测试驱动开发) |
让 AI 先写测试,再写实现 |
可观测性 |
代码跑得怎样? |
MDD (度量驱动开发) |
代码上线即自带监控能力 |
可理解性 |
人能看懂吗? |
活文档 (Living Documentation) |
架构图、注释、运维手册 |
三者不是孤立的,它们相互支撑:
可验证性(TDD)
"确保写对了"
▲
/ \
/ \
/ \
/ 质量 \
/ 保障 \
▼ ▼
可观测性(MDD) 可理解性(活文档)
"确保跑得好" "确保看得懂"
警告
缺少任何一个护法的后果:
缺可验证性: 不知道对不对,线上出问题才发现
缺可观测性: 出了问题定位不了,只能瞪眼
缺可理解性: 改不动,越改越乱,最后只能重写
本书主线
本书始终围绕 度量驱动开发 (MDD) 这一核心方法论:
第 1 章 微服务入门: 微服务架构概述与度量的必要性
第 2 章 度量基本概念: USED 框架、度量类型、策略选择
第 3 章 度量设计: 多语言、多协议的度量方案设计
第 4 章 度量实现: Go / Python / Java / C++ 的度量实现
第 5 章 聚合与展示: 时序数据库、可视化技术栈
第 6 章 分析与报警: USE/RED 方法、智能报警
第 7 章 度量驱动运维: CI/CD、GitOps、Kubernetes
第 8 章 AI 时代的全程度量: 可观测性三支柱、AI 辅助开发中的 MDD
修订要点
多语言覆盖: 代码示例涵盖 Go、Python、Java、C++,不再局限于 Java
AI 时代视角: 将 MDD 定位为 AI 辅助编程的"可观测性护法"
云原生实践: Kubernetes、OpenTelemetry、eBPF 等现代技术
SRE 方法论: SLI/SLO/SLA、Error Budget、Incident Management
实战导向: 每章配有可运行的多语言代码示例
读者对象
使用 AI 工具辅助编程的开发者
微服务和分布式系统开发人员
DevOps 工程师和 SRE
运维和测试工程师
技术管理者
注解
本书所有源代码、脚本和说明文档均放在 https://github.com/walterfan/mdd 中, 以供下载参考。