GH GambleHub

출시 전략: 청록색 및 카나리아

(섹션: 기술 및 인프라)

간략한 요약

청록색은 가장 간단한 롤백으로 두 개의 풀 스택 (파란색/녹색) 사이를 즉시 전환합니다. 카나리아는 SLO 게이트 (대기 시간, 오류율, 비즈니스 지표) 를 통해 새 버전으로의 트래픽 점유율을 점차 높이고 있습니다. iGaming의 경우 안정적인 p99와 품질을 유지하면서 토너먼트 및 프로모션의 절정에 다운 타임없이 출시하는 방법입니다.

1) 선택시기

청록색-빠른 릴리스, 최소한의 복잡성, "이중" 클러스터/리소스 예산이 필요합니다. 복잡한 상태 마이그레이션없이 API/front에 적합합니다.
카나리아-고위험 릴리스 (새로운 흐름, 중요한 변화) 를 통해 트래픽의 1-5% 가 저하를 "포착" 할 수 있습니다. 원격 측정 및 자동 게이트가 필요합니다.

2) 건축 원칙

1. L7 레벨 라우팅: 밸런서/Ingress/service-mesh (가중 트래픽 모듈, 쿠키/플래그 라우팅).
2. 격리 된 종속성: 구성, phicheflags, 비밀, 캐시-개정을 위해 별도로.

3. 데이터 호환성: 순방향 호환 (확장 → 마이그레이션 → 계약) 데이터베이스 마이그레이션

4. 관찰 가능성: 메트릭/로그/트랙의 개별 레이블/버전 레이블.
5. 자동 게이트: p95/p99 비교, 오류율, 비즈니스 KPI; 자동 롤백.

3) 청록색: 기본 패턴

스트림

1. 녹색 (파란색 사본) 확장 → 캐시/연결을 예열하십시오.
2. 건강/연기 테스트를 실행하십시오.
3. 트래픽 (DNA/LB/Ingress) 을 그린으로 전환하십시오.
4. 우리는 창문이 끝날 때까지 블루를 "따뜻한" 상태로 대체 상태로 유지합니다.

예: Ingress 레벨 전환 (아이디어)

yaml
Annotated/Backend Option - In Prod, it is usually controlled by the spec operator/rollout:
rules:
- host: api. example. com http:
paths:
- path: /
backend:
service:
name: api-green # used to be api-blue port:
number: 80

프로/콘

간단한 롤백 (파란색 반환).
예측 가능한 릴리스 시간.
자원의 중복이 필요합니다.
카나리아 측정이없는 "빅뱅" 의 위험.

4) 카나리아: 점진적인 축적

스트림

1. 그림자 트래픽 (선택 사항) → 실제 트래픽의 1% → 5% → 25% → 50% → 100%.
2. 각 단계에서-SLO/비즈니스 지표에 의한 게이트.
3. 분해 중-진단 아티팩트의 자동 롤백 및 보존.

예: Argo Rollout (스 니펫)

yaml apiVersion: argoproj. io/v1alpha1 kind: Rollout metadata: { name: payments-api }
spec:
strategy:
canary:
canaryService: payments-canary stableService: payments-stable steps:
- setWeight: 5
- pause: { duration: 5m }
- analysis:
templates:
- templateName: slo-latency
- setWeight: 25
- pause: { duration: 10m }
- analysis:
templates:
- templateName: error-rate
- setWeight: 50
- pause: { duration: 20m }
- setWeight: 100

예: Flagger + Istio/NGINX (아이디어)

yaml apiVersion: flagger. app/v1beta1 kind: Canary metadata: { name: games-api }
spec:
targetRef:
apiVersion: apps/v1 kind: Deployment name: games-api service:
port: 80 analysis:
interval: 1m threshold: 5 metrics:
- name: request-success-rate thresholdRange: { min: 99 }
- name: request-duration thresholdRange: { max: 300 }
webhooks:
- name: smoke url: http://tester/smoke

5) 워밍업 및 상태 관리

캐시/소스: Redis/Hyper캐시/CDN을 예열하고 데이터베이스/PSP에 따뜻한 풀 연결을 준비하십시오.
ML/LLM/모델: 가중치/인덱스/임베딩, KV 캐시, "예열" 에 대한 기본 요청.
파일/아티팩트: 정적 컨텐츠, 템플릿, 구성 요소-로컬 볼륨/사이드카에 미리 제출하십시오.
Ficheflags: 청중/세그먼트의 1-5%, 비상 사태 기회의 롤아웃.

6) 데이터베이스: "확장 → 마이그레이션 → 계약" 전략

1. 확장: 널/새 열/인덱스 추가, 두 버전 모두 지원합니다.
2. Migrate: 코드는 새로운 체계를 사용합니다. 이전 경로는 유효합니다.
3. 계약: 완전히 풀린 후 오래된 필드/인덱스를 삭제하십시오.

로그에서 스키마 및 클라이언트 버전을 수정하십시오. 모든 변경 사항은 demmpotent입니다.
합의 된 배경 bs, 스로틀 링 및 "세계 정지" 창과 같은 강력한 마이그레이션.

7) 관찰 및 게이트 (SLO/SLA)

SRE 지표: p50/p95/p99, 오류율, 채도 (CPU/GPU/IO), 큐 깊이, 콜드 스타트 시간.
비즈니스 지표: 결제 전환, 입찰 성공, 인출 시간 (TTW), 프로모션 응답.
컨텐츠 품질/LLM: 토큰/s, 응답 길이, 독성, RAG 점수.
게이트: 임계 값을 초과하거나 "유용한 메트릭" 이 떨어지면 자동 프로모션/롤백.

"정책" (의사) 의 예:

gate:
p95_latency_ms <= 250 error_rate %  <= 1. 0 payment_conv  >= baseline - 0. 3%
action:
promote      rollback

8) CI/CD와의 릴리스 오케스트레이션 및 통합

GitOps: 버전/중량 변경-PR을 통해 매니페스트 리포지토리로 변경됩니다.
트래픽이 시작되기 전에 연기/e2e를 자동 점검합니다.
출시 계획: 카나리아 단계 일정, 책임, ChatOps 채널, 롤백 창.
아티팩트 보관: 컨피그 라우팅, 대시 보드 스냅 샷, 미터법 비교 로그.

9) 다중 지역 및 가장자리

주문: 먼저 "가장 중요하지 않은" 지역/ROR, 주요 지역.
대기 시간 기반 라우팅: 로컬 SLO 모니터링; 아무 이유없이 트래픽을 혼합하지 마십시오.
DR 비전: 지역 A의 파란색은 지역 -B의 녹색 용 DR 사이트가 될 수 있습니다.

10) 안전 및 규정 준수 릴리스

서명 된 외모/차트, SBOM; 입학 정책에서 서명 확인

비밀: 외부 관리자 만; Blue/Green의 독립 버전.

PII/지역성: PII에서 외국 지역으로 트래픽을 전환하지 마십시오. 비교할 때 로그를 마스크하십시오

감사: 누가 승진했는지, 어떤 게이트가 작동했는지, 롤백이있는 곳.

11) 설정 예

NGINX: 쿠키/헤더 (아이디어) 의 카나리아 지점

nginx map $http_x_canary $canary {
default 0;
"1"   1;
}

upstream api_stable { server stable:80; }
upstream api_canary { server canary:80; }

server {
location / {
if ($canary) { proxy_pass http://api_canary; }
proxy_pass http://api_stable;
}
}

기능 플래그 "분수 롤아웃" (의사)

yaml feature: new_checkout rollout:
percentage: 5 criteria:
country: ["TR", "BR", "MX"]
cohort: "new-users"
kill_switch: true

12) 런북 (일반적인 시나리오)

카나리아에서 p99의 성장: 프로모션 중지 → 배치/타임 아웃을 증가시키고 플래그를 통해 무거운 기능을 끄십시오 → 일부 포드를 다시 시작하십시오.
결제 변환 감소: PSP 경로/기능 비교, 섀도우 로깅 가능, 롤백이 안정적으로 이루어집니다.
데이터베이스 마이그레이션 문제: 쓰기 트래픽 동결, 읽기 전용 모드 활성화, 스키마 롤백 (가능한 경우), 비상 수정 bs.
PII 사건: 카나리아 버전 차단, 비밀 철회, 보고서 및 감사.

13) 구현 점검표

1. 정책을 정의하십시오: 청록색, 카나리아; "중요한" 것으로 간주됩니다.
2. 가중 라우팅 설정 (Ingress/mesh/router).
3. SLO 임계 값 게이트 및 자동 롤백 캡처.

4. 구현 확장 → 데이터베이스 마이그레이션 → 계약; 마이그레이션 테스

5. 캐시/모델 워밍업 및 워밍풀 연결 사용 가능

6. GitOps를 입력하고 모든 릴리스 동작을 기록하십시오.
7. 메트릭 (카나리아 대 안정) 의 비교를 시각화하십시오.
8. 게임 데이 보내기: 게이트 롤백/실패/데이터베이스 문제를 모방하십시오.
9. 런북과 킬 스위치를 문서화하십시오.
10. 동시에 다중 지역 릴리스를 계획하십시오.

14) 반 패턴

게이트가없는 카나리아 방출 및 원격 측정 → 성능 저하의 늦은 탐지.
DB 스키마 혼합: 코드 풀림을위한 파괴적인 마이그레이션.
격리 → 상호 영향없이 파란색과 녹색에 대한 하나의 공유 캐시/대기열.
검증없이 낮은 TTL을 사용하여 DNS- "플랩 핑" 트래픽을 전환합니다.
두 개정 모두에 공통적 인 비밀/구성 요소 → 복잡한 롤백.
그림자/연기가없는 음식으로의 트래픽은 빅뱅 위험입니다.
빠른 종료를위한 킬 스위치/기능 플래그가 없습니다.

요약

Blue-green은 즉각적이고 쉬운 전환, 카나리아 관리 위험 및 조기 문제 감지를 제공합니다. iGaming에서는 두 가지 패턴이 결합됩니다. "샤프" 변경 카나리아는 다운 타임없이 기본 메커니즘으로 + 청록색입니다. SLO 게이트, GitOps, 워밍업, 데이터베이스 호환성 및 종속성 격리를 추가하면 릴리스가 예측 가능하고 롤백이 빠르며 피크 기간에도 p99 및 비즈니스 메트릭이 안정적입니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.