플랫폼 엔지니어링(Platform Engineering)은 개발자가 셀프서비스로 인프라를 활용할 수 있는 내부 개발자 플랫폼(IDP)을 구축하는 분야다. DevOps의 인지 부하를 줄이고 개발자 경험(DX)을 향상시키는 것이 목표다.
핵심 개념
IDP (Internal Developer Platform):
- 셀프서비스 인프라 프로비저닝
- 표준화된 배포 파이프라인
- 관찰 가능성 기본 제공
- 보안 정책 내장
"플랫폼팀은 개발팀의 내부 고객"
→ 플랫폼도 프로덕트처럼 관리
Backstage (Spotify)
yaml
# catalog-info.yaml (서비스 메타데이터)
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: payment-service
description: 결제 처리 서비스
tags: [java, spring-boot, payments]
annotations:
github.com/project-slug: myorg/payment-service
backstage.io/techdocs-ref: dir:.
spec:
type: service
lifecycle: production
owner: payments-team
system: checkout
dependsOn:
- component:order-service
- resource:payments-db
providesApis:
- payment-api
Golden Path 템플릿
yaml
# Backstage Software Template
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: spring-boot-service
spec:
steps:
- id: fetch-base
action: fetch:template
input:
url: ./skeleton
values:
serviceName: ${{ parameters.serviceName }}
- id: create-repo
action: github:repo:create
- id: register
action: catalog:register
관련 개념