XML 解决了数据交换问题,却让简单的配置感觉像是在写文档标记。YAML 的创造者从相反的前提出发:数据文件应该看起来像数据本身,而不是像包裹在数据外面的标签。

1.0 规范将 YAML 描述为一种人类友好、跨语言的 Unicode 序列化语言,适用于配置文件、消息传递、持久化和调试。它的核心技巧是视觉结构:用缩进表示层级,用冒号表示键值对,用短横线表示列表。

这一选择完美地契合了 DevOps 时代。YAML.org 现在将其描述为 Kubernetes、Docker Compose 和 Terraform 等工具中基础设施配置的事实标准。它胜出的特性不是强大,而是可审查性。

让数据自我呈现

缩进让嵌套数据一目了然,无需闭合标签。

映射、序列和标量与流行脚本语言中的原生结构相对应。

纯文本让配置易于进行差异对比、审查和粘贴到文档中。

该格式保持语言无关,因此每个工具都可以采用它,而不必拥有它。

对于手工编辑的格式而言,可读性不是装饰。人们能在拉取请求中审查的格式,才会成为团队统一采用的格式。

YAML 成为云原生工具和 CI/CD 系统中默认的配置语言。它宽松的可读性也带来了一些陷阱,但采用逻辑依然成立:基础设施变成了人类可以编辑的文本。

从这里,追溯依据

参考来源

  1. YAML Ain't Markup Language (YAML) 1.0 YAML.org · yaml.org ·
  2. About YAML YAML.org · yaml.org
  3. In The Beginning The YAML Company · yaml.com