いくつかの node.js サービスをリファクタリングしています。それらはすべてforever
仮想サーバー上で開始され、プロセスがクラッシュした場合は再起動するだけでした。
さて、コンテナ化されたステートレスなアプリケーション構造に移行すると、プロセスが終了し、コンテナが失敗したときに再起動する必要があると思います。
あれは正しいですか?メリットやデメリットはありますか?
いくつかの node.js サービスをリファクタリングしています。それらはすべてforever
仮想サーバー上で開始され、プロセスがクラッシュした場合は再起動するだけでした。
さて、コンテナ化されたステートレスなアプリケーション構造に移行すると、プロセスが終了し、コンテナが失敗したときに再起動する必要があると思います。
あれは正しいですか?メリットやデメリットはありますか?
フェールセーフとして使用するのは良い考えですが、コンテナーの再起動は比較的遅い (ここで--restart=always
説明されている単純な Hello World ノード サーバーで 5 秒以上) ため、 などを使用してアプリのダウンタイムを最小限に抑えることができます。forever
コンテナ内でプロセスを再起動することの欠点は、クラッシュ リカバリが2 つの方法で発生する可能性があることです。これは、監視などに影響を与える可能性があります。