피드로 돌아가기
Dev.toDevOps
원문 읽기
GitFlow 탈피와 Release-Stream 도입을 통한 3개 병렬 릴리스 트랙 최적화
Trunk-Based Development with Release Streams: A Real-World Case Study
AI 요약
Context
단일 develop 브랜치를 사용하는 GitFlow 구조에서 병렬 릴리스 진행 시 미래 코드 혼입으로 인한 병목 발생. 이로 인해 특정 기능만 추출하는 Manual Cherry-Picking 부하가 증가하며 CI/CD 파이프라인의 신뢰성이 저하됨.
Technical Solution
- permanent develop 브랜치를 제거하고 master를 Single Source of Truth로 설정한 Trunk-Based Variant 채택
- 각 릴리스 일정에 맞춰 master에서 release-x.x.x 브랜치를 즉시 생성하는 Just-in-Time Release Initialization 구현
- 릴리스 브랜치 기반의 개별 feature 브랜치 운영을 통한 Parallel Stream Isolation 확보
- Build Once, Deploy Many 원칙에 따라 릴리스 브랜치에서 생성한 불변의 Fingerprinted Artifact를 UAT와 Prod에 동일하게 배포
- 하위 릴리스의 수정 사항을 상위 릴리스로 전파하는 Cascading Upward Merges 설계를 통해 Regression 방지
실천 포인트
1. 병렬 릴리스 트랙이 3개 이상인지 확인
2. develop 브랜치로 인한 Cherry-pick 빈도 측정
3. Feature Flag 도입 준비 수준 검토 후 Release-Stream 대안 고려
4. 릴리스 브랜치에서 생성한 아티팩트가 환경 간 변경 없이 프로모션되는지 검증
5. 하위 브랜치에서 상위 브랜치로 이어지는 Cascading Merge 프로세스 수립