Backstage vs Archyl:两种架构文档方案的对比
如果你正在评估架构文档工具,你可能已经看过Backstage。它是开源的,由Spotify支持,拥有覆盖从CI/CD到成本管理等方方面面的插件生态系统。其中一个插件处理C4图表。
Archyl采取了相反的方式。它不是开发者门户。它不管理CI管道或服务目录。它只做一件事:使用C4模型进行架构文档——并且深入到底。
这不是一篇"哪个工具更好"的文章。它们服务于不同目的。但如果你真正需要的是架构文档,那么差异就很重要了。让我来逐一分析。
核心理念
Backstage是一个开发者门户框架。它的工作是将开发团队使用的所有工具、服务和文档统一到一个内部平台中。架构文档只是众多可用插件之一——它是更大生态系统中的一个功能。
Archyl是一个专门构建的架构文档平台。整个产品只为使用C4模型来建模、可视化、分析和演进软件架构而存在。每个功能都回馈到这个单一目的。
这种范围上的差异塑造了其他一切。
C4模型支持
Backstage
Backstage的实体模型包括Component、API、Resource、System、Domain、Group和User。这大致映射到C4的第1层和第2层——系统和容器。但这种映射是近似的,不是精确的。
Backstage的C4插件(backstage-plugin-c4-model)从现有目录实体渲染图表。它支持系统上下文和容器视图。**没有对C4第3层(组件)或第4层(代码)的原生支持。**如果你的架构建模需求深入到容器层以下,就会遇到瓶颈。
目录本身是YAML驱动的。每个实体在catalog-info.yaml文件中定义,通常与代码一起提交。这意味着架构在配置文件中定义,而不是在可视化工具中。
Archyl
Archyl原生实现了所有四个C4层级:
- 第1层——系统上下文:系统、外部系统和人员
- 第2层——容器:应用、服务、数据库、消息队列、缓存等
- 第3层——组件:控制器、服务、仓储、处理器、中间件、模型
- 第4层——代码:类、接口、函数、方法、枚举、常量
每个层级都有专用的节点类型、视觉样式和元数据。你可以从系统钻取到容器,从容器到组件,从组件到代码元素——全部在同一个交互式图表中。任何层级的元素之间的关系都是带有类型化连接的一等公民(uses、depends_on、calls、reads_from、writes_to等)。
**区别:**Backstage给你一个附加了C4视图的目录。Archyl给你一个完整的C4建模环境,可以在任何详细级别表示你的整个架构。
可视化
Backstage
C4插件从目录数据生成静态或半交互式图表。可视化取决于具体的插件实现——有的用PlantUML,有的用Structurizr,有的在浏览器中渲染。但体验基本上是只读的。你查看从YAML定义生成的图表。你不与它们交互。
没有画布操作,没有拖放定位,没有图表上的实时协作。要更改架构表示,你需要编辑YAML文件并等待目录刷新。
Archyl
Archyl提供基于React Flow构建的完全交互式画布。你可以:
- 拖拽定位图表上的任何元素
- 直接在画布上绘制关系
- 通过钻入系统、容器和组件来跨C4层级导航
- 查看队友的实时光标
- 使用自动布局自动排列元素,或手动定位
- 应用覆盖层来视觉分组相关元素
- 在图表上切换明暗主题
画布是主要工作区,不是生成的产物。你在图表上做的每个更改都会即时反映。
AI驱动的发现
Backstage
Backstage没有内置的AI驱动架构发现。要填充目录,你需要为每个服务手动创建catalog-info.yaml文件,或使用从外部源(Kubernetes、GitHub等)导入的实体提供者。一些社区插件添加了AI功能,但没有原生的代码架构分析。
Archyl
Archyl包含内置AI发现,连接到你的Git仓库(GitHub、GitLab、Bitbucket、Azure DevOps、Gitea或本地仓库),读取代码库并自动生成完整的C4模型。
影响分析
Backstage
Backstage没有影响分析功能。如果你想了解弃用一个服务会破坏什么,你需要手动通过目录追踪依赖关系。没有自动化的上下游分析,没有风险评分,没有假设模拟。
Archyl
Archyl的影响雷达直接在图表上提供全面的影响分析。右键点击任何元素即可立即看到上下游依赖、风险评分、关键路径、跨项目依赖、受影响的流程以及假设模拟。
实时运营数据
Backstage的插件生态系统是其核心优势。有几乎涵盖一切的插件——CI/CD状态、监控仪表板、成本跟踪等。但这些插件在门户内各自独立的页面中,没有连接到架构视图。
Archyl的Marketplace提供将实时数据作为小部件直接显示在架构工作区的集成:CI/CD(GitHub Actions、GitLab、ArgoCD)、可观测性(Datadog、Prometheus、Sentry)、代码质量(SonarQube)和事件管理(PagerDuty)。
对比概览
| 能力 | Backstage | Archyl |
|---|---|---|
| API契约 | 目录中的API实体 | 完整的OpenAPI/gRPC/GraphQL契约链接到C4元素 |
| 事件通道 | 无原生支持 | Kafka、NATS、SQS等通道链接到元素 |
| 用户流程 | 无原生支持 | 与架构元素关联的逐步流程图 |
| 架构洞察 | 无原生支持 | AI生成的带严重性评分的建议 |
| 发布管理 | 无原生支持 | 跨环境和系统跟踪部署 |
| 全局架构 | 无跨项目视图 | 连接多个项目系统的全局视图 |
| MCP服务器 | 无原生支持 | Claude、Cursor等AI工具可读写架构模型 |
| 导出/导入 | 基于YAML的目录 | JSON导出/导入实现完整项目可移植性 |
| 本地部署 | 自托管(必需) | 云或自托管(Docker、Kubernetes、Helm) |
如何选择
选择Backstage如果你需要一个统一的开发者门户,将文档、CI/CD、服务目录、成本管理和其他关注点整合到单个内部平台。架构文档是其中一部分,高级别的C4视图就够了。
选择Archyl如果架构文档是首要关注点——但你不想为此牺牲运营可见性。Archyl深入C4模型(全部4层)、交互式图表、AI驱动发现、影响分析和变更治理,同时其Marketplace集成将实时CI/CD状态、监控、代码质量和事件数据直接带到你的架构上。
两者也可以共存。Archyl处理详细的架构建模、分析和运营可见性。Backstage处理更广泛的开发者体验。
总结
Backstage是一个由插件组装的平台框架。它强大、灵活,解决了开发者体验碎片化的问题。但其架构文档能力仅限于目录驱动的C4插件能提供的——通常是第1和第2层、静态视图,没有AI,没有影响分析,没有图表上的实时协作。
Archyl是一个深入架构的专注工具。它涵盖完整的C4模型、AI发现、影响分析、变更治理、实时协作——并连接到你的CI/CD、可观测性、代码质量和事件工具,使架构扎根于运营现实。
你的架构值得超越一个目录条目。
C4模型新手?从我们的C4模型介绍开始。已经在建模?尝试AI驱动的架构发现从代码引导你的第一个项目,或探索影响雷达在做出变更前理解影响。