信頼性のあるローンチのための技術
漸進的・段階的なロールアウト (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