점진적 롤아웃은 시간이 지남에 따라 기능에 노출되는 대상의 비율을 높여 새로운 기능을 점진적으로 릴리스하는 방식입니다. 카나리는 가드레일 메트릭을 모니터링하고 회귀가 감지되면 자동으로 일시 중지하거나 중단하는 점진적 롤아웃입니다.
점진적 롤아웃
- Feature Flag로 이동하여 대상 환경에 대한 타겟팅 규칙 및 롤아웃을 엽니다.
- 타겟팅 규칙 추가를 클릭하고 롤아웃 단계 추가를 선택하여 다단계 롤아웃을 생성합니다.
- 롤아웃 단계를 구성합니다.
- 각 단계의 비율을 사용자 지정하고 필요에 따라 단계를 추가하거나 삭제합니다.
- 롤아웃을 더 느리거나 더 빠르게 조절하기 위해 단계 간 지연 시간을 변경합니다.
- 트래픽 분할을 클릭하여 여러 변형을 동시에 롤아웃합니다.
롤아웃 시작 및 제어
SDK가 타겟팅 규칙을 평가할 수 있도록 환경에서 플래그를 1. 활성화합니다.
2. 롤아웃 시작을 클릭하여 점진적 롤아웃을 시작합니다.
롤아웃 시작을 클릭하는 대신 향후 날짜 및 시간에 자동으로 롤아웃을 시작하려면 규칙 구성 시 시작 시간을 예약하세요.
롤아웃이 시작된 후:
- 롤아웃 일시 중지를 클릭하여 진행을 일시적으로 중단합니다.
- 롤아웃 중지를 클릭하여 롤아웃의 모든 진행 상황을 되돌립니다.
평가 추적을 통해 진행 상황을 모니터링하고 롤아웃 이벤트에 대한 알림을 구성하세요.
카나리
카나리는 가드레일 메트릭을 포함하는 점진적 롤아웃입니다. 가드레일 메트릭은 오류율, 지연 시간, 긴 작업 수와 같은 핵심 성과 지표(KPI)를 측정합니다.
카나리 작동 방식
가드레일 메트릭이 구성되면 롤아웃은 다음 두 그룹의 메트릭을 모니터링합니다.
- 처리군: 롤아웃 중인 변형을 적용받는 대상
- 대조군: 처리군 변형을 적용받지 않는 대상
카나리가 가드레일 메트릭에서 통계적으로 유의미한 부정적 변화를 감지하면 자동으로 롤아웃을 일시 중지하거나 중단합니다.
APM 가드레일 메트릭 사용
카나리 배포를 위한 APM 가드레일 메트릭은 미리 보기 상태입니다. 액세스 권한을 요청하려면 Datadog 담당자에게 문의하세요.
APM 가드레일 메트릭은 보존된 스팬을 사용하여 대조군과 처리군 간의 애플리케이션 성능을 비교합니다. 다음 항목을 모니터링할 수 있습니다.
- 평균 스팬 지속 시간
- 오류율
- P90 스팬 지속 시간
- 숫자 스팬 속성의 평균
카나리에 APM 지표를 추가하기 전에 APM 트레이스 보강이 필요합니다. 보강을 통해 각 트레이스에 플래그 할당, 변형 및 대상을 기록하므로 카나리가 APM 데이터를 올바른 그룹과 연결할 수 있습니다.
APM 트레이스 보강을 활성화한 후:
- 추적된 요청 중에 애플리케이션이 Feature Flag를 평가하는지 확인합니다.
- Trace Explorer에서 루트 스팬에 디코딩된
@feature_flags.<flag_key> 속성이 포함되어 있는지 확인합니다. - 모니터링하려는 요청과 일치하는 스팬 쿼리를 사용하여 APM 메트릭을 생성합니다.
- 카나리를 구성할 때 APM 메트릭을 가드레일로 선택합니다.
카나리 분석은 일치하는 트레이스의 보존된 샘플을 사용합니다. 보존된 트레이스 볼륨이 낮으면 카나리는 결정을 내릴 수 있을 만큼 충분한 샘플링 대상과 이벤트가 확보될 때까지 기다립니다. 무작위 보존 샘플을 늘리려면 카나리에 대한 임시 트레이스 보존을 구성하세요. 임시 보존은 Datadog에 도달하기 전에 삭제된 트레이스를 복구하지 않습니다.
- 점진적 롤아웃 구성 섹션에 설명된 대로 점진적 롤아웃 타겟팅 규칙을 생성합니다.
- 롤아웃 구성에 가드레일 메트릭을 추가합니다.
- APM 가드레일의 경우, 보존된 샘플을 늘리려면 임시 트레이스 보존을 구성합니다.
- 가드레일 실패 시 롤아웃을 일시 중지할지 또는 중단할지 선택합니다.
모범 사례
- 플래그에 대해 알림을 구성하여 롤아웃이 시작, 일시 중지 또는 중단될 때 알림을 받습니다.
- 롤아웃을 시작하기 전에 카나리 알림을 구성합니다. 알림은 가드레일 메트릭이 롤아웃을 일시 중지하거나 중단할 때 알려줍니다.
- 평가 추적을 사용하여 롤아웃이 진행됨에 따라 각 변형을 받는 대상의 수를 모니터링합니다.
- APM 가드레일의 경우, 롤아웃 노출을 늘리기 전에 보존된 샘플에 충분한 수의 샘플링된 대상과 이벤트가 포함되어 있는지 확인합니다.