
마이크로서비스 시대, 개발자의 고민
"이 API 문서 어디 있지?"
"이 서비스 누가 관리하고 있어요?"
"새 프로젝트 설정하는데 또 며칠 걸리겠네..."
마이크로서비스 아키텍처가 보편화되면서 개발자들이 마주하는 현실입니다. 서비스는 수십 개로 늘어나고, 각각 다른 레포지토리, 다른 CI/CD
파이프라인, 다른 문서 시스템을 사용합니다.
개발자는 코딩보다 "어디에 뭐가 있는지 찾는" 시간이 더 많아졌습니다.
플랫폼 엔지니어링(Platform Engineering)이란?
플랫폼 엔지니어링은 '데브옵스(DevOps)의 최종 진화' 라고 표현됩니다. 실제 데브옵스에서 얻은 경험적 지식을 더 구체적이고 재현 가능한
형식으로 적용하는 것을 목표로 하는 개념입니다.
플랫폼 엔지니어링은 데브옵스의 구체적인 표현이며, 중앙 집중식 제어와 팀 자율성 간의 상충하는 요구사항을 조율합니다. 이를 통해 품질,
개발자 경험, 고객의 가치 창출 시간을 개선합니다.
Platform Engineering은 자주 사용하는 플랫폼 및 툴 체인을 프로덕트 형태로 설계, 구축 및 운영하여 시장 요구에 따른 즉시성 효과를
높입니다.
DevOps와 플랫폼 엔지니어링의 차이점
| 구분 | DevOps | Platform Engineering |
|---|---|---|
| 목표 | 개발과 운영 간의 협업 문화 조성 | 개발 수명주기 복잡성 관리 |
| 접근 방식 | 문화적 변화 중심 | 도구와 플랫폼 중심 |
| 제공 방식 | 프로세스 개선 | 셀프서비스 도구 제공 |
- DevOps의 목표: 개발과 운영 간의 협업 문화를 조성하여 소프트웨어 개발 수명주기를 단축
- Platform Engineering: 개발 수명주기의 복잡성을 관리하기 위한 중앙화된 툴과 지원을 제공
IDP(Internal Developer Platform)란?
내부 개발자 플랫폼(Internal Developer Platform) 은 Platform Engineering의 주된 메커니즘이자 표현입니다. 개발자가 코드를 생성하고
배포하는 데 필요한 표준화된 셀프서비스 툴과 기술 세트로 구성됩니다.
IDP의 주요 목적
개발자가 사용하는 도구, 문서, 템플릿 등을 한곳에 모아 표준 프레임워크를 제공함으로써 자체적으로 팀의 도구 채택을 조직의 방식으로
구현하여 관리할 수 있습니다.
IDP는 아키텍처의 모든 측면을 발견하여 지식 그래프로 정리하고, 개발자가 통합된 사용자 환경 및 API에서 수행할 수 있는 작업과 정보를
노출합니다.
Backstage: 모든 것을 한 곳에서
이런 문제를 해결하기 위해 Spotify에서 만든 것이 Backstage입니다.
Backstage는 Internal Developer Platform(IDP) 을 구축하기 위한 오픈소스 프레임워크로, 개발자가 필요한 모든 정보와 도구를 한 곳에서
제공합니다.
현재는 CNCF(Cloud Native Computing Foundation) 인큐베이팅 프로젝트로 운영되며, 전 세계 수많은 기업이 도입하고 있습니다.
핵심 기능 살펴보기
🗂️ 1. Software Catalog
모든 서비스, 라이브러리, 데이터베이스를 한눈에 볼 수 있는 카탈로그입니다.
- 서비스 소유자가 누구인지
- API 문서는 어디에 있는지
- 현재 상태는 어떤지
- 의존성은 무엇인지
- _모든 정보가 한 화면에 정리됩니다.*_새 프로젝트나 마이크로서비스를 시작할 때 표준화된 템플릿을 제공합니다.
- 🚀 2. Software Templates
- 코드 스켈레톤 자동 생성
- CI/CD 파이프라인 자동 설정
- 문서 템플릿 포함
- 프로젝트 등록까지 원클릭
- _며칠 걸리던 프로젝트 초기 설정이 몇 분으로 단축됩니다.*_코드와 함께 관리되는 문서 시스템입니다.
- 📚 3. TechDocs
- Markdown으로 작성
- 코드와 동일한 레포지토리에서 관리
- 자동 빌드 및 배포
- 검색 기능 포함
- 더 이상 구글 독스나 위키에서 최신 문서를 찾아 헤맬 필요가 없습니다.*
실제 도입 사례
🌍 해외 사례
- Spotify: 수천 개의 서비스와 수백 명의 개발자가 사용
- Netflix: 마이크로서비스 생태계 관리
- Toyota: 글로벌 개발팀 협업 도구로 활용
- 🇰🇷 국내 사례
- 무신사: 개발자 생산성 향상을 위해 도입
- 카카오뱅크: 금융 서비스 개발 표준화
- 기타 다수 IT 기업에서 도입 검토 중
다음 단계
Backstage가 무엇인지, 왜 필요한지 알아봤습니다.
다음 글에서는 "Backstage 로컬 설치하기" 를 통해 직접 설치하고 실행해보겠습니다. 5분만 투자하면 여러분의 개발 환경에서 Backstage를
체험해볼 수 있습니다.
'Engineering' 카테고리의 다른 글
| Hashicorp Nomad란? 기능 설명과 설치 가이드 (1) | 2024.06.18 |
|---|---|
| Cast.ai란 component 및 작동원리 (0) | 2024.05.21 |
| EKS에서 Spring APP Metric 추적 및 K6 LoadTest (0) | 2024.05.14 |
| AWS CloudTrail & CloudWatch & Lambda를 활용한 리소스 생성, 삭제 추적 (0) | 2024.04.25 |
| K6 load testing (0) | 2024.04.05 |