Djangoはスケーリングしますか?[閉まっている]


1135

私はDjangoでWebアプリケーションを構築しています。Djangoを選択した理由は次のとおりです。

  • フリー/オープンソースのツールで作業したかった。
  • 私はPythonが好きで、長期的な言語だと感じていますが、Rubyについては確信が持てず、PHPを学ぶのは非常に面倒なように思えました。
  • 私はアイデアのプロトタイプを作成していて、将来についてあまり考えていませんでした。開発のスピードが主な要因で、私はすでにPythonを知っていました。
  • Google App Engineへの移行は、将来そうすることを選択した場合、より簡単になることを知っていました。
  • Djangoは「素晴らしい」と聞きました。

自分の作品を公開することについて考えることに近づいている今、私は規模に関心を持ち始めています。Djangoのスケーリング機能に関して私が見つけた唯一の情報は、Djangoチームから提供されたものです(私はそれらを無視するために何も言っていませんが、これは明らかに客観的な情報ではありません...)。

私の質問:

  • 今日Djangoで構築された「最大の」サイトは何ですか?(私は主にユーザートラフィックによってサイズを測定しています)
  • Djangoは毎日100,000人のユーザーに対応できますか?各ユーザーが数時間サイトにアクセスしますか?
  • Stack OverflowのようなサイトはDjangoで実行できますか?

2
まだ読んでいない場合は、Django Bookのスケーリングに関するセクションを読むことをお勧めします:djangobook.com/en/1.0/chapter20または新しいバージョン:djangobook.com/en/2.0/chapter12
monkut

15
「速度が主な要因」を修正して、実行速度と開発作業のどちらについて話しているのかを明確にしたい場合があります。理にかなっている開発努力のように聞こえます。
S.Lott、2009年

6
これをRoRと比較すると興味深いでしょう。
Kozyarchuk 2009年

6
@ ajkumar25、私の知る限りディスカスはジャンゴ使用blog.disqus.com/post/62187806135/...を
alxs 2015年

6
質問はする必要がありますwhat's the cost of scaling in the Django?
SławomirLenart

回答:


932
  1. 「今日Djangoで構築された最大のサイトは何ですか?」

    Djangoが構築したサイトのトラフィックに関する情報を収集する場所は1つだけではないので、さまざまな場所のデータを使用してそこに突き刺さなければなりません。まず、メインのDjangoプロジェクトページのフロントページにDjangoサイトのリストがあり、次にdjangosites.orgに Djangoビルドサイトのリストがあります。リストを調べ、私が目にする適切なトラフィックがあるとわかっているものをいくつか選択します。

  2. 「Djangoは毎日100,000人のユーザーに対応でき、それぞれが数時間サイトにアクセスしていますか?」

    はい、上記をご覧ください。

  3. 「Stack OverflowのようなサイトはDjangoで実行できますか?」

    私の直感はイエスですが、他の人が答え、マイクマローンが彼のプレゼンテーションで言及しているように、データベースの設計は重要です。信頼できるトラフィック統計情報が見つかれば、www.cnprog.comでも強力な証拠が見つかる可能性があります。とにかく、それはDjangoモデルの束を一緒に投げることによって起こるものだけではありません:)

もちろん、興味のあるサイトやブロガーは他にもたくさんありますが、私はどこかに立ち寄らなければなりません!


Djangoを使用してトラフィックの多いサイトmichaelmoore.comを構築することに関するブログ投稿。上位10,000のWebサイトとして説明されていますQuantcast統計およびcompet.com統計


(*)そのようなリファレンスを含む編集の著者は、そのプロジェクトで外部委託された開発者として働いていました。


267

現在、負荷テストを行っています。サーバーのパフォーマンスを大幅に低下させることなく、240の同時リクエスト(24時間年中無休で毎秒120ヒット)をサポートできると考えています。1時間あたり432,000ヒットになります。応答時間は短くありません(トランザクションが大きい)が、負荷が増加してもベースラインパフォーマンスが低下することはありません。

ApacheフロントエンドDjangoとMySQLを使用しています。OSはRed Hat Enterprise Linux(RHEL)です。64ビット。Djangoのデーモンモードではmod_wsgiを使用します。デフォルトを受け入れる以外は、キャッシュやデータベースの最適化は行っていません。

私たちはすべて、64ビットのDell(32ビットのRAMを搭載していると思います)を搭載した1つのVMにいます。

20人または200人の同時ユーザーのパフォーマンスはほぼ同じであるため、「調整」に膨大な時間を費やす必要はありません。代わりに、通常のSSLパフォーマンスの改善、通常のデータベースの設計と実装(インデックス作成など)、通常のファイアウォールのパフォーマンスの改善などを通じて、基本的なパフォーマンスを維持する必要があります。

私たちが測定するのは、16の同時スレッドリクエストを実行する15のプロセスの非常に大きなワークロードで苦労している負荷テストラップトップです。


3
また好奇心が強い:あなたのDBは同じマシンで稼働していますか、それとも別のサーバーですか?
ジャレットハーディー

16
Apache、Django、MySQLを備えた1つのVM。mod_wsgi。RHEL。
S.Lott、2009年

4
パフォーマンス指標に関する更新はありますか?
SexyBeast 2016年

1
あなたは良い点を作ります-あなたがあなたのウェブサイトのトラフィックをキューと考えるなら、あなたは1時間あたりいくつの応答を提供できますか?応答時間を短く保つと、より多くのサービスを提供できるため、「スケーラビリティが向上」します。Django、Twisted、Rails、または惑星Zodのテクノロジーを使用するかどうかは問題ではありません。
ラルフボルトン

2
私は何年もDjangoを使用してきましたが、ほとんどが読み取り専用のおもちゃアプリ以外では、この種のパフォーマンスを見たことがありません。アプリケーションの性質は何ですか?テンプレート、ミドルウェア、セッション、またはデータベース接続を備えたものは、すべてをバイパスする大量のキャッシュがなければ、毎秒120ヒットをサポートすることはできません。
セリン

176

毎日の訪問数はわかりませんが、大規模なDjangoサイトの例をいくつか示します。

Quoraの高トラフィックDjangoサイトのリストへのリンクです。


107

今日Djangoで構築された「最大の」サイトは何ですか?(私は主にユーザートラフィックによってサイズを測定しています)

アメリカではマハロでした。彼らは毎月およそ1000万のユニークを処理すると言われています。現在、2019年にMahaloはRuby on Railsを搭載しています。

海外では、Globoネットワーク(ブラジルのニュース、スポーツ、エンターテイメントサイトのネットワーク)。Alexaはそれらを世界でトップ100にランク付けします(現在は約80位)。

その他の注目すべきDjangoユーザーには、PBS、National Geographic、Discovery、NASA(実際にはNASA内のさまざまな部門の数)、および米国議会図書館があります。

Djangoは毎日10万人のユーザーを扱い、それぞれが数時間サイトにアクセスできますか?

はい。ただし、アプリケーションを正しく作成していて、十分なハードウェアがある場合に限ります。Djangoは魔法の弾ではありません。

StackOverflowのようなサイトはDjangoで実行できますか?

はい(ただし、上記を参照)。

技術的には簡単です。1つの試みについては、socloneを参照してください。トラフィックに関しては、StackOverflowのペグを月間100万個未満で競合します。SOよりもトラフィックが多いDjangoサイトを少なくとも12個挙げることができます。


2
Djangoを使用して、Linkedinのようなものと仮定して、1秒あたり5000ヒットのおおよその価格を見積もることができますか。平均的なプログラマーがサイトを構築し、もちろんキャッシュを追加したと仮定します。アルゴリズムなど(物事を速くするため)は、まだ使用していないので、使用されていないと仮定します。
user2349115

5
@ user2349115アプリケーションが5000「1秒あたりのヒット数」を取得するまでに、十分な背景知識を得て、なぜそれが間違った質問なのかを理解できます。
Kye R 2017

私の忍者(wrappalyzerブラウザー拡張)は、mahaloが2019
Miles Davis

87

Webアプリのスケーリングは、Webフレームワークや言語ではなく、アーキテクチャに関するものです。これは、ブラウザーキャッシュ、データベースキャッシュの処理方法、非標準の永続性プロバイダー(CouchDBなど)の使用方法、データベースやその他の多くの調整方法についてです...


Webフレームワークは重要です!他のpython webframeworkと比較してどれだけ速い竜巻を見てください:tornadoweb.org/documentation#performance
Joshua Partogi

私は反対票を投じませんでしたが、djangoのメリットについて話し合っており、すべてのデータベースを使用することはできず、データベースを調整して、すべての特定のフレームワークでcouchdbを最大限に使用しているため、トピックから少し外れたと思います。もちろん、そうでない場合を除き、大きなチャンクを書き直してください。
ZJR 2010年

8
@ZLR私は話題から外れたとは思わない。あなたは右のアーキテクチャのアプローチを使用する場合、ほぼすべての近代的なWebフレームワーク、言語に関係なくは、拡張することができますので、Djangoは、私がそう言った、拡張が可能ならば、彼は尋ねた
razenha

ええ、トルネードの例のように、ブロッキングIOとノンブロッキングIO 重要です。そうは言っても、TornadoはWebフレームワークではありませんが、アプリケーションはノンブロッキングIOを利用する方法で作成する必要があります。
ロブ・グラント

Tornadoを使用すると、ブロッキングIOコードを非常に簡単に作成できます。そして、それは高い並行性を与えません。フレームワークは実際には問題ではありません。
Shiplu Mokaddim

80

悪魔の擁護者を少し演じる:

Cal Hendersonによって提供されたDjangoCon 2008 Keynoteをチェックしてください。「なぜ私はDjangoが嫌いですか」というタイトルで、トラフィックの多いWebサイトでDjangoに欠けているすべてのことについて説明しています。結局のところ、スケールするDjangoアプリを作成すること完全に可能であるので、これをすべてオープンに心に留めておく必要があります。


3
また、Flickrは1日で構築されませんでした。
Deniz Dogan 2010

34
Calが抱えていたいくつかの問題が標準機能になっているようです:docs.djangoproject.com/en/dev/topics/db/multi-db
Dolph

51

私が知っている最大のdjangoサイトはWashington Postです。これは確かに、適切にスケーリングできることを示しています。

優れた設計上の決定は、おそらく他の何よりもパフォーマンスに大きな影響を与えます。Twitterは、別の動的解釈言語ベースのWebフレームワークであるRuby on Railsでパフォーマンスの問題を体現するサイトとしてよく引用されます。オン。

Djangoはmemcachedと非常にうまく連携し、キャッシュを管理するためのいくつかのクラスを提供します。これにより、パフォーマンスの問題の大部分を解決できます。ワイヤーで配信することは、実際のバックエンドよりもほとんど重要です。yslowなどのツールを使用することは、高性能Webアプリケーションにとって重要です。バックエンドで常により多くのハードウェアを投入できますが、ユーザーの帯域幅を変更することはできません。


1
Djangoで動作しているのは、washingtonpost.comの一部だけではありませんか?Djangoのフロントページには、それだけだ示しているようだprojects.washingtonpost.com/congress
熊Chiamiov

3
おそらく、ワシントンポストとワシントンタイムズを混同しているのでしょう。TimesはすべてDjangoに関するものだと思いますが、それははるかに小さい論文です。
Eli

32

私は先週EuroDjangoConカンファレンスに参加していました。これは、Djangoベースの最大のサイトであるPownce(ここでの 1つの講演からのスライド)の創設者からの講演を含む、いくつかの講演の主題でした)。主なメッセージは、心配する必要があるのはDjangoではなく、適切なキャッシュ、ロードバランシング、データベースの最適化などです。

Djangoは実際にそれらのほとんどのフックを備えています-特に、キャッシングは非常に簡単です。


24

もっと確かな答えを探していると思いますが、私が考えることができる最も明白な客観的検証は、GoogleがDjangoをApp Engineフレームワークで使用するようにプッシュすることです。だれかが定期的にスケーラビリティについて知っていて、それに対処している場合、それはGoogleです。私が読んだことから、最も制限的な要素はデータベースのバックエンドであるように思われます、それがGoogleが独自のものを使用している理由です...


Django / Pythonを宣伝することは、C ++に続く「その他」の言語の選択としてPythonを宣伝するというGoogleのポリシーにより関連している可能性がありますか?
GuruM 2014年

私がGAEを使用しなければならなかったとき、それはトルネードのようなものにかなり近かった...
Luis Masuelli

18

High Performance Django Book and Go Go to Cal Cal Hendersonに記載されています

下記の詳細をご覧ください。

「Djangoはスケーリングしない」と言われるのは珍しいことではありません。それをどのように見るかに応じて、ステートメントは完全に正しいか、明らかに間違っています。Django自体は拡張できません。

Ruby on Rails、Flask、PHP、またはデータベース駆動型の動的Webサイトで使用されるその他の言語についても同じことが言えます。

ただし、朗報は、Djangoがキャッシュと負荷分散ツールのスイートと見事に相互作用し、Djangoがスローできるトラフィックに合わせてスケーリングできるようになることです。

オンラインで読んだこととは逆に、データベースのORMやテンプレートレイヤーなど、「遅すぎる」とラベルが付けられていることが多いコアコンポーネントを置き換えることなく実行できます。

Disqusは1か月あたり80億以上のページビューを提供します。それらはいくつかの巨大な数です。

これらのチームは、Djangoが確実にスケーリングできることを証明しています。ここリンカーンループでの経験がそれを裏付けています。

Redditのホームページで汗を流すことなく1日を過ごせる大きなDjangoサイトを構築しました。

Djangoのスケーリングのサクセスストーリーは、現時点では数が多すぎます。

Disqus、Instagram、Pinterestをサポートしています。もっと証拠が必要ですか?Instagramはたった3人のエンジニア(うち2人はバックエンド開発をしなかった)でDjango上の3000万人以上のユーザーを維持することができました


17

今日、私たちはニーズに合わせて多くのWebアプリとサイトを使用しています。それらのほとんどは非常に便利です。pythonまたはdjangoで使用されるそれらのいくつかを紹介します。

ワシントンポスト

ワシントンポストのウェブサイトは、毎日の新聞に掲載される非常に人気のあるオンラインニュースソースです。その膨大な量のビューとトラフィックは、Django Webフレームワークで簡単に処理できます。 Washington Post - 52.2 million unique visitors (March, 2015)

NASA

国立航空宇宙局の公式ウェブサイトは、彼らの進行中の宇宙探査に関するニュース、写真、ビデオを見つける場所です。このDjango Webサイトは、大量のビューとトラフィックを簡単に処理できます。 2 million visitors monthly

保護者

Guardianは、Guardian Media Groupが所有するイギリスのニュースおよびメディアのWebサイトです。ガーディアン紙とオブザーバー紙のほぼすべての内容が含まれています。この巨大なデータはDjangoによって処理されます。 The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

YouTube

猫の動画をアップロードする場所はYouTubeであり、失敗しています。現存する最も人気のあるWebサイトの1つとして、無限の時間のビデオエンターテイメントを提供しています。Pythonプログラミング言語は、Pythonプログラミング言語と私たちが愛する機能を支えています。

ドロップボックス

DropBoxは、日常生活の一部となったオンラインドキュメント保存革命を開始しました。現在、ほぼすべてをクラウドに保存しています。Dropboxを使用すると、Pythonの機能を使用して、ほとんどすべてを保存、同期、共有できます。

調査猿

Survey Monkeyは最大のオンライン調査会社です。彼らは書き直したPython Webサイトで毎日100万件を超える応答を処理できます。

Quora

Quoraは、個人のコミュニティから質問をしたり、回答を受け取ったりするためのオンラインでの最大の場所です。彼らのPythonウェブサイトでは、これらのコミュニティメンバーが関連する結果に回答し、編集し、整理しています。

少し

Bitly URL短縮サービスと分析のコードの大部分はすべてPythonで構築されています。彼らのサービスは1日に数億件のイベントを処理できます。

Reddit

Redditはインターネットのフロントページとして知られています。何千もの異なるカテゴリに基づいて情報や娯楽を見つけるためのオンラインの場所です。投稿とリンクはユーザーが作成したものであり、投票を通じて上位に昇格します。Redditの機能の多くは、その機能をPythonに依存しています。

Hipmunk

Hipmunkは、オンライン旅行者向けの旅行サイトで、トップの旅行サイトを比較して、お得な情報を見つけます。このPythonウェブサイトのツールを使用すると、目的地に最も安いホテルやフライトを見つけることができます。

詳細はここをクリック: 25-of-the-most-popular-python-and-django-websitesWhat-are-some-well-known-sites-running-on-Django


15

djangoを集中的に使用しているリストに、2011年のAppleのApp of the year、Instagramを追加することもできると思います。


12

はい、できます。PythonまたはRuby on RailsのDjangoの可能性があります。それでもスケーリングされます。

いくつかの異なるテクニックがあります。まず、キャッシングはスケーリングではありません。ハードウェアバランサーに加えて、フロントとしてnginxでバランスをとった複数のアプリケーションサーバーを使用できます。データベース側でスケーリングするには、RDBMSの方法を使えば、MySQL / PostgreSQLの読み取りスレーブでかなり遠くまで行けます。

Djangoのトラフィックの多いWebサイトの良い例は次のとおりです。

  • 彼らがまだそこにいたときの道化師
  • Discus(一般的な共有コメントマネージャー)
  • 新聞関連のすべてのウェブサイト:ワシントンポストなど。

安全を感じることができます。


2
ただ言う...死んだソーシャルネットワークは悪いスケーラビリティの例を作る:)
ZJR 2010年

3
Pownceの死者がスケーラビリティの問題に関連しているとは思いません。
ケダーレ2011

9

以下は、Djangoで構築された比較的注目度の高いもののリストです。

  1. ガーディアンの「MPの費用を調査する」アプリ

  2. Politifact.com((ポジティブ)エクスペリエンスについて語るブログ投稿です。サイトはピューリッツァーで優勝しました。

  3. NYタイムズの代理アプリ

  4. EveryBlock

  5. WaPoのプログラマーの1人であるPeter Harkinsが、Django構築したすべてのものを彼のブログにリストしています。

  6. 少し古いですが、LA Timesの誰かがDjangoを採用した理由の概要を説明しました。

  7. OnionのAVクラブは最近(Drupalだと思います)からDjangoに移動しました。

これらのサイトの多くは、おそらく1日あたり10万回を超えるヒットになると思います。Djangoは確かに1日あたり10万ヒット以上を実行できます。しかし、YMMVは、何を構築しているかに応じて、特定のサイトをそこに取得します。

Djangoレベルのキャッシュオプション(たとえば、memcachedでのクエリセットとビューのキャッシュは不思議に機能します)とそれ以降(Squidのような上流キャッシュ)があります。データベースサーバーの仕様も要因(および通常は散りばめられる場所)になります。たとえば、Djangoがインデックスを適切に設定すると想定しないでください。デフォルトのPostgreSQLまたはMySQLを想定しないでください構成が正しいものであるとは。

さらに、ソフトウェアまたはハードウェアのロードバランサーを前にして、複数のアプリケーションサーバーでDjangoを実行するのが遅い場合は、いつでも選択できます。

最後に、Djangoと同じサーバーで静的コンテンツを提供していますか?Apacheまたはnginxlighttpdなどを使用していますか?静的コンテンツにCDNを使用する余裕がありますか?これらは考慮すべきことですが、すべて非常に推測的なものです。1日あたり10万ヒットが唯一の変数ではありません。どれだけ使いたいですか。これらすべてのコンポーネントを管理する専門知識はどのくらいありますか?すべてをまとめるのにどのくらいの時間がかかりますか?


9

YouTubeを支持する開発者は、PyCon 2012Pythonのスケーリングについて講演しました。これは、Djangoのスケーリングにも関連しています。

YouTubeのユーザー数は10億人を超えており、YouTubeはPython上に構築されています。


3
しかし、YouTubeはdjangoで構築されていません。Pythonは高速かもしれませんが、djangoはそうではありません。
Joshua Partogi、2010年

4
そうですが、要点は、Djangoが成長するにつれ、速度リファクタリングの優れた基盤の上にあり、GoogleがUnladen Swallowのようなプロジェクトに取り組んでいることで、より良くなるということです。
orokusaki

7

私は1年以上Djangoを使用してきましたが、モジュール性、スケーラビリティ、および開発速度を組み合わせる方法に非常に感銘を受けています。他のテクノロジーと同様に、学習曲線が付いています。ただし、この学習曲線は、Djangoコミュニティからの優れたドキュメントによって大幅に緩和されています。Djangoは、私が投げつけたすべてのものを本当にうまく処理することができました。将来的には十分に拡張できるようです。

BidRodeo Penny Auctionsは、適度なサイズのDjango ベースの Webサイトです。これは非常に動的なWebサイトであり、1日にかなりの数のページビューを処理します。


6

1日に10万人のユーザーがいることが予想され、一度に何時間もアクティブである場合(最大で2万人以上の同時ユーザーを意味する)、サーバーのLOTが必要になることに注意してください。SOには約15,000人の登録ユーザーがいて、そのほとんどはおそらく毎日アクティブではありません。トラフィックの大部分は未登録のユーザーからのものですが、サイトに2分以上滞在する人はほとんどいないと思います(つまり、ユーザーはGoogle検索結果をたどって去ります)。

そのボリュームの場合、少なくとも30台のサーバーを想定します。これは、サーバーあたり1,000人の同時ユーザーとしてはかなり重いです。


2
ポッドキャストから、SOは3台のサーバーしか使用していないようです。しかし、SOはPythonではなくC#を使用して構築されているため、機能しません。
S.Lott、2009年

1
明らかに問題は次のようになります:それらはどれだけ強力なサーバーですか?
mamcx 2009年

6

今日Djangoで構築された「最大の」サイトは何ですか?(主にユーザートラフィックによってサイズを測定しています) Pinterest
disqus.com
詳細はこちら:https : //www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

Djangoは毎日100,000人のユーザーに対応でき、それぞれが数時間サイトにアクセスしますか?
はい。ただし、適切なアーキテクチャ、データベース設計、キャッシュの使用、負荷分散と複数のサーバーまたはノードの使用

Stack OverflowのようなサイトはDjangoで実行できますか?
はい、2番目の質問で述べた答えに従うだけです


5

別の例は、ロシアの輸送時刻表サービスであるrasp.yandex.ruです。その出席はあなたの要件を満たします。


5

静的コンテンツのあるサイトがある場合は、ワニスを配置しますサーバーを前面に配置すると、パフォーマンスが劇的に向上します。1つのボックスでさえ、100 Mbit / sのトラフィックを簡単に吐き出すことができます。

動的コンテンツの場合、ワニスのようなものを使用することは、よりトリッキーになることに注意してください。


1
ここでの問題は、ワニスがすべてのパフォーマンスを劇的に向上させることです。そしてより速いフレームワークはまだより速くなります。
ZJR 2010年

5

私のDjangoでの経験は最小限ですが、Django Bookで、より大きなDjangoアプリケーションを実行している人々にインタビューする章があることを覚えています。 こちらがリンクです。 私はそれがいくつかの洞察を提供できると思います。

curse.comは、1か月に約6,000〜9000万のページビューを持つ最大のDjangoアプリケーションの1つであると述べています。


1
curse.comの URLは.aspxで終わるようになりました(作成された場合は
dunno

5

アイルランドの全国放送局向けにDjangoを使用してトラフィックの多いサイトを開発しています。それは私たちにとってうまくいきます。高性能なサイトを開発することは、単にフレームワークを選択するだけではありません。フレームワークは、最も弱いリンクと同じくらい強力なシステムの一部にすぎません。最新のフレームワーク「X」を使用しても、データベースクエリが遅いか、サーバーまたはネットワークの構成が適切でない場合、パフォーマンスの問題は解決されません。


4

ここには素晴らしい答えがたくさんありますが、強調したいのは、誰も強調していないことです。

用途による

アプリケーションの書き込みが少ない場合、書き込みよりもDBから多くのデータを読み取る場合などです。その場合、djangoのスケーリングはかなり簡単なはずです。まあ、箱から出してすぐに、かなりまともな出力/ビューキャッシュがいくつか付属しています。これを利用して、たとえば、redisをキャッシュプロバイダーとして使用し、その前にロードバランサーを配置し、nインスタンスを起動すると、非常に大量のトラフィックを処理できるはずです。

さて、1秒間に数千回の複雑な書き込みを行う必要がある場合はどうでしょうか。別の話。Djangoは悪い選択でしょうか?必ずしもそうとは限りませんが、ソリューションを実際にどのように構築するか、また要件が何であるかに依存します。

ちょうど私の2セント:-)



3

EveryBlockと呼ばれるこのマイクロニュースアグリゲーターを確認してください。

完全にDjangoで書かれています。実際、彼らはDjangoフレームワーク自体を開発した人々です。



3

問題は、djangoがスケーリングできるかどうかを知ることではありません。

適切な方法は、django / symfony / railsプロジェクトの下に配置して適切にスケーリングするためのネットワーク設計パターンとツールを理解して知ることです。

いくつかのアイデアがあります:

  • 多重化。
  • 逆プロキシ。例:Nginx、ワニス
  • Memcacheセッション。例:Redis
  • 負荷分散とフォールトトレランスのためのプロジェクトとデータベースのクラスタ化:例:Docker
  • サードパーティを使用してアセットを保存します。例:Amazon S3

少しお役に立てば幸いです。これは私の山への小さな岩です。


3

オープンソースを使用したい場合は、多くのオプションがあります。しかし、多くのライブラリと非常に素晴らしいコミュニティがあるため、Pythonはそれらの中で最高です。これらはあなたの心を変えるかもしれないいくつかの理由です:

  • Pythonは非常に優れていますが、インタプリタ言語であるため、処理が遅くなります。しかし、この問題を部分的に解決する多くのアクセラレータおよびキャッシングサービスが存在します。

  • 迅速な開発を検討している場合は、Ruby on Railsが最適です。この(ROR)フレームワークの主なモットーは、開発者に快適な体験を提供することです。RubyとPythonを比較すると、どちらもほぼ同じ構文です。

  • Google App Engineは非常に優れたサービスですが、その範囲に拘束されるため、新しいことを試す機会はありません。その代わりに、Digital Oceanクラウドを使用できます。このクラウドは、最も単純な液滴に対して月額5ドルしかかかりません。Herokuは、製品をデプロイできるもう1つの無料サービスです。

  • はい!はい!あなたが聞いたことは完全に正しいですが、ここに他の技術を使用しているいくつかの例があります

    • Rails:Github、Twitter(以前)、Shopify、Airbnb、Slideshare、Herokuなど。
    • PHP:Facebook、Wikipedia、Flickr、Yahoo、Tumbler、Mailchimpなど。

結論は、フレームワークまたは言語があなたのためにすべてを行うわけではないということです。より優れたアーキテクチャ、設計、および戦略は、スケーラブルなWebサイトを提供します。Instagramが最大の例です。この小さなチームがそのような膨大なデータを管理しています。ここに、そのアーキテクチャーに関するブログの 1 つをお読みください。


Djangoの開発は非常に高速です。Djangoは、締め切りのある完璧主義者のためのWebフレームワークです。

3

問題はDjangoのスケーリングに関するものではないと思います。

スケーリングのニーズに役立つアーキテクチャを検討することを強くお勧めします。間違った場合、Djangoのパフォーマンスに意味はありません。パフォーマンス!=スケール。驚異的なパフォーマンスを備えながら、拡張性のないシステムを構築できます。逆も同様です。

アプリケーションデータベースはバインドされていますか?そうであれば、スケールの問題もそこにあります。Djangoのデータベースをどのように操作する予定ですか?データベースがリクエストをDjangoが受け入れるほど速く処理できない場合はどうなりますか?データが1台の物理マシンを超えるとどうなりますか。これらの状況にどのように対処するかを計画する必要があります。

さらに、トラフィックが1つのアプリサーバーを超えるとどうなりますか?この場合のセッションの処理方法は注意が必要です。たいていの場合、シェアードナッシングアーキテクチャが必要になることが多いでしょう。これもアプリケーションによって異なります。

短い言語ではスケールを決定するものではありません。言語はパフォーマンスに責任があります(ここでも、アプリケーションによって、言語によって動作が異なります)。スケーリングを実現するのは、設計とアーキテクチャです。

お役に立てば幸いです。ご不明な点がございましたら、お気軽にお問い合わせください。


2

サイト/アプリケーションが成長し始めたら、DB、ファイル、画像、CSSなどを含むあらゆる側面を最適化し、他のいくつかのリソースと負荷のバランスをとる必要があります。または、あなたはそれが成長するためにいくつかのより多くのスペースを作ります。CDN、クラウドなどの最新テクノロジーの実装には、巨大なサイトが必要です。アプリケーションを開発して調整するだけでは、満足度のパーセントは得られません。他のコンポーネントも重要な役割を果たします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.