GNU/Linux >> Linux の 問題 >  >> Cent OS

ダウンタイムのないローリング展開

この記事では、ダウンタイムなしでサーバーをアップグレードする方法について簡単に説明します。

ロードバランサーと2台のWebサーバーが実行されている単純な2層アーキテクチャのセットアップについて考えてみます。

各サーバーは、ダウンタイムを発生させることなく個別にアップグレードできるため、ログインしているユーザーへの影響を回避できます。これは以下のように行われます。

ステップ1: ロードバランサーでサーバーを無効にして、ループから1台のサーバーを削除します。赤い矢印は、ロードバランサーが通常のトラフィックをWebサーバーに送信しないように指示されていることを示しています。

ステップ2: 通常のユーザーには表示されない、選択したWebサーバーをアップグレードします。アップグレード後、特定のトラフィックに対してアップグレードされたサーバーを選択するようにロードバランサーに指示することでテストできます。ロードバランサーは、httpリクエスト内の特定のCookieまたは特定のURLの存在に基づいて、無効にされたアプリサーバーを使用するように構成できます。これにより、それぞれのチームは、通常のユーザーに影響を与えることなく、サーバー上で機能テストを実行できるようになります。

ステップ3: 本番環境でアップグレードされたサーバーで機能テストを実行して、すべてが新しいリリースで良好であることを確認できます。すべてが正常に機能していることを確認した後、アップグレードされたサーバーへのトラフィックフローを再開できます。これで、アップグレードされたサーバーとアップグレードされていないサーバーの両方が環境内で一緒に実行されます。ユーザーが同じアプリサーバーに永続化されていない場合は、問題が発生する可能性があります。ユーザーには、さまざまなリクエストでさまざまなリリースが表示される場合がありますが、これは望ましくありません。ここでロードバランサーが機能します。ロードバランサーは、ユーザーを同じアプリサーバーに永続化するように構成できます。これにより、アプリサーバーが有効になっている限り、ユーザーには常に同じアプリサーバーが表示されます。ユーザーセッション用に選択したアプリサーバーがオフラインになった場合にユーザーが影響を受けないように、このオプションをアプリサーバー間でのセッション共有と一緒に使用することをお勧めします。

ステップ4: 次に、他のWebサーバーについても同じ手順を実行します(トラフィックを無効にする->サーバーをアップグレードする->テストを実行する->トラフィックを有効にする)

上記の手順を使用して、ダウンタイムを発生させることなく2つのWebサーバーをアップグレードしました。この方法は、より多くの層とより多くのインスタンスがデプロイされているアーキテクチャに採用できます。


Cent OS
  1. Ubuntu14.04でのサーバーの初期設定

  2. Nagios3.4でMySQLサーバーを監視する

  3. ScreenShotを使用したCentOS7のインストールステップバイステップ–パート2

  1. PostfixAdminを使用してメールサーバーを設定する

  2. Muninでサーバーを監視する

  3. ngx_http_image_filter_module による画像プレビュー

  1. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法

  2. CentOS8でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. スクリーンショット付きのFedora27サーバーインストールガイド