Spotify가 대규모 모바일 앱(Android/iOS/Desktop) 릴리스 관리에서 Jira 의존에서 벗어나 자체 Release Manager Dashboard와 자동화 로봇을 구축한 과정을 다룬다. 대시보드는 10여 개 내부 시스템 데이터를 단일 API로 통합하고, 로봇은 릴리스 단계 진행을 자동화해 사이클을 평균 8시간 단축했다.
핵심 포인트- Release Manager Dashboard는 React와 TypeScript로 구축한 Backstage 플러그인으로, 릴리스 상태/버그/품질 지표를 한 화면에 통합한다.
- 백엔드는 10여 개 시스템을 집계하는 API 게이트웨이로, 5분 캐싱과 사전 집계를 적용해 로딩 시간을 8초로 줄였다.
- 릴리스 단계 자동화 로봇(Robot)이 조건을 확인하고 다음 단계를 트리거해 릴리스 사이클을 평균 8시간 단축했다.
- 5분 주기 릴리스 데이터 저장으로 시계열 분석이 가능해져 수동 단계 간 최대 12시간 지연을 발견하고 자동화 결정을 내렸다.
- Backstage Software Catalog와의 통합으로 다른 팀(예: Confidence 플랫폼)도 릴리스 데이터를 쿼리할 수 있다.
상세 정리- 문제 배경: 릴리스 매니저가 Jira 탭 전환과 Slack 응답에 시간을 낭비했고, 플랫폼(Android/iOS/Desktop)별로 독립 릴리스가 이루어져 통합 뷰가 없었다.
- Track 개념: 플랫폼과 버전의 조합을 track으로 정의, 각 track에 릴리스 상태/차단 버그/sign-off 상태/RC 빌드 준비/품질 지표(크래시·ANR)/DAU를 추적한다.
- 기술 스택: Backstage 기반 React + TypeScript 플러그인. 전사 Backstage 사용 환경이라 마찰이 낮고 모든 개발 도구가 한 곳에 집중된다.
- 색상 코딩: 녹색(완료/준비), 황색(대기/경고), 빨간색(직접 조치 필요)으로 즉각적 상태 인식을 지원한다.
- 백엔드 구조: API 게이트웨이 서비스가 약 10개 기존 시스템에서 데이터를 통합. 초기에는 매 갱신 시 대규모 쿼리로 로딩이 길고 비용이 높았다.
- 성능 최적화: 5분 주기 캐싱 + 사전 데이터 집계로 로딩 시간을 8초로 단축하고 비용을 대폭 절감했다.
- 시계열 분석: 5분 주기 데이터 저장으로 릴리스 프로세스 시각화 구현. 분석 결과 수동 단계 진행이 업무 시간 외 완료되면 최대 12시간 지연이 발생함을 발견했다.
- 자동화 결정: 이 지연이 수개월 안에 자동화 비용을 회수한다고 판단, Robot 개발에 착수했다.
- Robot 동작: 릴리스 상태 7단계(브랜치 → RC → 검토 제출 → 1% 롤아웃 → 100% → 일시 중지 → 취소)를 정의하고, 조건 충족 시 다음 단계를 자동 트리거한다.
- 조건 예시: 수동 테스트 sign-off 완료 + 미해결 버그 없음 + 최신 커밋 자동 테스트 성공 → 검토 제출로 이행한다.
- 결과: 릴리스 사이클 평균 8시간 단축. Backstage 컴포넌트 재사용, Catalog 연동, Band Manager 플러그인(팀 자동 버그 배정)으로 5년 된 도구의 유지 가치를 유지한다.
- 향후 계획: 현재 메인 Spotify 앱 3개 플랫폼에 적용 중이며, 더 가벼운 프로세스가 필요한 소규모 앱을 위해 대시보드 모듈화를 검토 중이다.
왜 읽나모바일 다중 플랫폼 릴리스 자동화를 내부 대시보드와 로봇으로 해결한 Spotify의 구체적 설계와 수치가 필요한 DevOps/릴리스 엔지니어에게 유용하다.