본문 바로가기
클라우드/Backstage

Backstage 카탈로그의 시작, 데이터는 어떻게 시스템으로 들어올까? (Ingestion 단계 완벽 가이드) 📥

by gasbugs 2025. 12. 25.

안녕하세요, 플랫폼 엔지니어 여러분! 🚀 Backstage를 사용하다 보면 catalog-info.yaml 파일이 어떻게 마법처럼 화면에 나타나는지 궁금한 적 없으셨나요?

Backstage 카탈로그는 단순히 DB를 조회하는 것이 아니라, 거대한 "데이터 파이프라인"처럼 동작합니다. 오늘은 그 파이프라인의 첫 번째 단계인 Ingestion(수집) 과정에 대해 상세히 파헤쳐 보겠습니다!

 


1. 카탈로그 백엔드 전체 흐름 이해하기 🌊

상세 단계로 들어가기 전, 전체적인 그림을 먼저 그려봅시다. 카탈로그 데이터는 크게 3단계를 거칩니다.

  1. Ingestion (수집): 외부 데이터(GitHub, YAML 등)를 시스템 내부로 가져오는 단계 (오늘의 주인공!)
  2. Processing (처리): 가져온 데이터를 검증하고, 연관 관계를 분석하는 단계
  3. Stitching (스티칭): 분산된 데이터 조각들을 모아 최종 '엔터티(Entity)' 객체를 완성하는 단계

2. 첫 번째 관문: Ingestion (수집) 📥

시스템 외부의 "Raw Data(가공되지 않은 데이터)"가 카탈로그의 세계로 발을 들이는 가장 첫 번째 단계입니다. 이 단계의 목표는 "어디선가 데이터를 읽어와서 카탈로그 DB의 임시 저장소(Shadow Table)에 넣는 것"입니다.

이 역할을 수행하는 두 가지 주요 방식이 있습니다.

① Entity Providers (엔터티 프로바이더) 🤖

최신 Backstage 아키텍처에서 권장하는 방식입니다. 외부 시스템(예: AWS, GitHub 조직, LDAP)을 주기적으로 스캔하여 한꺼번에 많은 데이터를 밀어 넣을 때 사용합니다.

  • 장점: 대량의 데이터를 효율적으로 가져오며, 외부 시스템의 변경 사항을 동기화하기에 최적화되어 있습니다.

② Processors (프로세서 - Reading 단계) 📖

전통적인 방식으로, 특정 URL(예: GitHub의 yaml 파일 경로)을 통해 데이터를 '읽어오는' 역할을 합니다.

  • 동작: UrlReader 인터페이스를 사용하여 지정된 경로의 파일 내용을 텍스트 형태로 읽어옵니다.

3. 왜 이 단계가 중요할까요? ✨

Processing이나 Stitching 단계는 이미 들어온 데이터를 "요리"하는 과정입니다. 하지만 Ingestion 단계는 "재료를 사 오는 과정"과 같습니다.

  • 데이터 소스의 다양성: GitHub뿐만 아니라 데이터베이스, API, 엑셀 파일 등 무엇이든 '수집' 단계만 구현하면 Backstage에 등록할 수 있습니다.
  • 성능의 기점: 여기서 데이터를 얼마나 효율적으로 긁어오느냐에 따라 전체 카탈로그의 업데이트 속도가 결정됩니다. ⚡

4. Raw Data가 수집된 후에는 어떤 일이 벌어지나요? 🔄

데이터가 시스템 내부로 들어오면, 아직은 'Stitched' 되지 않은 상태입니다.

  1. Validation: 가져온 YAML이 규격에 맞는지 검사합니다.
  2. Relation Parsing: owner: team-a라는 문구를 보고, 이 서비스와 팀 사이의 연결 고리를 찾기 시작합니다.
  3. Final Stitching: 모든 검사가 끝나면 드디어 우리가 화면에서 보는 멋진 엔터티 카드가 완성됩니다!

5. 요약: 핵심은 'Entity Provider'와 'Reader' 📝

Backstage 카탈로그 백엔드 흐름에서 데이터를 프로세싱하고 스티칭하기 전, 외부의 날것(Raw) 그대로의 데이터를 시스템 내부로 끌어들이는 단계Ingestion입니다.

개발자로서 여러분이 새로운 데이터 소스를 Backstage에 연동하고 싶다면, 바로 이 Ingestion 단계의 커스텀 Entity Provider를 작성하는 것부터 시작하게 됩니다.


🏁 마무리하며

Backstage는 단순한 웹 사이트가 아니라 강력한 데이터 통합 엔진입니다. 그 엔진에 연료를 공급하는 과정이 바로 오늘 배운 Ingestion 단계이죠. 이 과정을 이해하면 "왜 내 서비스가 카탈로그에 안 뜨지?" 같은 트러블슈팅 상황에서도 당황하지 않고 원인을 찾을 수 있습니다!