前言

"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

修订要点

  1. 多语言覆盖: 代码示例涵盖 Go、Python、Java、C++,不再局限于 Java

  2. AI 时代视角: 将 MDD 定位为 AI 辅助编程的"可观测性护法"

  3. 云原生实践: Kubernetes、OpenTelemetry、eBPF 等现代技术

  4. SRE 方法论: SLI/SLO/SLA、Error Budget、Incident Management

  5. 实战导向: 每章配有可运行的多语言代码示例

读者对象

  • 使用 AI 工具辅助编程的开发者

  • 微服务和分布式系统开发人员

  • DevOps 工程师和 SRE

  • 运维和测试工程师

  • 技术管理者

注解

本书所有源代码、脚本和说明文档均放在 https://github.com/walterfan/mdd 中, 以供下载参考。