왜 2025년의 조직은 "플랫폼 팀"을 당연히 둘까
10년 전 DevOps의 구호는 "You build it, you run it"이었다. 팀이 개발과 운영을 모두 하자는 것. 이상은 훌륭했지만 현실은 달랐다 — 한 팀이 Kubernetes·Terraform·CI/CD·관측가능성·보안 전부를 다루는 건 불가능이다. 대부분 팀의 절반 이상 시간이 인프라 보일러플레이트에 빠졌다. 이 딜레마의 해답이 Platform Engineering이다. "전담 플랫폼 팀이 내부 제품을 만들어, 프로덕트 팀에게 셀프 서비스로 제공한다"는 조직 모델.
2022년 Gartner Hype Cycle에서 Platform Engineering이 빠르게 올라갔고, 2024~2025년 "Peak of Inflated Expectations"을 지나 실용 단계로 진입했다. Puppet 2024 State of DevOps Report는 조직의 72%가 플랫폼 팀을 보유한다고 응답. Team Topologies 책(Matthew Skelton/Manuel Pais)이 이 흐름의 이론적 기반이 되었고, CNCF의 platforms.cncf.io 백서가 용어를 통일했다.
이 글은 그 2025년 플랫폼의 구성 요소·툴·지표·안티패턴을 전부 훑는다.
이 글은 앞선 관측가능성 가이드의 연속이다. 관측을 쉽게 붙이고, 인프라를 쉽게 프로비저닝하고, 반복을 플랫폼이 해주는 것 — 그것이 플랫폼 엔지니어링.
1부. DevOps → Platform Engineering — 조직론의 대전환
1.1 Team Topologies의 4가지 팀 유형
- Stream-aligned team — 제품/서비스 한 흐름을 책임(가장 많음)
- Platform team — 내부 제품을 제공, X-as-a-Service
- Enabling team — 일시적 멘토/가이드, 지식 전파
- Complicated-Subsystem team — 고도 전문성 영역(ML infra, 결제 코어 등)
핵심 인사이트: Cognitive Load(인지 부담). 스트림 팀이 다룰 수 있는 복잡도에는 한계가 있고, 그걸 넘는 건 플랫폼·Enabling 팀이 흡수해야 팀이 질식 안 함.
1.2 Platform as a Product
플랫폼은 내부 고객(다른 엔지니어)을 가진 제품이다. 그래서 PM, UX 리서처, 로드맵, NPS(내부 고객 만족도) 조사가 필요하다. "인프라 팀이 티켓 받아 처리"가 아니라 "내부 제품팀이 self-service API를 빌드"하는 것.
1.3 Spotify·Netflix·Uber의 원형
- Spotify의 Backstage(2020 오픈소스화) — 개발자 포털의 de facto
- Netflix Spinnaker, Atlas, Titus — 초기 플랫폼 사례
- Uber의 uDeploy·uOwn — 서비스 카탈로그 + 배포 파이프라인 통합
이들이 "플랫폼 엔지니어링"을 구체화했고, 2024~2025년 중견 기업까지 확산됐다.
2부. Internal Developer Platform (IDP) — 한 포털로 다 해결
2.1 IDP의 구성 요소
CNCF 백서의 5개 평면 모델.
- Developer Control Plane — 포털 UI, CLI, API
- Integration and Delivery Plane — CI/CD, IaC
- Monitoring and Logging Plane — 관측가능성(앞 글)
- Security Plane — Secrets, RBAC, Policy
- Resource Plane — Kubernetes, DB, 메시지 큐, CDN
2.2 Backstage — 포털 표준
Spotify가 기부, CNCF 인큐베이팅. 핵심 개념 3가지.
- Software Catalog — 모든 서비스·라이브러리·팀을 그래프로
- Software Templates (Scaffolder) — "Golden Path" 뼈대로 새 서비스 생성
- TechDocs — 각 서비스 README가 포털에서 통합 렌더링
2024~2025 추가된 것: Backstage RBAC(Permission Framework), Search/Discovery GA, TechInsights (Scorecards), AI-assisted Catalog Curation.
2.3 Golden Path와 Paved Road
"가장 쉬운 길 = 가장 올바른 길"로 만드는 원칙. 새 서비스를 만들 때 Backstage 템플릿을 선택하면 자동으로:
- Git 레포 생성, 권한 설정
- CI/CD 파이프라인 연결
- OTel 계측 활성화
- Kubernetes 네임스페이스, Ingress, TLS
- 시크릿 관리 연결 (Vault/External Secrets)
- 관측 대시보드 프리셋
→ 개발자는 비즈니스 로직만 쓰면 된다. 표준을 강제하는 대신 쉽게.
2.4 Scorecards — 서비스의 건강 지표
- 테스트 커버리지 > 70%
- CI 통과율 > 95%
- SLO 정의됨
- Ownership 태그 존재
- Runbook 작성됨
- Dependabot 활성
각 팀이 자기 서비스의 스코어를 한눈에 본다. Backstage TechInsights, Cortex, OpsLevel, Atlassian Compass가 이 카테고리.
3부. GitOps — Git이 진실의 유일한 원천
3.1 원리
- Declarative: 원하는 상태를 YAML에
- Versioned: Git 이력이 곧 변경 이력
- Pulled, not Pushed: 클러스터 내부 에이전트가 당겨서 동기화
- Continuously Reconciled: drift가 있으면 수정
3.2 ArgoCD vs Flux
- ArgoCD — UI 훌륭, ApplicationSet·Rollouts 강력
- Flux — Toolkit 철학, GitOps Bridge 패턴, Weave 철수 후 커뮤니티 주도
- 대부분 조직은 ArgoCD가 기본값
3.3 Crossplane — 인프라도 Kubernetes API로
AWS S3, GCP Cloud SQL, Azure Storage 같은 클라우드 리소스를 CRD로 표현. 즉 "YAML로 RDS 만들기". Terraform을 보완·대체하는 흐름.
apiVersion: database.example.com/v1alpha1
kind: PostgresInstance
metadata: { name: user-db }
spec:
region: us-east-1
size: db.t4g.medium
version: "16"
3.4 Progressive Delivery — Argo Rollouts / Flagger
- Canary (10% → 50% → 100%)
- Blue/Green
- 자동 분석: Prometheus 메트릭 기반 rollback
- LaunchDarkly·Statsig 등 Feature Flag와 결합
3.5 Helm vs Kustomize vs Timoni vs KCL
- Helm — 템플릿 기반, 생태계 1위, 복잡한 values 파일 병목
- Kustomize — Overlay 패치, kubectl 내장
- Timoni/CUE — CUE 언어로 강타입 스키마
- KCL — 중국 중심으로 성장 중, 타입 시스템 풍부
2024~2025 트렌드: "Helm + Kustomize 혼용 지친 팀들이 Timoni/KCL 탐색".
4부. Kubernetes Operator — 도메인 지식을 자동화
4.1 CRD + Controller = Operator
- CRD(Custom Resource Definition)로 도메인 객체 선언(예:
PostgresCluster) - Controller가 desired vs actual을 지속 reconcile
- 인간 운영자의 지식이 코드로 녹는다
4.2 유명 Operator
- Prometheus Operator — ServiceMonitor/PodMonitor
- Cert-Manager — Let's Encrypt 자동 갱신
- PostgreSQL: CloudNativePG, Zalando Postgres Operator
- Kafka: Strimzi
- Redis: Redis Operator, Opstree
- Observability: OpenTelemetry Operator
- Service Mesh: Istio Operator, Linkerd CLI
- KEDA — Event-driven autoscaling
4.3 Operator SDK vs Kubebuilder
- Go 기반이 압도적, Ansible/Helm 기반 가능
- controller-runtime이 공용 라이브러리
- 2024 추가: Kopf (Python), shoot-rs / kube-rs (Rust)
4.4 Operator 작성 팁
- Status 서브리소스 사용 — spec과 status 분리
- Finalizer로 정리 순서 보장
- RBAC 최소 권한
- reconcile 안에서 외부 호출 짧게, idempotent하게
- Leader election 필수
5부. Platform Abstraction의 새 물결 — Score, Humanitec, Kratix
5.1 문제
Kubernetes YAML은 개발자가 쓰기에 너무 저수준. "내 서비스에 Postgres DB 붙여줘"라는 의도만 표현하고 싶다.
5.2 Score (score.dev)
Humanitec+CNCF. 플랫폼 중립 워크로드 스펙.
apiVersion: score.dev/v1b1
metadata: { name: my-app }
containers:
main:
image: myorg/app:latest
variables:
DB_URL: $${resources.db.url}
resources:
db:
type: postgres
CI에서 score-compose·score-k8s로 목적 환경별 매니페스트로 컴파일.
5.3 Humanitec
Score를 포함한 상용 Internal Developer Platform 빌더. Platform Orchestrator가 환경별 resource(Postgres, Redis 등)를 동적으로 그래프 만들어 생성.
5.4 Kratix
영국 Syntasso 제작. "Promises"라는 추상화로 플랫폼 팀이 서비스형 API를 게시.
5.5 Port, Mia-Platform, Cortex
상용 IDP 빌더들. Port는 Backstage와 다르게 "스키마 중심" 접근. Mia는 유럽계, 금융권 강세. Cortex는 Scorecard 특화.
6부. 재현 가능한 빌드 — Dagger, Nix, Bazel, Buildpacks
6.1 왜 재현성인가
- "내 랩탑에서는 되는데요"를 제거
- 같은 commit hash면 같은 artifact hash
- 캐시 가능성 폭발적 향상 (CI 시간 50~80% 단축)
6.2 Dagger — 코드로 CI
- CUE → TypeScript/Python/Go SDK로 피봇(2023)
- Docker 안에서 파이프라인 실행 → 로컬/CI 동일
- YAML 지옥 탈출, 타입 안전
6.3 Nix / NixOS
- 함수형 패키지 매니저, 해시 기반 저장소
- flake이 표준 진입점
- Determinate Systems, Replit이 대중화 견인
- 학습 곡선 가파름 — 하지만 한번 익히면 "환경 문제 영원히 종결"
6.4 Bazel / Buck2 / Pants
- 대규모 모노레포 빌드 (Google, Meta, Twitter)
- Remote Cache + Remote Execution으로 수천 코어 분산
- 학습 비용이 매우 높음 → 소형팀에는 과잉
6.5 Buildpacks (CNB)
- Heroku 시절 원형, 현재 Paketo·Google Buildpacks
- Dockerfile 없이 소스코드만 보고 이미지 생성
- Spring Boot의
spring-boot:build-image, Java/Node에서 인기
6.6 SBOM + SLSA
- 2024년 EU Cyber Resilience Act, 미국 EO 14028로 법제화
- SBOM: 이미지에 포함된 모든 의존성 명세(CycloneDX/SPDX)
- SLSA Level 3: 서명된 빌드 origin 증명 (in-toto, Sigstore cosign)
- 플랫폼이 자동으로 삽입해야 개별 팀이 신경 안 써도 됨
7부. Remote Dev Environment — 노트북에서 벗어나기
7.1 문제
- 동일 환경 맞추기 지옥 (Mac Intel vs M1 vs Linux)
- 대형 모노레포는 노트북 한계 초과
- 보안: 소스코드가 개인 장비에 있음
7.2 GitHub Codespaces
- VS Code + 클라우드 VM(최대 32-core)
.devcontainer/devcontainer.json에 환경 선언- 조직당 분 단위 과금, 사용 안 할 때 자동 중지
7.3 Gitpod (Cloud → Self-hosted)
2024년 SaaS 중단·OSS(Flex) 집중. 기업 자체 호스팅으로 선회. 보안 민감 조직(금융·의료)에서 인기.
7.4 Coder
- 자체 호스팅 전용
- Terraform으로 워크스페이스 템플릿 정의
- Fortune 500에서 인기 상승
7.5 JetBrains Space / Fleet, Replit, Cursor, GitHub Copilot Workspace
각자 다른 각도로 접근. Cursor는 2024 $9B 평가로 IDE + AI 통합의 대세가 됨. GitHub은 Copilot Workspace로 "이슈 → PR까지 AI가" 시도.
7.6 선택 기준
- 규제 받는 데이터? → 자체 호스팅(Coder/Gitpod Flex)
- 빠른 시작 + GitHub 중심? → Codespaces
- 대형 모노레포? → Bazel + Remote Build + Remote Dev 조합
8부. 시크릿·폴리시·보안
8.1 Secret Management
- HashiCorp Vault가 고전, 2024 BSL 라이선스 전환 후 OpenBao 포크
- Kubernetes External Secrets Operator → 클라우드 Secret Manager 연동
- SOPS — Git에 암호화된 secret 저장
- Sealed Secrets (Bitnami) — 클러스터가 복호화 키 보유
8.2 Policy as Code
- OPA/Rego — Kubernetes admission, API 게이트웨이에 이식 가능
- Kyverno — K8s 전용, YAML 기반 (Rego 학습 비용 없음)
- Conftest — CI에서 IaC 검증
- Cedar (AWS 2023 오픈소스) — 인가 정책 언어
8.3 RBAC과 Zero-Trust
- Kubernetes RBAC은 유연하지만 복잡
- SPIFFE/SPIRE 워크로드 ID (보안 글에서 다룸)
- Service Mesh(Istio/Linkerd)로 mTLS 자동
- Tetragon·Falco로 런타임 침입 탐지
8.4 Supply Chain
- Sigstore (cosign) — 이미지 서명 표준
- in-toto provenance — 빌드 파이프라인 증명
- Dependabot·Renovate — 의존성 자동 PR
- 2024 xz-utils 백도어 사건 이후 플랫폼이 의존성 검증을 강제하는 흐름
9부. AI + Platform Engineering
9.1 Copilot Workspace·Cursor Agent·Claude Code
- 이슈 → 플랜 → PR까지 AI가 초안 작성
- 플랫폼 팀이 "AI가 쓰기 쉬운 패턴"을 만들어야 함(표준 구조, 명확 도큐)
- Context: CODEOWNERS, README, AGENTS.md 파일 등장
9.2 AI 기반 Incident Response
- PagerDuty AIOps, Rootly, Incident.io — 장애 초동 자동 요약
- Slack 채널 생성, 관련 인원 호출, 타임라인 기록 자동
- 포스트모템 초안 작성까지
9.3 AI Platform의 표준화
- LLM 게이트웨이: Portkey, LiteLLM, Helicone
- RAG 파이프라인 내재화: 플랫폼 팀이 "회사 문서 RAG" 서비스를 제품팀에 제공
- Guardrails, Prompt Eval Suite도 플랫폼 책임
9.4 Platform Engineering과 MLOps 통합
- Kubeflow, Metaflow, Ray, SkyPilot
- Bento/BentoML, Modal, Replicate
- Vertex AI Pipelines, SageMaker Studio
- "ML 워크로드도 IDP의 일부"가 2025년 표준
10부. DX 지표 — DORA, SPACE, DX Core 4
10.1 DORA 4 metrics (2019~)
Nicole Forsgren의 "Accelerate" 기반.
- Deployment Frequency
- Lead Time for Changes
- Change Failure Rate
- Mean Time to Restore
Elite팀은 하루 수십번 배포, 분 단위 회복. 측정 단순하고 설득력 강함.
10.2 SPACE Framework (Microsoft, 2021)
DORA가 놓친 "사람" 측면.
- Satisfaction
- Performance
- Activity
- Communication
- Efficiency & Flow
Developer Experience를 다차원으로 본다.
10.3 DX Core 4 (2024, Abi Noda)
GetDX 팀이 제안한 최신 합의. DORA+SPACE를 간결히 융합.
- Speed — PR throughput, time-to-PR merge
- Effectiveness — "생산적이었다" 자기 보고 비율
- Quality — Change Failure Rate, 프로덕션 사고
- Impact — 비즈니스 가치 전달
10.4 측정 도구
- Jellyfish, LinearB, Swarmia, Faros, Code Climate Velocity, GetDX
- 자체 구축: GitHub API + Jira API + Grafana 대시보드
주의: 지표를 개인 KPI로 쓰면 Goodhart's Law 발동. 팀·조직 수준 트렌드로만 써야 함.
11부. FinOps — 누구나 신경 안 쓰는 플랫폼의 비용
11.1 클라우드 비용이 문제가 되는 시점
- 연 $1M 넘으면 전담 FinOps 필요
- 2024 불경기 이후 많은 회사가 re-hosting(K8s → ECS, Datadog → 자체), re-architecting(GPU 공유, Spot)
11.2 도구들
- OpenCost — CNCF, 컨테이너 단위 비용 배분 오픈소스
- Kubecost — 상용 확장
- Vantage — 멀티 클라우드 비용 대시보드
- AWS Cost Explorer + Savings Plans 기본
11.3 비용 절감 패턴
- Spot/Preemptible 노드 (최대 90% 할인)
- Karpenter (AWS 2023~)로 동적 노드 확장
- GPU 공유: MIG, Time-slicing, Nebius
- 데이터 전송 비용(최악의 카테고리): Tailscale/ZeroTier·Cloudflare R2 egress-free
11.4 플랫폼 팀이 해야 할 일
- 팀/서비스별 비용 대시보드
- 태그 강제 — 비용 배분 불가능한 리소스 배포 차단
- Dev 환경 자동 shutdown (저녁/주말)
- Right-sizing 추천 — 90일 사용률 기반
12부. 플랫폼 조직 설계 — 실전
12.1 팀 크기
- 엔지니어 50명 미만 → 플랫폼 전담 팀 필요 없을 수도, 플랫폼 책임자 1명 + 각 팀이 own
- 50~200명 → 2~5명 플랫폼 팀
- 200~1000명 → 플랫폼 부서, 여러 전문 팀(관측, CI/CD, 인프라, 보안, Dev Env)
- 1000+ → Platform Org + Enabling teams
12.2 플랫폼 팀 RACI
- Responsible: 플랫폼 제품 운영
- Accountable: CTO 또는 VPE
- Consulted: 각 프로덕트 팀 Tech Lead
- Informed: 전사
12.3 Platform Product Manager
필수 포지션. 기능 요청 큐 관리, 로드맵, 내부 사용자 인터뷰, NPS. 없는 팀은 "엔지니어가 좋아하는 기능"만 만들고 실제 필요에 어긋나기 쉬움.
12.4 Enabling Team
플랫폼이 아직 없거나, 새 기술(예: AI/ML 도입)에 한시적으로 투입되어 스트림 팀을 학습시키고 패턴을 만든 뒤 해산·재배치.
13부. 실패 패턴 — 플랫폼 팀이 망하는 10가지
- 플랫폼을 기술 프로젝트로 취급 — 제품이 아님
- 내부 고객 인터뷰 없이 만든 기능
- 강제(mandate) 일변도 — Golden Path가 실제로 더 편해야 채택됨
- 문서가 없음 — DX 망함
- 플랫폼 팀이 처리팀(티켓 대응)화
- 실력 있는 시니어만 플랫폼 팀에 몰림 → 스트림 팀 속도 저하
- K8s everything — 단순 앱도 K8s에 올려 복잡도 폭발
- 추상화 과다 — 디버깅이 3겹 깊어짐
- 지표가 활동 중심(커밋 수, 티켓 수) — 성과 중심 아님
- 비용 가시성 부재 — 경영진 신뢰 잃음
14부. 체크리스트 12 · 안티패턴 10
✅ 체크리스트 12
- Backstage(또는 유사 포털) 서비스 카탈로그가 최신인가?
- Golden Path 템플릿이 있고, 신규 서비스의 70% 이상이 이걸로 시작하는가?
- Scorecard로 서비스 건강도가 가시화되는가?
- GitOps로 프로덕션 변경이 Git에 기록되는가?
- Progressive Delivery(Canary/Blue-Green)가 기본인가?
- 인프라 resource(DB, Redis 등)가 self-service로 프로비저닝되는가?
- 시크릿 관리 표준(Vault/External Secrets)이 강제되는가?
- SBOM + 서명이 모든 artifact에 붙는가?
- Remote Dev Environment가 있어 5분 안에 온보딩 가능한가?
- DORA 4 + DX Core 4가 분기별 측정되는가?
- FinOps 대시보드로 팀·서비스별 비용이 보이는가?
- Platform Product Manager가 로드맵/NPS를 관리하는가?
⚠️ 안티패턴 10
- "You build it, you run it"을 플랫폼 지원 없이 교조적으로 밀어붙임
- Backstage만 깔고 실제 통합은 안 함
- Terraform 레포가 전 직원에게 open, 무질서한 drift
- 한 팀이 Kubernetes·Vault·Terraform을 모두 직접 운용
- CI가 평균 30분 넘음 — 플랫폼 개선 순위 밀림
- Dev/Stage/Prod 환경이 설정 drift
- Paved Road가 실제로 더 불편 — 팀들이 우회
- 시크릿을 환경변수·Git에 평문
- 플랫폼 리포지토리에 프로덕트 팀 PR 금지 → 플랫폼이 병목
- DORA/DX 지표를 개인 평가에 연결
다음 글 예고 — "데이터 플랫폼의 현대" — Lakehouse·Iceberg·dbt·Airflow/Dagster·Spark·Flink·DuckDB·ClickHouse·Snowflake·Databricks·BigQuery·AI 시대의 데이터 계약
플랫폼 엔지니어링 옆자리에는 언제나 데이터 플랫폼이 있다. 다음 글은 2025년 데이터 스택의 지형을 그린다.
- Modern Data Stack 이후 — 통합 vs 전문화
- Lakehouse — Delta Lake, Apache Iceberg, Apache Hudi
- Table Format 전쟁 — Iceberg가 이기고 있다
- ETL → ELT → ELT++ — dbt, SQLMesh, Trino
- Workflow — Airflow, Dagster, Prefect, Temporal for Data
- Streaming — Flink, Spark Structured Streaming, RisingWave, Materialize
- OLAP — ClickHouse, DuckDB, StarRocks, Pinot
- Warehouse — Snowflake, Databricks, BigQuery, Redshift, Firebolt
- Semantic Layer — Cube, dbt Semantic Layer, AtScale
- Data Contracts — Producer-Consumer 책임 분담
- AI 시대의 데이터 — Feature Store, Vector DB, Embedding Pipeline
플랫폼이 애플리케이션을 굴린다면, 데이터 플랫폼은 의사결정의 기반을 굴린다. 다음 편에서 만난다.