운영 및 → 관리 사고 예방
사고 예방
1) 왜 필요한가
사건에 대한 최선의 반응은 사건이 없다는 것입니다. iGaming/fintech의 경우, 1 분의 다운 타임마다 베팅/예금, 공급자의 벌금, 평판 위험이 손실됩니다. 체계적인 예방은 변화 실패율을 줄이고 SLO를 안정화 시키며 화재를 진압하기보다는 명령 시간을 확보합니다.
목표:- 중요한 경로에서 발생할 가능성을 최소화하십시오 (예금, 베팅, 게임 출시, 철회).
- SLO와 지갑을 치기 전에 열화를 가로 채십시오.
- 고장 반경 (폭발 반경) 을 제한하고 복구 속도를 높입니다.
2) 예방의 기본 원칙
1. SLO 우선 및 오류 예산: SLO를 제압하고 예산을 소모 할 위험이있는 경우 변경 사항이 해제되지 않습니다.
2. 심층 방어: 데이터 스키마 및 구성에서 네트워크 정책 및 피체 플래그에 이르기까지 보호 계층.
3. 실패를위한 설계: 차단기, 타임 아웃, 지터 후퇴, demotency, 열화.
4. 작고 가역적 인 변경: 작은 증분 + 빠른 롤백 (기능 플래그/카나리아).
5. 의도적으로 관찰 가능성: 각 중요한 단계 및 링크에 대한 메트릭/로그/추적.
3) 위험 및 중요 경로 맵
지불, 베팅, 게임, KYC, 프로모션, 잭팟, 컨텐츠 등 도메인별로 "통증 맵" 을 만드십시오.
각 경로에 대해 수정합니다
비즈니스 지표 (변환, GGR, 평균 점검).
기술 SLO (대기 시간 p95/p99, 가동 시간, 성공률).
의존성 (내부/외부), 한계/할당량.
"안전 모드" 동작 (비활성화/단순화).
런북 소유자.
4) 가드 레일 (보호 장벽)
타임 아웃 및 차단기: 통화 서비스는 내부 서비스의 합보다 짧은 타임 아웃을 갖습니다. 오류/대기 시간이 증가하면 차단기가 열립니다.
벌크 헤드 격리: 다운 스트림을위한 별도의 연결/작업자 풀.
속도 제한 및 역압: 눈사태 및 폭풍으로부터의 보호.
변형 변수: "최소 모드" -쉬운 답변, 캐시 재생, 무거운 기능 비활성화.
다중 공급 업체 및 feilover: 대체 PSP/KYC, 경로 전환.
구성 요소의 검증: 기능 및 한계의 안전한 변경을위한 체계/라이너/정책.
5) 관리 변경
시험판 게이트: 테스트, 안전, CDC (소비자 중심 계약), 체계 호환성.
카나리아 릴리스 + 자동 게이트: 1% → 10% → 100%; p99/오류율/연소 예산 증가시 자동 정지.
기능 플래그: 배포없이 즉각적인 롤백/스위치 동작.
릴리스 캘린더: 공급자의 최대 스포츠/토너먼트 창 및 유지 보수를 피하
배포 후 점검: 자동 동기화, 전후 메트릭과 임계 값의 비교.
6) 예방 조치로 테스트
단위/계약/통합: OpenAPI/AsyncAPI 계약, CDC 대 공급자/모카.
로드 및 스트레스: 프라임 타임의 트래픽 프로파일; 연결/IOPS/할당량 제한에 대한 테스트.
흡수/장거리: 자원 누출, 시간/일 지평에서 지연 지연.
혼돈/게임 일: 중개/PSP/KYC 하락, 지역 격차, "느린 공급자".
재난 복구 드릴: 지역 전환 및 데이터베이스 복원을위한 정기적 인 교육.
7) 분해의 조기 탐지
용량 경고: 헤드 룸, 대기열 지연, 데이터베이스 연결, 캐시 퇴거.
SLO- 번 속도: 예산을 "연소" 하는 위험한 속도로 신호.
적응 형 임계 값: 허위를 줄이기위한 계절성/일일 패턴.
복합 경고: "최대 + 개방형 회로에서 lag TP + HPA" 높은 위험.
공급 업체 건강: 각 공급자의 할당량/타임 아웃/오류 + 통화 비용.
8) 외부 제공 업체와 협력
OLA/SLA SLO: 계약을 목표에 연결합니다.
feilover의 플레이 북: PSP-X wherer PSP-Y 경로, 토큰 캐시, 유예 예금 모드.
샌드 박스 및 계약: 각 주요 변경 전에 흐름을 테스트하십시오.
공급자 창: 대시 보드의 주석 및 자동 억제 규칙.
9) 데이터, 구성 및 비밀
정책 변경: 두 쌍의 눈에 대한 코드 검토, 체계 검증/JSON/YAML.
비밀: KMS/비밀 관리자, 회전, 환경/역할별 분리.
깃발/제한: 감사 및 즉시 롤백을 통해 API를 통해 변경하십시오.
마이그레이션: "2 단계" (확장 → 마이그레이션 → 계약), 총 이전 호환성.
10) 훈련 및 팀 준비
통화 중 교육: 사고 시뮬레이션, 그림자 의무, 중앙 집중식 런북 '및.
통합 통신 형식: 상태/핸드 오버/사고 업데이트 템플릿.
안전한 문화: 비난없이 사후, 기계적인 이유 및 예방 조치.
11) 예방 대시 보드 (최소)
위험 및 준비: SLO/예산, 계층 별 헤드 룸, "최고 취약한 연결".
안전 변경: 카나리아, 리베이트, 경고 비율 "출시 후" CTR 자동 게이트.
공급 업체 패널: 각 공급자의 p95/오류/할당량/비용, 공급 업체 지원 응답 시간.
혼돈/DR 준비: 운동 빈도, 지역 전환 시간, 복구 성공.
설정/SecOps: 플래그/제한/비밀 변경, 이상.
12) 예방 경보의 예
ALERT SLOBurnRateHigh
IF slo_error_budget_burnrate{name="payments_api"} > 4 FOR 10m
LABELS {severity="critical", team="payments"}
ALERT PostDeployRegression
IF (api_p99_ms{service="bets"} > baseline_1d 1. 3) AND (release_window="canary")
FOR 10m
LABELS {severity="warning", team="bets"}
ALERT ProviderQuotaNearLimit
IF usage_quota_ratio{provider="psp_x"} > 0. 9 FOR 5m
LABELS {severity="warning", team="integrations"}
ALERT QueueLagAtRisk
IF (kafka_consumer_lag{topic="ledger"} > 5e6 AND rate(kafka_consumer_lag[5m]) > 5e4)
AND (hpa_desired == hpa_max)
FOR 10m
LABELS {severity="critical", team="streaming"}
13) 예방 점검표 (매일/피크 전)
- 최신 피크 캘린더 (일치, 토너먼트, 캠페인, 제공자 창).
- API/DB/캐시/대기열 별 헤드 룸, HPA/VPA 준비, 캐시 예열.
- 공급자 상태 (쿼터, 제한, 24 시간 동안의 저하), 페일러 구성.
- 카나리아 게이트가 활성화되고 소유자가 롤백 기능 플래그를 사용할 수 있습니다.
- SLO/용량 경보가 활성화되어 있으며 계획된 작업에 대해 억제가 처방됩니다.
- 런북 '및 통화 중 확인 된 에스컬레이션 채널이 작동합니다.
14) 반 패턴 (피해야 할 것)
카나리아 나 깃발이없는 "빅 나이트 릴리스".
일반적인 헤드 오브 라인 차단 풀.
비 등식 작업 및 병목 현상 시간 초과에 대한 배상.
경고에 히스테리시스가 없음 → 임계 값을 따라 톱니 다.
관찰 및 시간 초과 관리없이 공급 업체 SDK에 대한 맹목적인 믿음.
무대/샌드 박스와 CDC없이 "Prod를하자".
15) KPI 예방
실패율 변경 (목표 10-15% 또는 목표).
사건 전 탐지 속도: 분해 단계에서 사고의 비율을 피했습니다.
MTBI (Mean Time Between Incidents) MTTR.
적용 범위 보호: 플래그/차단기/타임 아웃/카나리아가있는% 중요한 경로.
혼돈/DR 케이던스: 운동의 빈도와 성공.
공급 업체 준비: 백업 제공 업체로의 평균 전환 시간.
16) 빠른 시작 (30 일)
1 주차: 중요한 경로도, SLO 및 소유자; SLO 번 경고 및 용량 경고가 포함됩니다.
2 주차: 카나리아 게이트 + Phicheflags; 기본 혼돈 스크립트 (제공자/큐).
3 주차: 대시 보드 "변경 안전" 및 "공급 업체 패널", feilover 플레이 북.
4 주차: DR 운동 (부분), 분기 소급 및 강화 계획.
17) 템플릿 (조각)
카나리아 자동 게이트 정책 (조건부 YAML):
canary_policy:
guardrails:
- metric: api_p99_ms threshold: 1. 3 baseline_1d window: 10m action: pause_and_rollback
- metric: error_rate threshold: 2 baseline_1d window: 5m action: pause max_step: 10%
step_interval: 15m required_annotations: [release_notes, feature_flags, runbook_link]
분해 계획 (요약):
safe_mode:
payments:
- freeze_heavy_providers
- enable_cached_token_flow
- route_to_psp_y_if(psp_x_error_rate > 5%)
games:
- limit_broadcasts
- reduce_lobby_heavy_widgets bets:
- raise_risk_score_threshold
- cache_odds_snapshot
18) FAQ
Q: 리소스가 부족한 경우 먼저 구현해야 할 사항은 무엇입
A: 중요한 경로, 카나리아 게이트 및 롤백 피체 플래그에 대한 SLO 번 경고; 그런 다음 위험 맵과 공급자 가짜.
Q: 예방이 "작동" 한다는 것을 어떻게 알 수 있습니까?
A: 변경 실패율이 떨어지고 예방 된 사고의 비율이 증가하고 MTTR 및 경고 소음이 감소하며 "야간" 페이지 수가 감소합니다.
Q: 규칙적인 혼돈 운동이 필요합니까?
A: 예. 훈련이 없으면 불화와 DR은 종이에 보이는 것보다 거의 항상 길고 고통 스럽습니다.