[인프라를 소프트웨어처럼 3/5] 환경은 브랜치에서 태어난다: Environment Variant
데브옵스
[인프라를 소프트웨어처럼 3/5] 환경은 브랜치에서 태어난다: Environment Variant
두줄요약
공유 dev 병목을 없애기 위해 브랜치 하나로 격리 환경을 만드는 Environment Variant 설계를 소개했습니다. ArgoCD ApplicationSet으로 생성과 회수를 자동화해 환경 생명주기를 git과 연결했습니다.
문제 상황
- 공유 dev 환경 하나를 여러 개발자가 점유해야 해 배포와 통합 검증이 직렬화되는 병목
- 환경 생성·삭제 절차가 7단계로 복잡해 방치된 낡은 환경이 dev 전체 장애로 번지는 구조
- 현재 살아 있는 환경과 사용자를 한눈에 보기 어려워 정리와 회수가 어려운 상태
원인 분석
- 환경이 매니페스트 변경과 수동 동기화에 흩어져 있어 생성 책임이 분산된 구조
- 포털로 변경을 감싸도 PR·리뷰·머지 게이트가 남아 복잡성이 해소되지 않는 문제
- 브랜치와 환경의 생명주기가 분리되어 오래된 환경이 쉽게 outdated 되는 구조
해결 방법
- ArgoCD ApplicationSet의 SCM Provider Generator로 브랜치 목록을 감시해 환경을 자동 생성·정리
dev-variant/{이름}브랜치 push를 생성, 삭제를 회수로 연결해 환경 생명주기를 git 브랜치에 결합- baseline 위에 바꾼 앱만 덮는 얇은 variant를 두고 host 기반 라우팅으로 격리 환경 제공
성능/운영 포인트
- 생성 단계가 7단계에서 1단계로 축소되고 매니페스트 변경 책임이 크게 감소
- 바꾼 앱 몇 개의 파드만 늘어나는 구조로 여러 variant 동시 운영 부담 완화
- dormant 환경 일괄 정리와 장기 미사용 브랜치 회수로 난립과 방치 통제
