運用と→管理インシデント防止
インシデント防止
1)なぜそれを必要とします
事件に対する最良の反応は、1つを持っていないことです。iGaming/Fintechの場合、ダウンタイムの毎分のベット/預金、プロバイダーからの罰金、評判リスクが失われます。全身的な予防は、変更故障率を低減し、SLOを安定させ、発火を消すのではなく、発達するためにコマンド時間を解放します。
目的:- クリティカルパス(デポジット、ベット、ゲームの立ち上げ、撤退)でのインシデントの可能性を最小限に抑えます。
- SLOと財布を打つ前に劣化を傍受します。
- 故障半径(ブラスト半径)を制限し、リカバリを高速化します。
2)予防の基本原則
1.SLO-firstとエラー予算:SLOをノックアウトして予算を焼き尽くすリスクがある場合、変更は解放されません。
2.詳細な防御:保護の層-データスキーマと構成からネットワークポリシーとフィッシュフラグまで。
3.失敗のための設計:ブレーカ、タイムアウト、ジッタ後退、idempotency、劣化。
4.スモール&リバーシブル変更:スモールインクリメント+クイックロールバック(フィーチャーフラグ/カナリア)。
5.設計による可視性:各クリティカルステップとリンクのメトリック/ログ/トレース。
3)リスクとクリティカルパスマップ
支払い、賭け、ゲーム、KYC、プロモーション、ジャックポット、コンテンツ。
各パスについて、次のように修正します:- ビジネス指標(コンバージョン、GGR、平均チェック)。
- 技術的なSLO(レイテンシp95/p99、アップタイム、成功率)。
- 依存関係(内部/外部)、制限/クォータ。
- 「セーフモード」動作(無効/簡略化)。
- Runbookの所有者。
4)ガードレール(保護障壁)
タイムアウトとブレーカ:通話サービスは、内部サービスの合計よりも短いタイムアウトを持っています。エラー/レイテンシーが増加するとブレーカが開きます。
隔壁の分離:下流のための接続/労働者の別のプール。
レートリミットと背圧:雪崩やリトレイ嵐に対する保護。
分解フィッシュフラグ:「最小モード」-簡単な回答、キャッシュのリプレイ、重い機能の無効化。
マルチベンダーとfeilover:代替PSP/KYC、ルートスイッチング。
コンフィギュレーションの検証:機能と制限の安全な変更のためのスキーム/ライナー/ポリシー。
5)変更管理
プレリリースゲート:テスト、安全性、CDC(消費者主導の契約)、スキーム互換性。
カナリアリリース+オートゲート:1%→10%→100%;p99/エラー率/燃焼予算の成長で自動停止します。
フィーチャーフラグ:展開せずに瞬時ロールバック/スイッチ動作。
リリースカレンダー:プロバイダでのスポーツ/トーナメントのウィンドウとメンテナンスのピークを避けます。
導入後のチェック:自動同期、しきい値とのメトリックの前後の比較。
6)予防策としてのテスト
ユニット/コントラクト/インテグレーション:OpenAPI/AsyncAPIコントラクト、CDC対プロバイダ/moka。
負荷&ストレス:プライムタイムのトラフィックプロファイル;接続/IOPS/クォータ制限のテスト。
浸水/長距離:資源漏れ、1時間/1日の地平線の上昇遅延。
カオス/ゲームの日:ブローカー/PSP/KYCドロップ、リージョンギャップ、「遅いプロバイダ」。
ディザスタリカバリドリル:リージョンの切り替えとデータベースの復元のための定期的なトレーニング。
7)劣化の早期発見
容量アラート:ヘッドルーム、キューラグ、データベース接続、キャッシュの立ち退き。
SLO燃焼率:予算を「燃焼」する危険な速度での信号。
適応しきい値:季節性/毎日のパターンで偽を減らします。
コンポジットアラート: 「最大+オープン回路でのLAG (LAG)+HPA (High Risk)」
ベンダーの健全性:各プロバイダのクォータ/タイムアウト/エラー+コールのコスト。
8)外部プロバイダとの連携
OLA/SLA ↔ SLO:契約を目標にリンクします。
feiloverのプレイブック:PSP-X ⇆ PSP-Yルート、トークンキャッシュ、グレースデポジットモード。
サンドボックスとコントラクト:各主要変更の前にテストフロー。
プロバイダウィンドウ:ダッシュボードの注釈と自動抑制ルール。
9)データ、構成および秘密
変更ポリシー:2組の目のコードレビュー、スキーム/JSON/YAMLの検証。
秘密:KMS/Secrets Manager、回転、環境/役割による分離。
Flags/limits:監査とインスタントロールバックを使用してAPI経由で変更します。
マイグレーション:「two-step」 (expand→migrate→contract)、完全な下位互換性。
10)訓練およびチームの準備
オンコールトレーニング:インシデントシミュレーション、シャドウデューティ、集中ランブック"と。
ユニファイドコミュニケーションフォーマット:ステータス/ハンドオーバー/インシデント更新テンプレート。
安全な文化:責任のない死後、機械的な理由と予防措置。
11)予防ダッシュボード(最小)
リスクと準備:SLO/予算、ヘッドルーム・バイ・レイヤー、「トップ脆弱な接続」。
変更安全性:カナリアの割合、キックバック、アラート「リリース後」、オートゲートのCTR。
ベンダーパネル:各プロバイダのp95/error/quotas/cost、ベンダーサポート応答時間。
カオス/DR準備:運動頻度、リージョンスイッチング時間、回復成功。
Config/SecOps: flag/limit/secretの変更、異常。
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/Capacityアラートがアクティブであり、計画作業のために抑制が規定されています。
- Runbook'と更新、オンコール確認、エスカレーションチャンネルが動作します。
14)アンチパターン(避けるべきもの)
カナリアや旗のない「ビッグナイトリリース」。
一般的なヘッド・オブ・ライン・ブロッキングプール。
非idempotent操作とボトルネックタイムアウトのためのリトレイ。
アラートにヒステリシスがない→しきい値に沿ってソーイング。
ベンダーSDKに対する盲目的な信頼性とタイムアウト管理。
「Let's Do the Prod」ステージ/サンドボックスとCDCなし。
15)予防KPI
Change Failure Rate(ターゲット≤ 10-15%またはターゲット)。
Pre-Incident Detect Rate:劣化段階で回避されたインシデントの割合。
インシデント間の平均時間(MTBI) MTTR。
カバレッジ保護:フラグ/ブレーカ/タイムアウト/カナリアを含む%クリティカルパス。
カオス/DRケイデンス:エクササイズの頻度と成功。
ベンダー準備状況:バックアッププロバイダへの平均スイッチング時間。
16)速い開始(30日)
第1週:クリティカルパスマップ、SLO、所有者;SLOバーンアラートと容量アラートが含まれます。
第2週: カナリアゲート+Phicheflags;基本的なカオススクリプト(provider/queue)
第3週:ダッシュボード「Change Safety」と「Vendor Panel」、 feilover Playbook。
第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: Change Failure Rateがダウンしている、予防されたインシデントの割合が上昇している、MTTRとアラートノイズがダウンしている、「night」ページの数がダウンしている。
Q:通常のカオス練習は必要ですか?
A:はい。訓練がなければ、feuillowerおよびDRは紙のようであるよりほとんど常に長く、苦痛である。