22章カスケード障害への対応

執筆:Mike Ulrich

最初に成功しなかったら、指数的にバックオフすることだ。

——Dan Sandler、Googleソフトウェアエンジニア

なぜ人々は少しのジッターを加えることをいつも忘れてしまうのか?

——Ade Oshineye、Googleデベロッパーアドボケート

カスケード障害は、ポジティブフィードバック†1の結果として、時間と共に拡大していく障害のことです。カスケード障害は、システムの一部に障害が発生したことによってシステムの他の部分にも障害が発生する確率が高まる場合に生じます。例えば、あるサービスのレプリカの一つに過負荷による障害が発生すると、残りのレプリカの負荷も高まり、その結果障害が発生する確率が上がります。そしてドミノ効果が引き起こされ、サービスの全レプリカがダウンすることになりうるのです。

本章では、全体を通して「2.6 シェークスピア:サンプルのサービス」で取り上げたシェークスピアの検索サービスを例として使います。このサービスのプロダクション設定は、図22-1のようになるでしょう。

シェークスピア検索サービスのプロダクション設定の例

図22-1 シェークスピア検索サービスのプロダクション設定の例

22.1 カスケード障害の原因及び回避のための設計

綿密に設計されたシステムは、カスケード障害の大部分を占めるいくつかの典型的なケースを考慮に入れています。

22.1.1 サーバーの過負荷

カスケード障害の最も一般的な原因は過負荷です。ここで言うカスケード障害のほとんどは、直接の原因がサーバーの過負荷によるものか、もしくはその拡大版や変種です。 ...

Get SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.