Depla 및 게임 업데이트가 중단없이 작동하는 방식
제로 다운 타임 카지노 출시
iGaming의 "마이크로 일시 정지" 는 베팅, 세션 및 신뢰가 손실됩니다. 플레이어는 업데이트를 눈치 채지 못해야합니다. 베팅이 계속 수락되고 스트림이 끊어지지 않으며 지갑과 원장이 일관되게 유지되며 메트릭이 점프하지 않습니다. 핵심은 버전 규율, 계약 호환성 및 단계별 관찰 가능한 계산입니다.
참조 원칙
1. 순방향/이전 호환성. 기존 이벤트/필드를 이해하려면 새 버전이 필요하며 기존 클라이언트는 새 이벤트/필드를 안전하게 무시해야합니다.
2. 불변의 자산. 정적 및 게임 리소스는 해시 이름과 함께 제공됩니다. 파일의 "덮어 쓰기" 가 없습니다.
3. 쓰기/읽기 경로를 나눕니다. 현금 거래 (보유/결제) 는 격리되어 있으며 원자, UI/자산은 독립적으로 변경됩니다.
4. 계약으로서의 관찰 가능성. 추적/메트릭스없이 릴리스-금지.
5. 롤백은 릴리스와 동일한 표준입니다. 기성품 이미지, 양방향 마이그레이션, 수동 샤머니즘이없는 롤백 버튼.
실제로 제로 다운 타임 아키텍처
1) 버전 및 계약
API/이벤트 용 SemVer: 'MAJOR. 미노르. 각 메시지의 'eventVer/contractVer' 필드 인 PATCH '.
데이터베이스 체계에 대한 → Migrate → 계약 확대: 먼저 필드/인덱스 (확장), 배경 마이그레이션 (마이그레이션) 및 계약을 끄는 후에 만 추가하십시오.
중요한 논리를 변경할 때 이중 쓰기/이중 읽기 (예: 보너스 계산): 이전 테이블과 새 테이블에 쓰는 동안 비교하십시오.
2) 자산 및 CDNs
번들/스프라이트/텍스트: 'app. a1b2c3. js ',' paytable. 98f0. png ', 헤더:
캐시 제어: 공개, 최대 연령 = 31536000, 불변성
서버/CDN에서 자산 나타납니다. 링크를 새로운 매니페스트로 전환합니다. 플레이어는 즉시 새로운 UI를 얻습니다. 이전 페이지는 동일한 파일로 계속 사용됩니다 (링크가 끊어지지 않음).
JSON (카탈로그/배너) 을 자주 변경하기위한 태그 퍼지 + 소프트 시프트를 위해 '부실한 동안 수정'.
3) 교통 전략
중요한 구성 요소 용 Blue-Green (지갑/원장/브리지): 두 개의 동일한 환경을 유지하고 몇 초 안에 수입/가상 서비스를 전환하십시오.
API/게임 게이트웨이 용 카나리아: 트래픽의 1-5% → SLO/Fin Delta 분석 → 100% 로 확장됩니다.
UI 및 메커니즘을위한 기능 플래그: 코드를 공개하지 않고 세그먼트, 지역 또는 게임을 포함합니다.
4) 라이브 게임 및 RNG
라이브 (WebRTC/LL-HLS):- 비디오 스트림 (다른 도메인/구성 요소) 과 별도로 플레이어/오버레이를 변경합니다.
- 서버 시간과 새로운 신호로 소프트 전환.
- 게임의 새로운 빌드는 새로운 버전의 리소스로 제공됩니다. 이미 라운드를 시작한 플레이어는 이전 클라이언트/규칙에서 라운드를 종료합니다.
- 라운드. 논란의 여지가있는 라운드가 "그대로" 재생되도록 계산 엔진의 버전 인 '수정' calcVer '를 해결했습니다.
5) 지갑 및 원장-돈을 끊지 않는 방법
파편 당 한 작가. 기록 전환은 별도의 절차 (잠금 포함) 이며 AZ/지역 내에서만 가능합니다.
모든 경로에 대한 이념: 'bet. 장소', '라운드. ',' 지불금을 정산하십시오. 계산원에게 '' 를 요청하십시오. 웹 후크 '-' demempotencyKey '.
PITR 및 섀도우 점검: 카나리아 계산 중에 "그림자" 에서 배선을 복제하고 프로모션 전에 장치 (GGR/NGR) 를 확인하십시오.
다운 타임없이 단계별 릴리스 (참조 시나리오)
1. 준비:- 릴리스 계약: 'PATCH/MINOR/MAJOR' 호환성 매트릭스.
- '확장' 마이그레이션은 사전에 적용되고 색인 빌드는 온라인으로 적용됩니다.
- CDN에로드 된 자산이 준비되었습니다.
- 트래픽의 1-5%. p95/99 'bet을보고 있습니다. 장소 ',' 결제 ',' 오류 _ rate ',' VOID '성장, 지불 불균형.
- 재무와 제어 그룹 (델타 <임계 값) 을 비교하십시오.
- 머니 코어에서 비율을 25/50/100으로 늘리거나 Blue-Green을 전환하십시오.
- 깃발 (로케일/게임/지역) 으로 기능을 켜십시오.
4. '마이그레이션' 마이그레
배경 bs은 데이터/진행 상황을 전달하며 이중 쓰기가 활성화됩니다.
원격 측정은 메트릭 일치를 검증합니다.
5. 최적화 및 '계약':- 레가시 판독 사용하지 않고 다음 MINOR/MAJOR에서 "그림자" 를 제거하십시오.
- 체계/이벤트의 디렉토리를 업데이트하고 사전에 종료하십시오.
- 사고없이 사후/복고풍: SLO, 경고, 점검표에서 개선해야 할 사항.
릴리스시 관찰 및 SLO
SLI/SLO:- '내기. 장소 p95 '(대상 100-250 ms),' 오류 _ rate '(<0. 3%), '라운드. p95를 정산하십시오. ' p95를 제출하십시오.
- 라이브 QoS: 'webrtc _ rtt _ ms', 'drop _ frames', 'suped _ rounds'.
- 버전 태그: 로그 및 추적에서 'build', 'semver', 'contractVer', 'calcVer'.
- 핀 델타: GGR/NGR/구/새 분기 세그먼트에 의한 비교.
고통없이 롤백
Blue-Green: 즉석 경로가 "파란색" 으로 돌아갑니다.
카나리아: 트래픽을 0% 로 줄이고 플래그로 기능을 비활성화하십시오.
자산: 이전 매니페스트는 불변으로 남아 있으며 이전 페이지의 플레이어는 깨지지 않습니다.
데이터: 이중 쓰기가있는 경우 롤백 할 때 "오래된" 소스를 읽습니다. 확인하기 전에 파괴적인 이주는 없었습니다.
조직 및 프로세스
SRE 보호 기능으로 창 변경: 피크/스포츠 이벤트를위한 릴리스 슬롯은 터치되지 않습니다.
런북: 수신 스위치, 데이터베이스 역할, 기능 플래그, 연락처 체인 점검표.
다크 런칭: UI의 가시성을 제외한 모든 것을 켜고 "숨겨진" 로드를 실행하십시오.
빈번한 오류 (패턴 방지)
고객과 분홍색 사각형을 깨뜨리지 않고 자산을 덮어 쓰십시오.
이벤트 변경/API "조용히" → 공급자 및 대시 보드 통합 덤프.
이중 쓰기 → 재정적 불일치없이 한 단계로 스키마 + 논리 마이그레이션.
dempotency의 부족 → retrays에서 이중 직불 결함.
카나리아와 지표가없는 단일 스위치는 한 번에 100% 입니다.
한 번의 배포로 UI 릴리스 및 계산 된 커널 혼합.
롤백 계획이나 롤백에는 "수동" SQL이 필요하지 않습니다.
제로 다운 타임 릴리스 체크리스트
계약 및 데이터
- SemVer + 'contractVer/eventVer/calcVer' 가 작성되고 문서화됩니다.
- '확장' 마이그레이션이 미리 적용되었습니다. 백그라운드에서 '마이그레이션'; 다음 사이클에서 '계약'.
- 결론이 바뀌는 이중 쓰기/이중 읽기.
인프라
- CNC: 불변의 자산, 매니페스트, 태그 퍼지, '부실한 동안 수정'.
- 돈의 핵심을위한 청록색; API/게임 게이트웨이 용 카나리아.
- UI/기계공을위한 기능 플래그; 플래그는 배포없이 관리됩니다.
관찰 가능
- '내장/세머/calcVer' 가있는 트레일; 대시 보드 SLO 및 핀 델타.
- 라이브 QoS의 성장 'VOID', '오류 _ rate', 저하에 대한 경고.
롤백 및 안전
- 롤백 (ingress/routing) 버튼, 이전 매니페스트를 사용할 수 있습니다.
- 원장을 확인하기위한 PITR 및 섀도우 게시물.
- 롤백 테스트는 무대와 소규모 생산 부문에서 진행되었습니다.
프로세스
- 런북 스위치; 일관된 변경 창.
- 다크 런칭/카나리아; 출시 후 복고풍.
iGaming의 제로 다운 타임은 버전 및 계약, 불변의 자산 및 CNC, 청록색/카나리아, 유휴 이동, 엄청난 돈 및 엄격한 관찰 성과 같은 시스템 관행입니다. 이 체크리스트에 이어 게임과 플랫폼을 업데이트하여 플레이어가 모든 것을 더 빠르고 안정적으로 만드는 것을 제외하고는 아무것도 눈치 채지 못합니다.