
하루에 1000번 배포하는 조직 되기
두줄요약
GitHub Actions와 Kubernetes 기반 배포 체계를 커밋 단위 배포로 개선했습니다. 배포 단계를 줄이고 deploybot을 구축해 배포 횟수를 약 4배 늘렸습니다.
문제 상황
- Git-Flow의 반복적인 브랜치 전환·PR·리뷰로 인한 배포 병목과 대규모 변경 묶음 배포
- 태그 기반 배포의 개별 기능 롤백 한계와 Kubernetes 설정 변경 추적 어려움
구조와 흐름
- master 기반 단일 브랜치 모델과 PR 단위 squash merge를 통한 배포 가능 커밋 관리
- GitHub Actions에서 lint·unit test·Docker image 빌드 후 GitHub Deployments 이벤트로 Kubernetes 배포
- deploy와 Slack 기반 deploybot 분리를 통한 커밋 SHA별 배포·상태 조회·이력 확인
선택 이유
- 작은 PR과 GitHub Revert Pull Request를 활용한 기능 단위 롤백
- GitHub Deployments를 배포 메타데이터 저장소로 활용한 배포 기록 일원화
- Kubernetes 객체 YAML·GitHub Secrets·gomplate 기반 Infrastructure as Code
성능/운영 포인트
- 기존 대비 배포 단계 60~83% 축소와 배포 횟수 약 4배 증가
- deploy와 rollout 분리, 점진적 rollout 및 옵저버빌리티 모니터링 기반 안정성 관리
- GitHub 의존성, 배포 잠금, 미배포 커밋 알림, 환경별 채널 분리, rollout 완료 확인 과제





