一般的な軽減戦略
まず、障害モードがユーザーストーリーに影響を与えないように、予防的軽減策の利用を検討してください。次に、是正的軽減策について検討する必要があります。是正的軽減策によって、システムの自己修復や変化する条件への適応が可能になります。耐障害性の特性に合わせた、各障害カテゴリに対応する一般的な軽減策のリストを次に示します。
障害カテゴリ |
期待される耐障害特性 |
緩和策 |
|---|---|---|
単一障害点 (SPOF) |
冗長性と耐障害性 |
|
過剰な負荷 |
十分な容量 |
|
過剰なレイテンシー |
タイムリーな出力 |
|
設定ミスとバグ |
正しい出力 |
|
共有される運命 |
障害分離 |
|
これらの軽減策の中には実装にかかる労力が最小限で済むものもありますが、特定のユーザーストーリーのコンポーネントだけでなく、ワークロード全体の再設計が必要になるものもあります (予測可能な障害分離と最小限の運命共有の失敗に対応するセルベースアーキテクチャの採用など)。前述のように、障害モードの可能性と影響を、それを軽減するために行うトレードオフと比較することが重要です。
各障害モードカテゴリに適用される軽減手法に加えて、ユーザーストーリーまたはシステム全体の復旧に必要な軽減策についても検討する必要があります。例えば、障害が発生するとワークフローが停止し、意図した送信先にデータが書き込まれなくなる可能性があります。この場合、ワークフローを再処理したり、データを手動で修正したりするために、運用ツールが必要になるかもしれません。また、障害発生時のデータ損失を防ぐために、ワークロードにチェックポイントメカニズムを構築する必要が生じる場合もあります。または、さらなる損害を防ぐために、Andon コードを作成してワークフローを一時停止し、新しい作業の受け入れを停止する必要が生じる可能性があります。このような場合は、必要な運用ツールとガードレールを検討する必要があります。
最後に、軽減戦略を策定する際に、人為的エラーの発生可能性を常に想定しておく必要があります。最新の DevOps プラクティスでは運用の自動化を模索していますが、それでもさまざまな理由から、人間によるワークロードの操作が必要になります。メンテナンス中に過剰な台数のノードを削除して過負荷を発生させたり、機能フラグを誤って設定したりするなど、人間が操作を誤ると、SEEMS カテゴリのいずれかで障害が発生する可能性があります。これらのシナリオは、予防的ガードレールで実際に発生する障害です。根本原因分析では、「人間がミスをした」という結論で終わるべきではありません。第一に間違いが起こり得る状況になった理由について対処する必要があります。したがって、軽減戦略では、人間のオペレーターによるワークロードコンポーネントの操作方法と、安全ガードレールを通じて人間のオペレーターのミスによる影響を防止または最小限に抑える方法を考慮する必要があります。