1

ローリング再起動を行う場合、一部のサーバーはまだ古いコードを実行していますが、一部のサーバーは新しいコードで再起動しています。多数のマシン/プロセスがある場合、最初のサーバーと最後のサーバーの間に大幅な遅延が発生する可能性があります。

これは、列の名前が変更された、テーブルが削除されたなど、データベース スキーマに変更があった場合に問題になる可能性があります。つまり、古いコード (以前の列名や古いテーブルを使用するなど) が、ローリング再起動が行われます。

Django は、これをうまく機能させるための保証や規則を提供しているのだろうか。私自身の観察によると、Django に新しいモデル (テーブル) と新しいフィールド (列) を追加しても、古いコードでは問題が発生しないようです。

ローリング再起動を行う際の問題を最小限に抑えるために、Django で従うべきベスト プラクティスや規則はありますか?

4

1 に答える 1

1

Djangoアプリケーションをデプロイする方法は無限にあります。各Webプラットフォームスタックには、異なる「ベストプラクティス」のセットがある場合があります。とはいえ、12の要素は、最新のWebアプリケーションの優れた設計原則です。

これまでのところ、私は以下を使用してDjangoをデプロイしました:

  • linux + apache + mod_wsgi
  • linux + nginx + uwsgi

あるファイル(通常は「reload.me」という名前の空のファイル)に触れたときにアプリケーションをリロードするようにサーバーを構成することを好みます。

私の経験では、それは問題ではないので、それについて多くの情報を見つけることができないかもしれません。

于 2012-05-09T05:54:58.700 に答える