信頼性のあるローンチのための技術
漸進的・段階的なロールアウト (Gradual and Staged Rollouts)
システム管理の格言 「実行中のシステムを変更しない」
あらゆる変更にはリスクがある
https://sre.google/sre-book/service-best-practices/ を参照
カナリアテスト (カナリアリリース) や招待システムなど
機能フラグフレームワーク (feature flag frameworks)
悪いクライアントの挙動への対処
更新レートの判断ミスなど
規則性があると、スパイクが発生しやすい
例 : 全クライアントで午前 2 時にアップデートをかけるとか、再試行までの時間を固定するとか
ランダム性を入れる
サーバー側からクライアントの動作を制御する機能
過負荷 (overload) 状態
サービスが過負荷にどう反応するかを予測するのは難しいので、負荷テストが重要
参考文献
Site Reliability Engineering: How Google Runs Production Systems