Backstage目录的开端:数据如何进入系统?(Ingestion阶段完整指南)📥

各位平台工程师们,大家好!🚀 使用Backstage时,您是否曾好奇catalog-info.yaml文件是如何神奇地出现在屏幕上的?

Backstage目录不仅仅是查询数据库,它更像是一个巨大的“数据管道”。今天,我们将深入探讨这个管道的第一个阶段:Ingestion(数据摄取)


1. 理解目录后端整体流程 🌊

在深入细节之前,我们先来描绘一下整体蓝图。目录数据主要经历三个阶段:

  1. Ingestion (数据摄取): 将外部数据(GitHub、YAML等)引入系统内部的阶段 (今天的主角!)
  2. Processing (处理): 验证已引入的数据并分析其关联关系的阶段
  3. Stitching (拼接): 汇集分散的数据片段,完成最终“实体(Entity)”对象的阶段

2. 第一道关卡:Ingestion (数据摄取) 📥

这是系统外部的“Raw Data(原始数据)”首次踏入目录世界的阶段。此阶段的目标是“从某个地方读取数据,并将其放入目录数据库的临时存储区(Shadow Table)”

执行此任务主要有两种方式:

① Entity Providers (实体提供者) 🤖

这是最新Backstage架构中推荐的方式。它用于定期扫描外部系统(例如:AWS、GitHub组织、LDAP),一次性批量推送大量数据。

  • 优点: 高效获取大量数据,并针对外部系统变更的同步进行了优化。

② Processors (处理器 – 读取阶段) 📖

这是一种传统方式,通过特定的URL(例如:GitHub上的yaml文件路径)来“读取”数据。

  • 操作: 使用UrlReader接口,以文本形式读取指定路径的文件内容。

3. 为什么这个阶段很重要? ✨

Processing或Stitching阶段是“烹饪”已引入数据的过程。但Ingestion阶段则如同“采购食材”的过程。

  • 数据源的多样性: 不仅是GitHub,数据库、API、Excel文件等任何数据源,只要实现“摄取”阶段,都可以注册到Backstage中。
  • 性能的起点: 数据在此阶段被抓取效率的高低,决定了整个目录的更新速度。⚡

4. 原始数据摄取后会发生什么? 🔄

数据进入系统内部后,仍处于未“拼接”的状态。

  1. Validation: 检查导入的YAML是否符合规范。
  2. Relation Parsing: 看到“owner: team-a”这样的语句后,开始寻找该服务与团队之间的关联。
  3. Final Stitching: 所有检查完成后,我们最终在屏幕上看到的精美实体卡片就完成了!

5. 总结:核心是“Entity Provider”和“Reader” 📝

在Backstage目录后端流程中,在处理和拼接数据之前,将外部原始数据引入系统内部的阶段就是Ingestion

作为开发者,如果您想将新的数据源与Backstage集成,那么您将从编写此Ingestion阶段的自定义Entity Provider开始。


🏁 总结

Backstage不仅仅是一个简单的网站,它是一个强大的数据集成引擎。为这个引擎提供燃料的过程正是我们今天学习的Ingestion阶段。理解这个过程将帮助您在遇到“为什么我的服务没有出现在目录中?”这样的故障排除情况时,能够从容不迫地找到原因!


Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注