背景情報: 私は Play Framework ベースのアプリケーションを 2 つのノードで実行しています。これらのノードは単一の nginx ベースのロード バランサーの背後にあります。ソフトウェアの更新は、Jenkins 上で自動化されます。アプリケーションは、Supervisord プロセス マネージャーの上で実行されています。
質問: ソフトウェアの更新中にサービスが稼働するようにソフトウェアをノードに更新する正しい方法は何ですか?
解決策 1: ソフトウェアが更新されるノードからポート 80 を無効にし、ノードがサービスを提供する準備ができたらそれを開きます。ロード バランサーは、リクエストを別のノードに自動的に転送する必要があります。
解決策 2: ソフトウェアの更新中にロード バランサーからノードを無効にします。私は個人的にこのソリューションが好きではありません。ロード バランサーの構成を変更するのはリスクが高すぎるように思えます。また、変更を使用するには、nginx を再起動する必要があります。
他のアプローチを提案していただけますか?