flex 팀이 공유 dev 환경 점유 충돌과 격리 환경 생성의 복잡성(7단계) 문제를 해소하기 위해 ArgoCD ApplicationSet을 활용한 브랜치 기반 자동 환경 생성·회수 체계(Environment Variant)를 도입한 사례다. 인프라를 소프트웨어처럼 시리즈의 세 번째 글이다.
핵심 포인트- 공유 dev 환경이 병목이 되어 팀 간 점유 충돌과 방치된 환경으로 인한 시스템 마비 사고가 발생했다.
- dev-variant/{이름} 브랜치를 push하면 약 15분 후 격리 환경이 자동 생성되고, 브랜치 삭제 시 환경이 자동 정리된다.
- 브랜치 생명주기가 곧 환경 생명주기가 되어 7단계 절차가 1단계로 단순화됐다.
- 기본 환경(baseline) 위에 변경 앱만 덮어쓰는 얇은 층 구조로 격리와 자원 효율을 병행한다.
- 포털의 매니페스트 변경 책임이 약 70% 감소했다.
상세 정리- 문제 1 — 환경 점유 충돌: 공유 dev 환경이 여러 팀의 병목이 됐다. 누가 dev 환경을 쓰는지 확인하고 대기하는 비효율이 반복됐다.
- 문제 2 — 생성 복잡성: 격리 환경을 만드는 데 7단계 절차가 필요했다. 만들기 어렵다 보니 지우기는 더 어려워져 방치된 환경이 전체 시스템을 마비시키는 사고가 발생했다.
- 해결책 — Environment Variant: ArgoCD ApplicationSet을 활용해 브랜치 push→환경 생성, 브랜치 삭제→환경 정리의 자동화 체계를 구현했다.
- 구조 — baseline + 얇은 층: 기본 환경(baseline) 위에 변경 앱만 덮어쓰는 구조. 변경이 없는 서비스는 baseline을 그대로 사용해 불필요한 리소스를 쓰지 않는다.
- 생성 흐름: dev-variant/{이름} 브랜치 push → ArgoCD ApplicationSet이 감지 → 약 15분 후 격리 환경 준비 완료.
- 회수 흐름: 브랜치 삭제 → ApplicationSet이 감지 → 환경 자동 정리. 방치 환경 문제 근본 해소.
- 효과 — 7단계→1단계: 격리 환경 생성을 위한 복잡한 절차가 브랜치 push 하나로 단순화됐다.
- 효과 — 책임 분산: 포털의 매니페스트 변경 책임이 약 70% 감소. 브랜치 생명주기가 환경 생명주기를 자동으로 관리하게 됐다.
왜 읽나공유 dev 환경 병목과 격리 환경 생성 복잡성에 고민 중인 DevOps·인프라 팀, 특히 ArgoCD ApplicationSet으로 브랜치 기반 환경 자동화를 구현하려는 팀에게 실용적이다.