Backstage 소프트웨어 카탈로그
생태계의 모든 소프트웨어에 대한 소유권과 메타데이터를 추적하는 중앙 시스템이에요.
출처: 문서
본문
소프트웨어 카탈로그란 무엇인가요?
Backstage Software Catalog는 생태계의 모든 소프트웨어(서비스, 웹사이트, 라이브러리, 데이터 파이프라인 등)에 대한 소유권과 메타데이터를 추적하는 중앙 시스템이에요. 카탈로그는 코드와 함께 저장된 메타데이터 YAML 파일이라는 개념을 중심으로 구축되며, 이 파일들은 수집(harvest)되어 Backstage에서 시각화돼요.
어떻게 동작하나요?
Backstage와 Backstage Software Catalog는 한 팀이 10개의 서비스를 관리하기 쉽게 만들고, 회사가 수천 개의 서비스를 관리할 수 있게 해줘요.
더 구체적으로 Software Catalog는 두 가지 주요 사용 사례를 지원해요.
-
팀이 소유한 소프트웨어를 관리하고 유지하도록 돕는 것. 팀은 모든 소프트웨어에 대한 일관된 보기를 얻어요. 서비스, 라이브러리, 웹사이트, ML 모델까지 — 뭐든 Backstage가 모두 알고 있어요.
-
회사의 모든 소프트웨어와 그 소유자를 검색 가능하게 만드는 것. 더 이상 소프트웨어 생태계의 어두운 구석에 숨어 있는 고아(orphan) 소프트웨어가 없어요.
시작하기
Software Catalog는 /catalog에서 탐색할 수 있어요. Backstage 시작하기를 따랐다면 http://localhost:3000에서 카탈로그를 탐색할 수 있어야 해요.
카탈로그에 컴포넌트 추가하기
소프트웨어 카탈로그에서 컴포넌트의 진실의 원천(source of truth)은 소스 제어(GitHub, GitHub Enterprise, GitLab 등)에 저장된 메타데이터 YAML 파일이에요. 저장소는 하나 이상의 메타데이터 파일을 포함할 수 있어요. 보통 메타데이터 파일은 저장소 루트에 위치해요. 이는 공식적인 요구사항은 아니며 메타데이터 파일은 저장소 어디에든 둘 수 있어요.
카탈로그에 컴포넌트를 추가하는 방법은 3가지가 있어요.
-
컴포넌트를 수동으로 등록하기
-
Backstage를 통해 새 컴포넌트 만들기
-
외부 소스와 통합하기
컴포넌트를 수동으로 등록하기
사용자는 /create로 이동해 REGISTER EXISTING COMPONENT 버튼을 클릭해 새 컴포넌트를 등록할 수 있어요.
Backstage는 소스 제어에 있는 YAML의 전체 URL을 기대해요. 예시:
https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/artist-lookup-component.yaml
더 많은 예시는 여기에서 찾을 수 있어요.
어떤 종류의 소프트웨어든 Backstage에 등록할 수 있다는 점이 중요해요. 회사가 유지 관리하지 않는 소프트웨어(예: SaaS 제공물)라도 소유권 추적을 위한 컴포넌트를 만드는 것이 여전히 유용해요.
Backstage를 통해 새 컴포넌트 만들기
Backstage Software Templates를 통해 만들어진 모든 소프트웨어는 자동으로 카탈로그에 등록돼요.
정적 카탈로그 구성
컴포넌트를 수동으로 등록하는 것 외에도, 정적 구성으로 컴포넌트를 등록할 수도 있어요. 예를 들어 위의 예시는 다음 구성으로 추가할 수 있어요.
catalog: locations: - type: url target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/artist-lookup-component.yaml
카탈로그 구성에 대한 자세한 내용은 여기에서 찾을 수 있어요.
컴포넌트 메타데이터 업데이트하기
컴포넌트를 소유한 팀은 컴포넌트에 대한 메타데이터를 유지 관리할 책임이 있으며, 일반적인 Git 워크플로를 사용해 그렇게 해요.
변경이 머지되면 Backstage는 잠시 후 소프트웨어 카탈로그에 업데이트된 메타데이터를 자동으로 표시해요.
카탈로그에서 소프트웨어 찾기
기본적으로 소프트웨어 카탈로그는 로그인한 사용자의 팀이 소유한 컴포넌트를 보여줘요. 하지만 All로 전환해 회사의 소프트웨어 생태계 전체에 걸친 모든 컴포넌트를 볼 수도 있어요. 기본적인 인라인 검색과 열 필터링으로 큰 컴포넌트 집합을 쉽게 탐색할 수 있어요.
컴포넌트 별표(Starring)하기
자주 방문하는 컴포넌트에 쉽고 빠르게 접근할 수 있도록 Backstage는 컴포넌트 별표 지정을 지원해요.
플러그인을 통한 통합 도구
소프트웨어 카탈로그는 소프트웨어를 관리하는 데 사용하는 인프라 도구를 구성하는 좋은 방법이에요. 이것이 Backstage가 모든 도구를 위한 하나의 개발자 포털을 만드는 방식이에요. 팀이 서로 다른 인프라 사용자 인터페이스를 오가며(매번 컨텍스트 전환으로 추가 인지 부담을 감수하며) 이동하도록 요구하는 대신, 대부분의 도구를 카탈로그의 엔티티를 중심으로 구성할 수 있어요.
Backstage 개발자 포털은 기존 오픈 소스 플러그인을 통합하거나 나만의 플러그인을 구축해 사용자 지정할 수 있어요.
처리되지 않은 엔티티 (Unprocessed Entities)
때로 엔티티가 올바르게 처리되지 못해요. Unprocessed Entities 기능은 Backstage 관리자가 이러한 엔티티를 찾고 진단해 카탈로그의 상태를 이해하도록 도와줘요.
이 기능을 사용하려면 catalog-unprocessed-entities 플러그인과 그 백엔드 모듈 문서를 확인하세요.
링크
- [블로그 포스트] Backstage Service Catalog가 alpha로 공개됨