次のスタック オーバーフローの質問によると: Django はスケーリングしますか? Django は、1 日/1 か月あたり数千のユーザーが予想される Web アプリに最適ですが、これを実現するには、適切な設計が必要です。
今私のシナリオは次のとおりです。
私はテック リード / リード デベロッパーとしてスタートアップに参加したばかりで、Django で 3 年の経験がありますが、大規模なアプリとして使用したことはありません。私が関わった最新の大規模アプリは Zope を使用しており、SQL Server に依存してキャッシュなどを処理していました (私の意見では恐ろしい慣行です)。このスタートアップのユーザー数はわずか 20,000 か月でわずか 20,000 人であり、彼らが私を雇ったのと同時にマーケティング スペシャリストも雇ったことを考えると、成長の機会を予測できます (または、少なくとも予測したいと考えています)。 . 既存の Django コードの多くはリファクタリングが必要です。つまり、ModelForm ではなく静的な html フォームを使用するなどです。
私の質問は、このアプリをリファクタリングするときに、毎月 100,000 から 500,000 のユーザーに拡張できるように、アプリを正しく実行するために従うべき設計パターンは何ですか? 私が気をつけなければならないいくつかの落とし穴は何ですか? モデル設計に関して、スケーラブルなモデル設計とは何ですか? DB サポートに関して、このスケーラビリティを実現するには、どのような種類の DB セットアップが役立ちますか? ロード バランシングに関して、ロード バランシングに適したアーキテクチャはどれですか?
私は、箱から出してDjangoを使用してもこれを達成できないと思います。また、スケーラビリティの専門家を雇うように依頼する必要がある状況に陥りたくありません...また、負荷が何であるかを知りたいです現在のパフォーマンス/スケーラビリティを測定するために使用できるテスト手法/ツールは? 私は彼らと一緒に数日しか経っていないので、まだ本番環境についてはわかりません。本番環境を変更する必要があると感じた場合、いくつかの良いオプション(クラウドソリューション)は何ですか。適切で手頃な価格ですか?
編集: 彼らはまた、すべてに Ajax を使用しているようで、それが心配です。私が彼らにそれを変更するよう説得できないと仮定すると、いくつかの優れた Ajax テクニック ライブラリ (私は django-dajax/dajaxice を知っています) を使用でき、まだスケーラブルです。
ありがとう、
サム