프로그레시브 롤아웃 구성
점진적 롤아웃은 시간이 지남에 따라 사용자에게 기능 플래그가 점진적으로 노출되도록 자동화하여 수동 개입을 없애고 운영상의 수고를 덜어줍니다. 사용자는 구체적인 비율과 기간을 지정하여 여러 단계를 정의하면, ‘ App Configuration ’가 일정에 따라 단계 간의 전환을 자동으로 관리합니다.
점진적 배포는 기능 배포에 여러 가지 이점을 제공하며, 사용자 경험의 일관성을 유지하면서 위험을 관리하는 데 도움이 됩니다. 주요 이점은 다음과 같습니다:
- 자동화: 시간 기반 배포 과정에서 수동 개입을 없애줍니다.
- 일관성: 배포 과정 전반에 걸쳐 동일한 사용자가 동일한 값을 받도록 보장합니다.
- 안전성: 문제가 감지될 경우, 어떤 단계에서든 출시 과정을 중단할 수 있습니다.
- 유연성: 사용자 지정 위상 구성 또는 미리 정의된 템플릿을 지원합니다.
- 예측 가능성: 일정에 따라 정해진 시간에 기능을 출시합니다.
프로그레시브 롤아웃은 엔터프라이즈 티어 사용자만 사용할 수 있습니다.
시작하기 전에
점진적 배포를 구성하기 전에 다음 사항을 확인하십시오:
- App Configuration 엔터프라이즈 인스턴스가 있습니다
- 적절한 IAM 권한(관리자 또는 작성자 역할)이 있습니다
- 사용자 환경에서 기능 플래그를 만들었습니다
구성 제약 조건
프로그레시브 롤아웃에는 구성하기 전에 이해해야 하는 특정 제약 조건과 요구 사항이 있습니다.
일반적인 제약 조건
모든 점진적 배포 구성에 적용되는 일반적인 제약 사항을 검토하십시오. 이러한 제약 조건은 시스템이 올바르게 작동하도록 보장하고 다른 기능과의 충돌을 방지합니다.
- 엔터프라이즈 티어가 필요합니다: 프로그레시브 롤아웃은 Enterprise 티어 사용자만 사용할 수 있습니다.
- 플래그당 한 번의 롤아웃: 기능 플래그당 점진적 롤아웃은 한 번만 허용됩니다. 플래그 수준 또는 규칙 수준에서 구성할 수 있지만 동시에 둘 다 구성할 수는 없습니다.
- 한 번에 하나의 활성 배포 전략: 실험이 플래그에서 실행 중인 경우 점진적 롤아웃을 만들 수 없습니다. 마찬가지로 프로그레시브 롤아웃이 실행 중인 경우 해당 플래그에 대한 실험을 시작할 수 없습니다.
- 백분율 범위: 롤아웃 비율은 1%에서 100% 사이여야 합니다.
범위별 API 요구 사항
사용하는 API는 점진적 배포 구성의 범위에 따라 달라집니다. 롤아웃을 구성하는 위치에 따라 적절한 API를 선택하십시오.
- 플래그 수준 프로그레시브 롤아웃: 기능 플래그 API를 사용하여 롤아웃을 만들고 업데이트합니다.
- 규칙 수준 프로그레시브 롤아웃: 규칙 API를 사용하여 롤아웃을 만들고 업데이트합니다.
- 롤아웃 중지: 롤아웃 중지 API를 사용하여 활성 프로그레시브 롤아웃을 중지할 수 있습니다.
범위별 구성 요구 사항
점진적 배포를 구성하기 전에, 플래그나 규칙이 상속된 값이 아닌 명시적인 배포 값을 사용하도록 설정되어 있는지 확인하십시오. 이 요건은 충돌을 방지하고 점진적 도입 과정이 완전한 통제권을 갖도록 보장합니다.
- 플래그 수준 프로그레시브 롤아웃의 경우: 타겟팅 규칙 중 어느 것도 플래그에서
rolloutPercentage값을 상속받을 수 없습니다. 모든 타겟팅 규칙은 재정의된 롤아웃 값을 사용해야 합니다. - 규칙 수준 프로그레시브 롤아웃의 경우: 롤아웃을 추가하는 타겟팅 규칙은 플래그에서 상속된 값을 사용할 수 없습니다. 규칙에는 고유한 명시적 값이 있어야 합니다.
프로그레시브 롤아웃 중 차단된 작업
점진적 롤아웃이 실행 중인 상태에서는 롤아웃의 무결성을 유지하고 충돌을 방지하기 위해 특정 작업이 차단됩니다.
- 다른 프로그레시브 롤아웃 만들기: 플래그당 하나의 프로그레시브 롤아웃만 허용됩니다.
- 실험 시작하기: 이미 프로그레시브 롤아웃이 실행 중인 플래그에서는 실험을 실행할 수 없습니다.
- 컬렉션 삭제하기: 컬렉션 삭제: 관련 기능 플래그가 실행 중 상태에 프로그레시브 롤아웃이 있는 경우 컬렉션 삭제가 차단됩니다.
- 세그먼트 업데이트 또는 삭제하기: 세그먼트 업데이트 및 삭제는 관련 기능 플래그가 실행 중인 프로그레시브 롤아웃 상태인 경우 차단됩니다.
- 플래그 또는 규칙 구성 수정하기: 플래그 또는 롤아웃을 사용하는 타겟팅 규칙에 대한 업데이트는 프로그레시브 롤아웃이 실행되고 있지 않을 때만 허용됩니다.
라이프사이클 동작
라이프사이클 동작을 이해하면 점진적 출시와 다른 기능 간의 상호작용을 관리하는 데 도움이 됩니다. ‘ App Configuration ’는 배포 전략 간에 엄격한 분리를 유지합니다.
- 실험이 실행 중인 경우에는 점진적 롤아웃을 만들 수 없습니다.
- 프로그레시브 롤아웃이 실행 중인 경우 동일한 플래그에서 실험을 시작할 수 없습니다.
- 롤아웃을 중지하려면 전용 롤아웃 중지 API를 사용해야 합니다.
프로그레시브 롤아웃 구성
플래그 수준 또는 타겟팅 규칙 수준에서 점진적 롤아웃을 구성할 수 있습니다.
플래그 수준 프로그레시브 롤아웃 구성
플래그 수준에서 점진적 롤아웃을 구성하려면 다음과 같이 하세요:
- App Configuration 콘솔에서 기능 플래그로 이동합니다.
- 기능 플래그가 포함된 환경을 선택합니다.
- 구성하려는 기능 플래그를 클릭합니다.
- 기능 롤아웃 섹션에서 롤아웃 유형으로 프로그레시브(점진적 )를 선택합니다.
- 롤아웃 설정을 구성합니다:
- 기간 사전 설정: 미리 정의된 템플릿( 1hr, 12hr, 24hr, 48hr )에서 선택하거나 사용자 지정 선택
- 단계: 각 단계를 백분율과 기간으로 정의합니다
- 나중에 예약 (선택 사항): 롤아웃 시작 시간을 UTC로 지정하려면 이 옵션을 토글합니다. 활성화하지 않으면 롤아웃이 즉시 시작됩니다.
- 저장 을 클릭하십시오.
프로그레시브 롤아웃은 구성된 시작 시간에 자동으로 시작됩니다.
규칙 수준의 점진적 롤아웃 구성
타겟팅 규칙 수준에서 프로그레시브 롤아웃을 구성하려면 다음과 같이 하세요:
- App Configuration 콘솔에서 기능 플래그로 이동합니다.
- 기능 플래그가 포함된 환경을 선택합니다.
- 구성하려는 기능 플래그를 클릭합니다.
- '타겟팅' 섹션에서 구성할 규칙을 선택합니다.
- 규칙에 재정의된 값이 있는지 확인합니다.
- 규칙의 롤아웃 섹션에서 롤아웃 유형으로 프로그레시브(점진적 )를 선택합니다.
- 롤아웃 설정을 구성합니다:
- 기간 사전 설정: 미리 정의된 템플릿( 1hr, 12hr, 24hr, 48hr )에서 선택하거나 사용자 지정 선택
- 단계: 각 단계를 백분율과 기간으로 정의합니다
- 나중에 예약 (선택 사항): 롤아웃 시작 시간을 UTC로 지정하려면 이 옵션을 토글합니다. 활성화하지 않으면 롤아웃이 즉시 시작됩니다.
- 저장 을 클릭하십시오.
점진적인 롤아웃 단계
점진적 롤아웃은 여러 단계로 구성되며, 각 단계는 비율과 기간을 정의합니다.
단계 구성
단계적 출시의 각 단계에 대한 비율과 기간을 정의하십시오. 각 단계는 출시 진행 과정을 관리하는 두 가지 핵심 요소로 구성됩니다.
각 단계에는 다음이 포함됩니다:
- 백분율: 백분율: 활성화된 값을 받을 사용자의 백분율(1~100%)
- 기간: 이 단계가 지속되는 기간(예: " 8h ", " 30m ", " 2d ")
마지막 단계는 완료 상태를 나타내므로 기간이 필요하지 않습니다.
단계 예시
다양한 시나리오에 따른 점진적 도입 단계 구성 예시를 살펴보십시오.
예 1: 24시간 점진적 롤아웃
{
"phases": [
{ "percentage": 5, "duration": "6h" },
{ "percentage": 25, "duration": "6h" },
{ "percentage": 50, "duration": "6h" },
{ "percentage": 100, "duration": "6h" }
]
}
예 2: 1시간 내 신속한 롤아웃
{
"phases": [
{ "percentage": 10, "duration": "15m" },
{ "percentage": 50, "duration": "15m" },
{ "percentage": 100, "duration": "30m" }
]
}
예 3: 보수적인 48시간 롤아웃
{
"phases": [
{ "percentage": 5, "duration": "12h" },
{ "percentage": 10, "duration": "12h" },
{ "percentage": 25, "duration": "12h" },
{ "percentage": 100, "duration": "12h" }
]
}
미리 정의된 롤아웃 템플릿
App Configuration 는 일반적인 롤아웃 시나리오를 위한 미리 정의된 템플릿을 제공합니다:
| 템플리트 | 지속 기간 | 단계 |
|---|---|---|
| 1hr | 1시간 | 10% ( 15m ), 50% ( 15m ), 100% ( 30m ) |
| 12hr | 12시간 | 5% ( 3h ), 25% ( 3h ), 50% ( 3h ), 100% ( 3h ) |
| 24hr | 24시간 | 5% ( 6h ), 25% ( 6h ), 50% ( 6h ), 100% ( 6h ) |
| 48hr | 48시간 | 5% ( 12h ), 10% ( 12h ), 25% ( 12h ), 100% ( 12h ) |
프로그레시브 롤아웃 중지하기
점진적 배포를 중지하면, App Configuration 는 수동 배포 모드로 다시 전환하기 위해 몇 가지 정리 작업을 수행합니다.
- 배포 구성이 제거되었습니다.
- 롤아웃 비율이 지정된 비율로 업데이트됩니다
- 롤아웃 유형이 수동 롤아웃으로 되돌아갑니다
- 활성화된 값을 수신하던 사용자는 중지된 비율에 따라 계속 수신합니다
문제가 발견되면 어느 단계에서든 프로그레시브 롤아웃을 중지할 수 있습니다. 롤아웃 구성 범위에 따라 적절한 API를 사용하십시오.
- 플래그 수준 롤아웃 중지: 기능 플래그 수준에서 구성된 점진적 롤아웃을 중지하려면, 기능 플래그용 롤아웃 중지 API를 사용하십시오.
- 규칙 수준 롤아웃 중지: 타겟팅 규칙 수준에서 구성된 점진적 롤아웃을 중지하려면, 규칙용 롤아웃 중지 API를 사용하십시오.
프로그레시브 롤아웃 완료
점진적 배포가 마지막 단계에 도달하면, App Configuration 에서 자동으로 정리 작업을 수행하고 수동 배포 모드로 다시 전환됩니다.
- 배포 구성이 자동으로 제거됩니다.
- 도입 비율이 최종 단계 비율(일반적으로 100%)로 업데이트됩니다.
- 롤아웃 유형이 수동 롤아웃으로 되돌아갑니다.
- 모든 사용자에게 활성화된 값이 제공됩니다.
사용자 일관성 및 무작위 배정
점진적 롤아웃은 롤아웃 내에서는 예측 가능한 동작을 유지하면서도 서로 다른 롤아웃 주기 간에는 유연성을 허용하는 2단계 무작위 배정 전략을 통해 일관된 사용자 경험을 보장합니다.
롤아웃 내
App Configuration 는 단일 단계별 출시 과정에서 각 사용자에 대한 할당을 일관되게 유지하여 모든 단계에 걸쳐 안정적인 사용자 경험을 보장합니다.
entity_id에 따르면 무작위화는 결정론적입니다.entity_id는 항상 동일한 할당값을 받습니다.- 1단계에서 활성화된 값을 수신한 사용자는 이후 단계에서도 계속해서 해당 값을 수신합니다.
- 비율이 증가함에 따라 신규 사용자가 추가됩니다.
롤아웃 전반
동일한 플래그에 대해 새로운 점진적 배포를 시작하면, App Configuration 는 서로 다른 사용자 노출 패턴을 허용하기 위해 새로운 배포를 생성합니다.
- 새로운 무작위 분포가 생성됩니다.
- 동일한
entity_id에 다른 할당이 이루어질 수 있습니다. - 이를 통해 서로 다른 사용자 그룹을 서로 다른 배포 주기에 따라 적용할 수 있습니다.
프로그레시브 롤아웃 모니터링
단계적 출시 과정을 모니터링하여 계획대로 진행되고 있는지 확인하고, 출시 과정에서 발생할 수 있는 문제를 신속하게 파악하십시오.
- 대시보드 보기: ‘ App Configuration ’ 대시보드에는 진행 중인 점진적 배포의 현재 상태와 단계가 표시됩니다.
- 상태 표시기:
QUEUED: 출시 일정은 잡혀 있으나 아직 시작되지는 않았습니다.RUNNING: 단계별 도입이 활발히 진행되고 있습니다.
- 활동 추적:
Activity Tracker를 사용하여 롤아웃 이벤트와 단계 전환을 추적합니다.
우수 사례
여기에 나열된 모범 사례를 따름으로써 성공적인 단계적 출시를 보장하고, 사용자와 애플리케이션에 대한 위험을 최소화할 수 있습니다.
- 작은 규모부터 시작하세요: 위험을 최소화하기 위해 낮은 비율(5~10%)로 시작하세요.
- 메트릭 모니터링: 각 단계에서 애플리케이션 메트릭을 지속적으로 모니터링합니다.
- 시간대 고려 사항: 시작 시간을 정할 때 사용자층의 시간대를 고려하십시오.
- 테스트 구성: 먼저 비운영 환경에서 롤아웃 구성을 테스트하십시오.
- 도입 계획 문서화: 도입 전략 및 단계에 대한 문서를 체계적으로 관리하십시오.
- 롤백 계획 수립: 문제가 발견될 경우 배포를 중단할 수 있는 계획을 마련해 두십시오.
- 적절한 기간을 설정하십시오: 각 단계에서 의미 있는 데이터를 수집할 수 있도록 충분한 시간을 확보하십시오.
API 참조
프로그레시브 롤아웃은 App Configuration API를 사용하여 구성할 수 있습니다. 자세한 내용은 API 설명서를 참조하세요.