信頼性のパターンについて

適用する信頼性パターン。サーキットブレーカー、補正トランザクション、イベントソーシング、Pub/Subから耐障害性・回復性を実現。

Read in: en
信頼性のパターンについて

概要

信頼性のパターンについてAzure、AWS、GCPの提唱するパターンに基づいてまとめる。

信頼性とは

ユーザー(システムやアプリケーション)が期待する機能を提供し続けることができる性質のことである。

信頼性を支える特性

信頼性は次のような特性によって支えられる。

信頼性を支えるクラウド設計パターン

信頼性に関連するパターンをいくつかピックアップする。

アンバサダーパターン

ネットワーク通信に関わる処理を別のサービスに委譲することで、本来のサービスの負荷を軽減するパターン。

BFF(Backend for Frontend)

フロントエンドアプリケーションとバックエンドサービスの間に、フロントエンドアプリケーション専用のサービスを配置するパターン。

バルクヘッド

システムの一部が障害を起こしても、他の部分が影響を受けないようにするパターン。

キャッシュアサイド

データベースやAPIなどのリソースに負荷をかけないように、キャッシュを利用するパターン。

cf. キャッシュの書き込み方式

サーキットブレーカー

障害が発生した際に、障害が解消されるまで一定時間リクエストを拒否するパターン。

クローズド、ハーフオープン、オープンの3つの状態を持つ。

クローズド:リクエストを受け付ける状態 ハーフオープン:一部のリクエストを受け付ける状態 オープン:リクエストを受け付けない状態

クレームチェック

リクエストを受け付ける前に、リクエストが正当なものかどうかをチェックするパターン。

例えば、サービス間で大きなペイロードを直接やりとりしないように、ペイロードをデータベースに保存して、そのIDをやりとりするなど。

補正トランザクション

複数のリソースを更新する際に、トランザクションが失敗した場合に、リソースを元の状態に戻すパターン。

競合コンシューマー(ワークキュー)

複数のコンシューマーが同じメッセージングキューからメッセージを取得し、処理するパターン。

learn.microsoft.com - 競合コンシューマー パターンを参考にしている。聞き慣れない名前だが、多分これはシンプルなメッセージングキューだと思う。

イベントソーシング

システム内の状態の変化をイベントとして記録して、システムの状態を再構築できるようにするパターン。

優先順位キュー

キューに優先順位をつけて、優先順位の高いキューを優先的に処理するパターン。

Pub/Sub

パブリッシャーがメッセージを送信し、サブスクライバーがメッセージを受信するパターン。

パブリッシャーとサブスクライバーはトピックを介してメッセージをやりとりする。

参考

Tags: 信頼性 アーキテクチャ 設計 システム設計
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ サポート

このブログを応援していただける方は、以下からサポートをお願いします。いただいたサポートはブログ運営・技術研鑽に活用します。


関連記事