YAML 对比工具

并排对比两个 YAML 文件,自动格式化、排序 key,逐行高亮差异。

使用方法

  1. 将第一个 YAML 粘贴到左侧输入框
  2. 将第二个 YAML 粘贴到右侧输入框
  3. 点击「对比」——两侧内容会自动格式化并按 key 排序
  4. 差异会高亮显示:红色为删除行,绿色为新增行

常见问题

  • key 顺序不同会影响对比吗?

    不会。对比前会自动对两侧 YAML 的 key 进行排序。

  • 支持嵌套 YAML 吗?

    支持,嵌套对象和列表都会被完整对比。

  • 颜色代表什么?

    红色为左侧独有的行,绿色为右侧独有的行,无颜色为相同行。

  • 数据会上传到服务器吗?

    不会,所有处理均在浏览器本地完成。

YAML 对比在 DevOps 中的核心价值

随着 Kubernetes 和 GitOps 的普及,YAML 文件已经成为现代基础设施的"源代码"。Deployment、Service、ConfigMap、HelmChart 的 values.yaml……这些文件的每一次变更都可能影响生产环境的运行状态。因此,在应用变更之前,准确理解"这次改动了什么"至关重要。

YAML 对比工具在以下场景中不可或缺:

Kubernetes 配置升级:将旧版 Deployment YAML 与新版对比,确认只有镜像版本发生了变化,资源限制、环境变量、副本数等关键字段没有被意外修改。

Helm values 管理:不同环境(dev/staging/prod)使用不同的 values.yaml,对比文件可以清晰了解各环境的差异,避免将测试配置泄露到生产。

基础设施即代码(IaC)评审:Ansible Playbook、AWS CloudFormation、Terraform 的 YAML 配置文件变更,在合并到主分支前需要精确的 diff 视图。

为什么 YAML diff 比文本 diff 更可靠?

YAML 允许同一个数据结构有多种等价写法:

# 写法一:行内式
tags: [web, api, v2]

# 写法二:块式
tags:
  - web
  - api
  - v2

两种写法语义完全相同,但文本 diff 会认为它们有大量差异。YAML 专用 diff 工具会先将两者解析为相同的数据结构,再进行比较,消除这类格式上的噪音。

同样,YAML 中键的顺序通常没有语义意义,本工具在对比前会自动对键进行排序,确保差异结果只反映真实的数据变化,而不是键的排列顺序差异。

使用建议

对比两个 Kubernetes YAML 时,建议去掉由系统自动添加的字段(如 resourceVersionuidcreationTimestamp),专注于手工管理的配置字段,这样对比结果会更清晰。