피드로 돌아가기
Trunk-Based Development with Release Streams: A Real-World Case Study
Dev.toDev.to
DevOps

GitFlow 탈피와 Release-Stream 도입을 통한 3개 병렬 릴리스 트랙 최적화

Trunk-Based Development with Release Streams: A Real-World Case Study

Sourabh Rana2026년 5월 20일6intermediate

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 프로세스 수립

원문 읽기