项目介绍
什么是 Diagrams as Code
Diagrams as Code 是一种通过代码而非交互方式管理架构图的工具,它使用广泛应用于基础设施和配置管理的 YAML 语法来生成云系统架构图。这种声明式的方法让用户仅需描述所需的解决方案、外观以及最终解决方案的状态,其余流程由软件自行决定完成。
项目的优势
与手动制作架构图相比,Diagrams as Code 提供了多项优势:
- 简便性:不需要专业的架构图绘制知识。用户只需定义资源并设置它们的关系,其余工作全由工具完成。
- 版本控制:使用 Git 这类版本控制系统来追踪架构图的变更。
- 协作提升:通过代码审查而不是视频会议或屏幕分享更新架构图。
- 成本降低:无需再保存 XML 格式文件,YAML 文件会被直接存储在代码库中。
- 一致性提高:因为架构图随代码一起存储在代码库中,更易于保持更新。
支持的组件
该项目目前支持以下组件:
- 主流云服务提供商:如 AWS、Azure、GCP、IBM、Alibaba、Oracle、OpenStack、DigitalOcean 等。
- 本地部署、Kubernetes、Firebase、Elastic、SaaS。
- 各类编程语言及框架。
路线图
Diagrams as Code 的未来计划包括:
- 增加对 C4 模型的支持。
- 增加自定义节点的支持。
- 开发 IDE 插件或网络用户界面,用于实时编辑。
- 将 JSON Schema 添加到 JSON Schema Store。
- 研究与 Confluence 的集成,将图像从 CI 构建中直接更新。
- 研究 ChatGRT 的集成。
使用指南
安装步骤
Diagrams as Code 使用 Graphviz 来渲染图像,用户需要先安装 Graphviz。各平台下载安装地址为:
- Linux: 查看官方网站下载页面。
- Windows: 查看官方网站下载页面。
- macOS: 查看官方网站下载页面。
安装 Graphviz 后,使用以下命令来安装 Diagrams as Code 项目:
$ pip3 install diagrams-as-code
配置示例
用户可以在项目的 examples 文件夹中找到 YAML 配置示例。这些示例可以帮助用户快速理解和使用 Diagrams as Code。
语法高亮
在书写 YAML 文件时,用户可能需要语法高亮功能。目前用户可以在 PyCharm 和 VS Code 这类编辑器中通过设置实现。
- PyCharm: 需要在编辑器中手动设置 JSON Schema。
- VS Code: 安装 RedHat YAML 扩展,并在 YAML 文件顶部添加相应的 schema 注释。
CLI 使用方法
用户可以通过命令行界面(CLI)来生成架构图。只需提供包含配置的 YAML 文件路径,图像将会保存到命令行所在目录。
声明
Diagrams as Code 是基于原始 Diagrams 项目的封装,它通过解析 YAML 文件并调用 Diagrams 项目的函数和类来生成架构图。用户无需直接操作 Diagrams,因为 Diagrams as Code 已经对其进行了很好的封装。