Backstage란?

2023. 6. 28. 15:25카테고리 없음

728x90
반응형

Backstage란?

Backstage는 개발자 포털을 구축하기 위한 개방형 플랫폼입니다. 중앙 집중식 소프트웨어 카탈로그를 기반으로 하는 Backstage는 마이크로서비스와 인프라에 일관성을 제공하고 제품 팀이 자율성을 손상하지 않으면서 고품질 코드를 신속하게 출시할 수 있도록 지원합니다.

백스테이지에서는 모든 인프라 도구, 서비스 및 문서를 통합하여 처음부터 끝까지 간소화된 개발 환경을 구축할 수 있습니다.
Backstage는 CNCF 샌드박스를 졸업한 인큐베이션 프로젝트입니다.

백스테이지를 잘 이해하기 위해서는 개발자 포탈(Developer Portals)과 개발자 플랫폼(Developer Platforms)에 대해 알면 좋습니다.

내부 개발자 플랫폼(IDP, Internal Developer Platform)과 내부 개발자 포털(Internal Developer Portals)로도 불립니다.

내부 개발자 플랫폼, IDP란?

IDP는 조직 내에서 소프트웨어 개발자들이 애플리케이션을 개발, 테스트, 배포, 관리하는 데 사용하는 종합적인 도구와 서비스의 집합입니다. 내부 개발자 플랫폼은 개발자들이 소프트웨어 개발 주기를 더욱 효율적으로 관리하고 생산성을 향상시킬 수 있는 환경을 제공합니다.

Internal Developer Platform (IDP)는 플랫폼 팀에서 최적의 프로세스를 구축하고 개발자의 스스로 서비스를 이용할 수 있도록 구축합니다.

내부 개발자 플랫폼은 여러 가지 도구와 기능을 포함할 수 있습니다. 몇 가지 일반적인 예를 들어보면 다음과 같습니다:

- VSCode, Intellij 같은 통합 개발 환경 (IDE)
- GitHub, GitLab, Bitbucket, AWS CodeCommit 같은 버전 제어 시스템 (VCS)
- Jenkins, GitHub Actions 같은 CI 도구
- ArgoCD 같은 GitOps 도구/CD 컨트롤러
- Terraform 같은 코드 도구로서의 인프라 (IaC)
- 로깅, 모니터링, 관찰 가능성(Observability) 등
- 컨테이너, DB, 스토리지, 컴퓨팅과 같은 리소스와 리소스 관리 도구 등
그리고
- Backstage와 같은 내부 개발자 포털

개발자, 엔지니어들이 구축하고 사용하는 모든 도구들을 말합니다.

internaldeveloperplatform.org 에서는 내부 개발자 플랫폼을 구축하기 위한 플랫폼 도구를 아래와 같이 정의합니다.

  • 플랫폼 오케스트레이터
  • 개발자 포털
  • CD 오퍼레이터
  • CI 도구
  • 데이터베이스
  • 이미지 레지스트리
  • 클러스터 내 리소스
  • 코드형 인프라
  • 인프라 컨트롤 플레인
  • 쿠버네티스
  • 쿠버네티스 컨트롤 플레인
  • 모니터링
  • 보안

 

내부 개발자 플랫폼은 언제 필요합니까? 


- 마이크로서비스 아키텍처를 도입했거나 도입할 계획입니다.
- 전담 DevOps 엔지니어가 있는 15명 이상의 개발자로 구성된 상설 팀이 있거나 이 규모로 확장할 계획입니다. 이 DevOps 팀(또는 사람)은 반복적인 작업으로 인해 서비스 수준 계약 또는 워크플로에 제대로 집중할 수 없습니다.
- 소규모 팀이 있고 모든 사람이 배포, 스크립팅 및 인프라에 익숙하지 않으며 아직 전담 DevOps를 고용하지 않았습니다.
- 개발자는 다른 동료에 대한 종속성으로 인해 작업이 차단됩니다.
- 멀티 클라우드로 전환해야 하는 경우 언제든지.

 

내부 개발자 플랫폼(IDP)의 5가지 핵심 구성 요소

Application Configuration Management Manage application configuration in a dynamic, scalable and reliable way.
Infrastructure Orchestration Orchestrate your infrastructure in a dynamic and intelligent way depending on the context.
Environment Management Enable developers to create new and fully provisioned environments whenever needed.
Deployment Management Implement a delivery pipeline for Continuous Delivery or even Continuous Deployment (CD).
Role-Based Access Control Manage who can do what in a scalable way.

 

내부 개발자 포털이란?

내부 개발자 포털은 개발자 플랫폼에 대한 단일 인터페이스입니다. IDP는 아키텍처의 모든 측면을 발견하여 지식 그래프로 정리하고, 개발자가 통합된 사용자 환경 및 API에서 수행할 수 있는 작업과 정보를 노출합니다. 또한 IDP는 지식 그래프를 활용하여 아키텍처, 운영, 보안, 플랫폼 및 안정성 엔지니어링, FinOps 등 다른 기업 이해관계자에게 매우 중요한 시나리오를 지원합니다. 조직이 보다 안정적이고 안전하며 비용 효율적인 소프트웨어를 더 빠르게 구축할 수 있도록 지원하는 강력한 워크플로 및 분석 도구입니다.

아키텍처를 지식 그래프로 정리한다는 말은 어떤 리소스, 인프라, 서비스, API가 다른 것들과 영향을 주고 받는지 정리한다는 뜻입니다.

지식 그래프

 

다시 돌아와서

Backstage가 기본적으로 제공하는 기능은 이렇습니다.

Backstage Software Catalog
- 모든 소프트웨어(마이크로서비스, 라이브러리, 데이터 파이프라인, 웹사이트, ML 모델 등)를 관리하기 위한 카탈로그

Backstage Software Templates
- 새 프로젝트를 빠르게 시작하고 조직의 모범 사례로 툴링을 표준화하기 위한 소프트웨어 템플릿

Backstage TechDocs
- '코드와 같은 문서' 접근 방식을 사용하여 기술 문서를 쉽게 생성, 유지 관리, 검색 및 사용할 수 있는 TechDocs

Open Source Plugins
-  백스테이지의 커스터마이징 기능과, 기능을 더욱 확장하는 오픈 소스 플러그인 에코시스템

그리고 핵심 기능에 Kubernetes가 있습니다.

 

 

Backstage Benefits

엔지니어링 관리자의 경우 조직 전체에서 표준과 모범 사례를 유지할 수 있으며 마이그레이션부터 테스트 인증에 이르기까지 전체 기술 에코시스템을 관리하는 데 도움이 됩니다.

최종 사용자(개발자)의 경우, 표준화된 방식으로 소프트웨어 구성 요소를 빠르고 간편하게 빌드할 수 있으며 모든 프로젝트와 문서를 관리할 수 있는 중앙 집중식 공간을 제공합니다.

플랫폼 엔지니어에게는 플러그인을 통해 새로운 도구와 서비스를 쉽게 통합하고 기존 도구의 기능을 확장할 수 있도록 지원하여 확장성과 확장성을 제공합니다.

모든 사용자에게는 모든 인프라 도구, 리소스, 표준, 소유자, 기여자 및 관리자를 한곳에 묶어주는 일관된 단일 환경을 제공합니다.

 

Backstage 도입으로 개발 프로세스에 좋은 영향을 미치는지 확인하는 데 사용할 수 있는 메트릭

- 온보딩 시간 (입사 후 N번째 PR까지 기간)
- Number of merges per developer/day
- 프로덕션에 푸시하는 횟수
- MTTR (Mean time to repair)
- 컨텍스트 전환 감소율
- Backstage 방문지표 (MAU, DAU 등)
- 설문조사 (얼마나 생산적으로 변했다고 느끼는지, 정보를 찾는 것이 쉬워졌는지 등)

 

Spotify에서 측정한 개발자 경험의 개선 사례

1. 신규 입사자의 10번째 PR까지의 시간 (60일 -> 20일 미만)

2. 86%의 내부 사용자(개발자)들이 만족
3. Backstage관리팀이 아닌 다른 서비스 개발자들의 기여 
4. 150개 이상의 플러그인
https://backstage.spotify.com/blog/measuring-backstage-success-at-spotify/ (2021년 10월)


5. Backstage를 자주 사용하는 그룹이 아닌 그룹보다 2배 이상 많은 코드를 변경
6. Backstage를 자주 사용하는 그룹이 배포한 소프트웨어가 3배 더 오랫동안 배포된 상태로 유지
7. Backstage를 더 자주 사용하는 직원은 12개월 후 Spotify에 있을 가능성이 5% 더 높음
https://backstage.spotify.com/blog/how-spotify-measures-backstage-roi/ (2023년 3월)

 

다른 사례 1) Toyota Motor North America


Toyota Motor North America (TMNA)는 AWS와 Backstage의 기능을 결합하여 애플리케이션을 더 빠르고 안전하게 배포하고 연간 비용을 1,000만 달러 절감하는 방법을 공유했습니다.
https://backstage.spotify.com/blog/adopter-spotlight-toyota/
https://aws.amazon.com/ko/solutions/case-studies/toyota-ecs-case-study/

 

다른 사례 2) American Airlines

https://backstage.spotify.com/blog/adopter-spotlight/american-airlines-runway/

 

CNCF에 올라온 사례

이탈리아 보건의료조직 Santagostino
https://www.cncf.io/case-studies/santagostino/

덴마크의 온라인 뱅킹 서비스 Lunar
https://www.cncf.io/case-studies/lunar/

 

 

사용 하는 다른 기업들

Netflix, Zalando, Unity 등

 

 

 

관련 영상

https://youtu.be/2fCNqKxAtYo

https://youtu.be/UbrPNvaHxCE

https://youtu.be/85TQEpNCaU0

https://youtu.be/uSX3XTj2wLU

https://youtu.be/VivuOxn3VQ8

 

 

실제 화면과 데모 페이지
https://demo.backstage.io/catalog

 

Backstage Demo

 

demo.backstage.io

 

 

출처:

https://backstage.io/

https://backstage.spotify.com/
https://www.cncf.io/projects/backstage/

https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/