기능 배포할 때 블루/그린 배포 방식을 많이들 이용 하실 텐데요.
기능 플래그를 활용하면 블루/그린 배포를 한층 더 효과적으로 하실 수 있는 것 알고 계셨나요?
블루/그린 배포란 이전 버전(블루, V1)의 사용자 트래픽을 이전하고자 하는 새 버전(그린, V2)으로 점진적으로 이전하는 릴리즈 모델 중 하나 입니다.
무중단 점진 배포를 통해 배포 장애 위험을 관리하고 릴리즈 시기를 컨트롤 할 수 있게 해줍니다. 이런 방식은 블루 → 그린으로 모든 트래픽이 한꺼번에 이전하게 되어서 시스템 단위의 큰 배포를 관리할 때에 적합한 방식인데요. 작은 기능들을 자주 배포하고자 할 때에는 다소 부담스러울 수 있어서 일반적으로는 개발팀보다 시스템을 운영하는 팀에서 리스크 관리를 위해 사용합니다.
블루/그린 배포 루틴에 기능 플래그를 조합하여 사용하면 훨씬 정교하게 배포 관리를 하실 수 있습니다.
출시할 기능별로 기능 플래그를 생성해서 배포와 출시를 분리하면 어플리케이션 버전과 관계없이 특정 기능의 출시를 유연하게 제어할 수 있습니다.
예를 들면 이런 것인데요.
기능 플래그를 OFF한 상태로 배포 상태를 그린 → 블루로 변경합니다. 트래픽이 블루로 모두 할당된 상태에서 기능 플래그의 점진 배포 기능을 이용해서 출시를 제어 합니다.
처음에는 1~5% 만 ON 하여 이상징후 및 고객 반응을 확인하고, 이상이 없으면 10%, 20%, 50% … 점차 늘려가며 기능을 출시 합니다. 기존의 루틴에 기능 플래그를 접목 시킬 경우 문제가 생겼을 때 빠른 롤백이 가능하고, 트래픽을 점진적으로 늘려가며 기능을 출시함으로써 안전성을 강화할 수 있기 때문에 안심하고 더 자주, 빠르게 기능을 출시할 수 있게 됩니다.
1부. 이렇게 좋은 기능이 있었다고? 기능 플래그를 소개 합니다.
2부. 기능 플래그로 점진 출시하기
3부. 기능 플래그로 원하는 타겟에게만 출시하기