Backstage is an open source framework for building developer portals that was created at Spotify to simplify end-to-end software development. As Spotify grew, their infrastructure became more fragmented and teams couldn't find the APIs they were supposed to use, or who owned a service, or documentation on anything.
Backstage is powered by a centralized software catalog and utilizes an abstraction layer that sits on top of all of your infrastructure and developer tooling, allowing you to manage all of your software, services, tooling, and testing in one place.
Backstage uses a plugin-architecture which allows you to customize the functionality of your Backstage application using a wide variety of available plugins or you can write your own. It also includes automated templates that your teams can use to create new microservices, helping to ensure consistency and adherence to your best practices. Backstage also provides the ability to create, maintain, and find the documentation for all of your software.
Backstage is now a CNCF incubation project.
목적 및 탄생 배경
-> Backstage는 end-to-end 소프트웨어 개발을 단순화하기 위해 만든 오픈소스프레임워크입니다.
핵심구조 : 추상화 계층(Abstraction Layer)
-> Backstage는 모든 인프라와 개발도구 위에 위치하는 추상화 계층을 활용합니다.
-> 자동화된 템플릿(Software Templates) : 새로운 마이크로 서비스를 만들떄 팀이 사용할 수 있는 템플릿을 제공합니다. 이는 모든 팀이 회사의 베스트프랙티스를 따르게 하고 서비스간의 일관성을 유지하도록 합니다.
실무 의미: "회사 계정으로 로그인하면, 내가 권한을 가진 프로젝트들만 자동으로 연결된다"는 뜻입니다.
실무 의미: 복잡한 인프라 명령어를 몰라도, Backstage 화면에서 내 서비스가 잘 돌아가는지(Pod 상태 등) 바로 볼 수 있습니다.
실무 의미: "내 코드 리뷰가 승인되었을 때"나 "배포가 실패했을 때" 포털 내에서 알림을 받을 수 있습니다.
실무 의미: 보안이 중요한 프로젝트는 담당 팀원만 수정하거나 볼 수 있게 제한할 수 있습니다.
실무 의미: "서비스 이름, API 이름, 문서 내용"까지 한 번에 검색해서 찾아낼 수 있는 '사내 구글' 같은 역할입니다.
실무 의미: 앞서 말한 '우리 회사의 디지털 지도' 그 자체입니다.
실무 의미: "새 프로젝트 시작할 때 설정하는 데만 이틀 걸리던 걸, 버튼 클릭 한 번으로 5분 만에 끝낸다"는 기능입니다.
실무 의미: 문서를 별도 위키(Wiki)에 적는 게 아니라, 코드 저장소(Git) 안에 넣어서 관리하므로 코드와 문서의 동기화가 아주 쉬워집니다.
백스테이지는 3가지 타입의 플러그인을 제공한다.
소프트웨어 카탈로그의 시스템 모델은 'Entity'를 기반으로 하며 크게 두가지 주요 유형으로 모델링 합니다. : 핵심 엔티티(Core Entity)와 조직 엔티티입니다.
왜 이두가지를 묶어서 관리할까?
-> 단순히 이코드는 이팀꺼다 라는 메모만 하는게 아니라 시스템적으로 관계를 맺기 위함입니다.