API7 Enterprise의 정밀 트래픽 제어를 위한 Canary Traffic Shifting 전략
January 29, 2024
현대의 마이크로서비스 아키텍처에서 API 게이트웨이는 시스템의 트래픽 진입점 역할을 하며, 요청 라우팅, 신원 인증, 속도 제한, 서킷 브레이커와 같은 중요한 작업을 처리합니다. API7 Enterprise는 APISIX 기반으로 구축된 강력한 API 관리 플랫폼으로, 사용자에게 풍부하고 유연한 기능을 제공하며, 카나리 트래픽 전환은 원활한 서비스 업그레이드 및 새로운 기능 검증과 같은 시나리오에서 중요한 역할을 합니다.
기능 개요
업스트림 서비스 기반 업스트림 생성
API7 Enterprise의 게이트웨이 그룹에 서비스가 배포되면, 관리자는 기존 베이스라인 업스트림의 서비스에서 카나리 트래픽 전환을 위한 새로운 업스트림을 쉽게 생성할 수 있습니다. 업스트림은 베이스라인 업스트림의 모든 구성을 상속하거나, 테스트된 과거 구성을 선택적으로 상속할 수 있습니다. 이 설계는 구성 과정을 크게 단순화하여 반복 작업과 잠재적인 구성 오류를 줄입니다. 또한, 카나리 트래픽 전환 업스트림은 새로운 노드 구성 또는 서비스 발견 메커니즘 통합을 지원합니다. 이는 기존 비즈니스 로직에 영향을 주지 않고, 일부 트래픽을 새로운 서버나 환경으로 리디렉션하여 성능 테스트, 기능 검증 또는 기타 유형의 평가를 수행할 수 있음을 의미합니다.
유연한 전환 조건 및 가중치
카나리 트래픽 전환 전략을 시작할 때, 관리자는 전환 조건과 가중치를 세밀하게 정의할 수 있습니다:
전환 조건: 이는 어떤 트래픽이 카나리 트래� 전환 업스트림으로 전환되어야 하는지를 결정합니다. 관리자는 논리 연산자(예: "AND" 및 "OR")를 사용하여 여러 조건을 결합하여 특정 조건을 충족하는 요청만 카나리 트래픽 전환 환경으로 들어가도록 할 수 있습니다.
판단에 사용할 수 있는 속성은 다음과 같습니다:
-
헤더: 요청 헤더의 특정 필드, 예를 들어
User-Agent
. -
쿠키: 클라이언트가 보낸 쿠키 정보, 일반적으로 사용자 식별 또는 세션 상태 인식에 사용됩니다.
-
쿼리 매개변수: URL의 쿼리 문자열 매개변수.
-
변수: 시스템 또는 사용자 정의 변수, 예를 들어 지리적 위치 또는 사용자 역할.
매칭 로직은 등호(==), 부등호(~=), 정규식 매칭(~~) 등을 포함하여 조건 판단의 유연성과 정확성을 보장합니다.
예를 들어, 관리자는 다음과 같은 전환 조건을 설정할 수 있습니다: "요청 헤더의
User-Agent
필드에 'iPhone'이 포함되고, 쿠키의user_group
필드가 'test_group'과 같을 때, 요청을 트래픽 전환 업스트림으로 리디렉션합니다."
전환 가중치: 이는 카나리 트래픽 전환 업스트림으로 전환될 트래픽의 비율을 결정합니다. 이는 백분율 값으로, 관리자가 카나리 트래픽 전환 환경으로 들어가는 트래픽을 점진적으로 증가시키거나 감소시킬 수 있습니다.
초기에는 가중치를 낮은 값(예: 10%)으로 설정하여 새로운 기능이 작은 범위 내에서 테스트되도록 할 수 있습니다. 테스트가 진행되고 결과가 수집됨에 따라 가중치를 점진적으로 증가시켜 결국 100%의 트래픽이 새 버전으로 전환되도록 할 수 있습니다.
전환 조건과 가중치를 유연하게 조정함으로써, 관리자는 카나리 트래� 전환 테스트의 범위와 영향을 효과적으로 제어할 수 있으며, 새로운 기능의 원활한 출시와 시스템 안정성을 보장할 수 있습니다.
실제 적용 시나리오
-
새로운 기능 검증: 개발 팀이 새로운 기능을 완료하고 출시 준비를 할 때, 카나리 트래픽 전환을 사용하여 새로운 기능을 소수의 사용자나 특정 사용자 그룹에게 초기 출시할 수 있습니다. 이를 통해 실제 환경에서 사용자 피드백을 수집할 수 있으며, 문제가 발생할 경우 영향 범위를 관리할 수 있습니다.
-
성능 테스트: 주요 이벤트나 고부하 시나리오에서, 관리자는 카나리 트래픽 전환을 사용하여 일부 트래픽을 새로 구성된 고용량 노드로 리디렉션하여 시스템의 성능 한계와 안정성을 테스트할 수 있습니다.
-
점진적 마이그레이션: 서비스 업그레이드 또는 마이그레이션 중에, 카나리 트래픽 전환은 관리자가 이전 환경에서 새 환경으로 트래픽을 점진적으로 전환할 수 있도록 도와줍니다.
모범 사례
-
전환 조건 합리적으로 설정: 실제 요구에 따라 적절한 전환 조건을 선택하는 것이 중요합니다. 예를 들어, 특정 사용자 그룹을 대상으로 한 테스트의 경우, 쿠키나 헤더의 사용자 식별자를 통해 정확한 전환을 달성할 수 있습니다.
-
가중치 동적 조정: 테스트 중에 테스트 결과와 사용자 피드백에 따라 전환 가중치를 동적으로 조정함으로써 유효한 데이터 수집을 가속화하거나 문제 범위를 좁힐 수 있습니다.
-
모니터링 및 경고: 트래� 전환 중 관련 지표에 대한 모니터링을 강화하고 적절한 경고 메커니즘을 설정함으로써 문제를 신속하게 감지하고 해결할 수 있습니다.
결론
API7 Enterprise의 카나리 트래픽 전환을 통해 기업은 서비스 안정성을 보장할 뿐만 아니라 새로운 기능 테스트, 성능 최적화 등을 유연하게 수행할 수 있으며, 빠른 비즈니스 성장을 위한 강력한 지원을 제공합니다.