.. _preface: ==== 前言 ==== *"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 这匹烈马,你需要三大护法: .. list-table:: :header-rows: 1 :widths: 15 25 25 35 * - 护法 - 核心问题 - 实现方法 - AI 时代的价值 * - **可验证性** - AI 写对了吗? - TDD (测试驱动开发) - 让 AI 先写测试,再写实现 * - **可观测性** - 代码跑得怎样? - MDD (度量驱动开发) - 代码上线即自带监控能力 * - **可理解性** - 人能看懂吗? - 活文档 (Living Documentation) - 架构图、注释、运维手册 三者不是孤立的,它们相互支撑: .. code-block:: text 可验证性(TDD) "确保写对了" ▲ / \ / \ / \ / 质量 \ / 保障 \ ▼ ▼ 可观测性(MDD) 可理解性(活文档) "确保跑得好" "确保看得懂" .. warning:: 缺少任何一个护法的后果: - 缺可验证性: 不知道对不对,线上出问题才发现 - 缺可观测性: 出了问题定位不了,只能瞪眼 - 缺可理解性: 改不动,越改越乱,最后只能重写 本书主线 ======== 本书始终围绕 **度量驱动开发 (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 - 运维和测试工程师 - 技术管理者 .. note:: 本书所有源代码、脚本和说明文档均放在 https://github.com/walterfan/mdd 中, 以供下载参考。