高可用性システムの設計方法

高可用性システムの設計方法

運用環境のサーバー上で、いくつかの Web アプリケーションといくつかのデスクトップ アプリケーションが実行されているとします。

実稼働環境では、1 分間のダウンタイムも許容されません。現在、HA Cluster systemこの目的で使用されるものについてのみ知っています。これがシステムのシャットダウンを防ぐ唯一の方法であるか、またはこれ以外に使用されている他の方法があるかどうかを知りたいです。

Google のような大企業も 1 秒のダウンタイムも許容しないのに、高可用性のために何を使用しているのでしょうか?

ありがとう

答え1

基本的には、アプリケーションの実行に必要なすべてのサービスに対して自動フェイルオーバーを行う必要があります。

1 つの解決策としては、次のようなアプローチが考えられます。

  1. 両方のシステムに Keepalived がインストールされています。
  2. HAProxyをHAP LB 2へのフェイルオーバーを備えたロードバランサーとして使用。keepalivedで監視
  3. HAP の背後にある Apache/NGINX。1 つに障害が発生した場合、HAP はそれを監視し、他のサーバーの Apache/NGINX にリダイレクトします。
  4. MySQL マスター / マスター レプリケーション、HAP 経由で負荷分散および監視

基本的に、HAProxy はシステム上の負荷を分散し、稼働中のサービスの 1 つにのみ転送します。

探しているアーキテクチャは次のようになります。

ここに画像の説明を入力してください

答え2

それは状況によります。すべてのアプリケーションとOSIモデルのすべてのレベルごとに、独自のHAシステムを作成する必要があります。

しかし、まずはha-proxy、keepalived、バックエンドのnginxについて学ぶことができます。

答え3

システムの強さは、最も弱い部分の強さによって決まります。

典型的な実稼働環境では、あらゆるものが複数存在します。小規模な Web クラスターは、ロード バランサー、複数のリバース プロキシ、複数の http サーバー、マスター/スレーブまたはマスター/マスター データベース ノードで構成されます。この設定では、単一のロード バランサーが弱点になります。つまり、ロード バランサーが機能しなくなると、何も機能しなくなります。大規模な環境では、これをより大規模に複製します。

最終的には、ネットワークの設計は目的に応じて異なります。

関連情報