この質問に対する正解は 1 つではありませんが、次の点に注意してください。
適切な量の水平方向のスケーリングがあれば、デバッグ サーバーの使用を永久にスケール アウトし続けることができます。正確にいつスケーリングを開始する必要があるか (または「実際の」Web サーバーの使用に切り替える必要があるか) は、ホストしている環境、ユーザーの期待などによっても異なります。
おそらく遭遇する主な問題は、サーバーがシングルスレッドであることです。これは、各リクエストを一度に 1 つずつ順番に処理することを意味します。これは、複数のリクエスト (ファビコン、画像などの静的アイテム、CSS および Javascript ファイルなどを含む) を処理しようとすると、リクエストに時間がかかることを意味します。特定のリクエストに長時間 (たとえば 20 秒) かかる場合、アプリケーション全体がその時間 (20 秒) 応答しなくなります。もちろん、これはデフォルトにすぎません。スレッド数を増やす (またはリクエストを他のプロセスで処理する) ことで、いくつかの問題が軽減される可能性があります。しかし、繰り返しますが、「高」負荷の下ではまだ遅くなる可能性があります。「高」負荷と見なされるものは、アプリケーションと、最大許容応答時間の予測によって異なります。
もう 1 つの問題はセキュリティです。セキュリティ (アプリケーション自体のデータのセキュリティだけでなく、それを実行するボックスのセキュリティも) にまったく関心がある場合は、開発サーバーを使用しないでください。どんな種類の攻撃にも耐える準備ができていません。
最後に、開発サーバーが完全に失敗する可能性があります。長時間 (数日、数週間、数か月) 実行されるプロセスとして使用するように設計されていないため、この容量で動作することは十分にテストされていません。
そうです、それには限界があります。はい、おそらく本番環境で使用できます。はい、「実際の」Web サーバーを使用することをお勧めします。Apache や Nginx のようなものをインストールする必要があるという考えが気に入らない場合でも、いくつかのWSGI スタンドアロン サーバーを使用して「python スクリプトを実行する」のと同じくらい簡単なソリューションを使用できます。python run_app.py
コマンドラインで実行するのと同じくらい簡単に実稼働できるように設計されたサーバー。通常、4 ~ 5 行の Python スクリプトを作成してサーバー オブジェクトをインポートおよび作成し、それを Flask にポイントしてapp
実行するだけです。
gunicorn は、コマンド ラインで次のコマンドを実行するだけで実行できます。追加のスクリプトは必要ありません。
gunicorn myproject:app
...「myproject」は、app
Flask オブジェクトを含む Python パッケージです。gunicorn の開発者の 1 人は、おそらくこのアプローチを推奨しないことに注意してください。https://serverfault.com/questions/331256/why-do-i-need-nginx-and-something-like-gunicornを参照してください。