python - شرح - django website




هل مقياس دجانجو؟ (20)

ما هو الموقع "الأكبر" الذي بني على Django اليوم؟ (أقيس الحجم في الغالب من خلال حركة المستخدم)

في الولايات المتحدة ، Mahalo . قيل لي انهم يتعاملون مع ما يقرب من 10 مليون قطعة شهريه شهريا.

في الخارج ، شبكة Globo (شبكة من الأخبار والرياضة والمواقع الترفيهية في البرازيل) ؛ تحتل اليكسا مكانتها في قائمة أفضل 100 شركة عالميًا (حوالي 80 حاليًا).

ومن بين المستخدمين البارزين الآخرين في Django PBS ، و National Geographic ، و Discovery ، و NASA (في الواقع عدد من الأقسام المختلفة داخل ناسا) ، ومكتبة الكونغرس.

هل يستطيع دجانجو التعامل مع 100 ألف مستخدم يوميا ، كل زيارة للموقع لمدة ساعتين؟

نعم - ولكن فقط إذا كنت قد كتبت طلبك بشكل صحيح ، وإذا كان لديك ما يكفي من الأجهزة. دجانغو ليس رصاصة سحرية

هل يمكن لموقع مثل StackOverflow العمل على Django؟

نعم (لكن انظر أعلاه).

تقنية ، بسهولة: انظر soclone لمحاولة واحدة. حركة المرور ، وتناوب أوتاد StackOverflow في أقل من 1 مليون قطعة شهريا. يمكنني تسمية ما لا يقل عن عشرات المواقع Django مع حركة مرور أكثر من SO.

أنا أقوم بإنشاء تطبيق ويب مع Django. الأسباب التي اخترتها Django هي:

  • كنت أرغب في العمل مع أدوات مجانية / مفتوحة المصدر.
  • أنا أحب Python وأشعر أنها لغة "طويلة الأمد" ، بينما بالنسبة لـ Ruby لم أكن متأكدًا ، و PHP بدت وكأنها متاعب كبيرة لتتعلمها.
  • أقوم ببناء نموذج أولي لفكرة ولم أفكر كثيرا في المستقبل. كانت سرعة التطوير هي العامل الرئيسي ، وكنت أعرف بالفعل بايثون.
  • كنت أعرف أن الترحيل إلى Google App Engine سيكون أسهل في حالة اختيار القيام بذلك في المستقبل.
  • سمعت أن جانغو كان "لطيفًا".

الآن بعد أن اقتربت من التفكير في نشر عملي ، بدأت أشعر بالقلق حيال الحجم. المعلومات الوحيدة التي وجدتها حول إمكانات توسيع دجانغو مقدمة من فريق دجانجو (أنا لا أقول أي شيء لإغفالهم ، لكن من الواضح أن هذه المعلومات ليست موضوعية ...).

أسئلتي:

  • ما هو الموقع "الأكبر" الذي بني على Django اليوم؟ (أقيس الحجم في الغالب من خلال حركة المستخدم)
  • هل يستطيع دجانجو التعامل مع 100.000 مستخدم يوميًا ، كل زيارة للموقع لمدة ساعتين؟
  • هل يمكن لموقع مثل Stack Overflow العمل على Django؟

  1. "ما هي أكبر المواقع التي بنيت على Django اليوم؟"

    لا يوجد أي مكان واحد يجمع معلومات حول حركة المرور على مواقع Django المبنية ، لذلك يجب علي أخذ طعنة عليها باستخدام بيانات من مواقع مختلفة. أولاً ، لدينا قائمة بمواقع Django على الصفحة الرئيسية لصفحة مشروع Django الرئيسية ثم قائمة بمواقع Django المبنية على djangosites.org . من خلال تصفح القوائم واختيار بعض المعلومات التي أعرف أنها تتمتع بحركة لائقة ، نلاحظ ما يلي:

  2. "هل يستطيع دجانجو التعامل مع 100.000 مستخدم يوميًا ، كل زيارة للموقع لمدة ساعتين؟"

    نعم ، انظر أعلاه.

  3. "هل يمكن تشغيل موقع مثل على Django؟"

    شعوري الداخلي هو نعم ولكن ، كما أجاب الآخرون وذكر مايك مالون في عرضه ، تصميم قاعدة البيانات أمر بالغ الأهمية. يمكن العثور على دليل قوي أيضًا على www.cnprog.com إذا كان بإمكاننا العثور على أي إحصاءات موثوقة لحركة المرور. على أي حال ، انها ليست مجرد شيء من شأنه أن يحدث من خلال رمي مجموعة من نماذج Django :)

هناك بالطبع الكثير من المواقع والمدونين الذين يهمهم الأمر ، لكن يجب أن أتوقف في مكان ما!

نشر مقال حول استخدام Django لإنشاء موقع ويب عالي الحركة michaelmoore.com على أنه موقع ويب أعلى 10،000 . احصائيات Quantcast و state.com احصائيات .

(*) مؤلف التعديل ، بما في ذلك مثل هذا المرجع ، اعتاد على العمل كمطور خارجي في هذا المشروع.


أعتقد أننا قد نضيف أيضًا تطبيق Apple لعام 2011 ، Instagram ، إلى القائمة التي تستخدم django بشكل مكثف.


أكبر موقع في دجانغو أعرفه هو " واشنطن بوست" ، والذي سيشير بالتأكيد إلى أنه يمكن أن يتوسع بشكل جيد.

من المحتمل أن يكون لقرارات التصميم الجيدة تأثير أداء أكبر من أي شيء آخر. غالبًا ما يتم الاستشهاد بالتويتر كموقع يجسد مشكلات الأداء مع إطار ويب ديناميكي آخر يستند إلى لغة متغيرة ، وهو Ruby on Rails - ومع ذلك صرح مهندسو Twitter أن إطار العمل ليس مشكلة بقدر بعض خيارات تصميم قواعد البيانات التي قاموا بها في وقت مبكر. على.

يعمل Django بشكل رائع مع memcached ويوفر بعض الفئات لإدارة ذاكرة التخزين المؤقت ، حيث يمكنك حل معظم مشكلات الأداء الخاصة بك. ما تقدمه على السلك هو أكثر أهمية من الخلفية الخاصة بك في الواقع - باستخدام أداة مثل yslow أمر بالغ الأهمية لتطبيق ويب عالي الأداء. يمكنك دومًا التخلص من المزيد من الأجهزة في الواجهة الخلفية ، ولكن لا يمكنك تغيير النطاق الترددي للمستخدمين.


أنا متأكد من أنك تبحث عن إجابة أكثر صلابة ، ولكن التحقق الموضوعي الأكثر وضوحًا الذي يمكنني التفكير فيه هو أن Google تدفع Django للاستخدام مع إطار App Engine . إذا كان أي شخص يعرف ويتعامل مع قابلية التوسع بشكل منتظم ، فهو Google. من خلال ما قرأته ، يبدو أن العامل الأكثر تقييدًا هو قاعدة البيانات الخلفية ، وهذا هو السبب وراء استخدام Google ...


إذا كان لديك موقع به محتوى ثابت ، فإن وضع خادم Varnish أمامك سيزيد من أدائك بشكل كبير. حتى أن صندوقًا واحدًا يمكنه بث 100 ميغابت / ثانية من حركة المرور بسهولة.

لاحظ أنه باستخدام المحتوى الديناميكي ، يصبح استخدام شيء مثل Varnish أكثر تعقيدًا.



إن نشر المهام بالتساوي ، باختصار ، تحسين كل جانب بما في ذلك DBs ، الملفات ، الصور ، CSS إلخ وموازنة الحمل مع العديد من الموارد الأخرى أمر ضروري بمجرد أن يبدأ موقعك / تطبيقك في النمو. أو يمكنك توفير مساحة أكبر للنمو. يجب تنفيذ أحدث التقنيات مثل CDN و Cloud مع مواقع ضخمة. فقط تطوير وتغيير تطبيق ما لن يعطي إرضاء النسبة المئوية ، كما تلعب المكونات الأخرى دوراً هاماً.


تجربتي مع Django هي الحد الأدنى ولكني أتذكر في كتاب The Django لديهم فصل حيث يقومون بمقابلة أشخاص يديرون بعض تطبيقات Django الأكبر. هنا رابط. أعتقد أنه يمكن أن يوفر بعض الأفكار.

وتقول إن curse.com واحدة من أكبر تطبيقات Django مع حوالي 60-90 مليون مشاهدة صفحة في شهر واحد.


تحقق من هذا مجمع الأخبار الصغير يسمى EveryBlock .

انها مكتوبة بالكامل في Django. في الواقع هم الأشخاص الذين طوروا إطار عمل جانغو نفسه.


فيما يلي قائمة ببعض الأشياء رفيعة المستوى التي تم إنشاؤها في Django:

  1. الجارديان " التحقيق في نفقات النائب الخاص بك " التطبيق

  2. Politifact.com (ها هي مشاركة مدونة تتحدث عن التجربة (الإيجابية). فاز الموقع بجائزة بوليتزر.

  3. نيويورك تايمز " Represent التطبيق

  4. EveryBlock

  5. يسرد بيتر هاركينز ، أحد المبرمجين في WaPo ، كل الأشياء التي بنوها مع Django على مدونته

  6. إنها قديمة بعض الشيء ، لكن أحد من صحيفة لوس أنجلوس تايمز قدم لمحة عامة عن سبب ذهابهم إلى جانغو.

  7. تم نقل نادي AV في Onion مؤخرًا من (أعتقد دروبال) إلى Django.

أتصور أن عددًا من هذه المواقع ربما يحقق ما يزيد عن 100 ألف زيارة يوميًا. يمكن لـ Django بالتأكيد تحقيق 100 ألف زيارة في اليوم وأكثر. ولكن YMMV في الحصول على موقعك الخاص بناءً على ما تقوم ببنائه.

هناك خيارات التخزين المؤقت على مستوى Django (على سبيل المثال التخزين المؤقت للاستعلامات ووجهات النظر في memcached يمكن أن تعمل عجائب) وما بعدها (مخابئ upstream مثل Squid ). كما ستكون مواصفات خادم قاعدة البيانات عاملاً (وعادةً ما يكون المكان المناسب للتفوق) ، وكذلك مدى ضبطك له. لا تفترض ، على سبيل المثال ، أن إعداد Django يتم إعداده بشكل صحيح. لا تفترض أن التكوين PostgreSQL أو MySQL الافتراضي هو الصحيح.

علاوة على ذلك ، لديك دائمًا خيار وجود خوادم متعددة للتطبيقات تقوم بتشغيل Django إذا كانت هذه هي نقطة البطء ، مع موازن تحميل برامج أو أجهزة في المقدمة.

وأخيرًا ، هل تقدم محتوى ثابتًا على الخادم نفسه مثل Django؟ هل تستخدم Apache أو شيء من هذا القبيل nginx أو lighttpd ؟ هل يمكنك استخدام CDN لمحتوى ثابت؟ هذه أشياء يجب التفكير بها ، لكنها كلها مضاربة للغاية. لا تمثل 100k hits / day المتغير الوحيد: ما المبلغ الذي تريد إنفاقه؟ ما مدى خبرتك في إدارة كل هذه المكونات؟ كم من الوقت لديك لسحب كل ذلك معا؟


كما هو مذكور في كتاب "الأداء العالي دجانغو" أدخل وصف الرابط هنا واذهب من خلال هذا كال هندرسون

انظر مزيد من التفاصيل على النحو المذكور أدناه:

ليس من غير المألوف سماع الناس يقولون "لا يغير جانغو". اعتمادًا على طريقة نظرتك إليه ، يكون البيان إما صحيحًا تمامًا أو غير صحيح بشكل واضح. جانغو ، من تلقاء نفسها ، لا يتوسع.

ويمكن قول الشيء نفسه عن Ruby on Rails أو Flask أو PHP أو أي لغة أخرى يستخدمها موقع ديناميكي قائم على قواعد البيانات.

لكن الخبر السار هو أن جانغو يتفاعل بشكل رائع مع مجموعة من أدوات التخزين المؤقت وموازنة الحمل التي ستسمح لها بالانتقال إلى أكبر عدد ممكن من حركة المرور.

على عكس ما قد قرأته على الإنترنت ، يمكن أن يفعل ذلك بدون استبدال المكونات الأساسية التي غالباً ما تسمى "بطيئة جدًا" مثل قاعدة بيانات ORM أو طبقة القالب.

يقدم Disqus أكثر من 8 مليارات مشاهدة صفحة شهريًا. هذه بعض الأرقام الضخمة.

لقد أثبتت هذه الفرق أن جانغو هو بالتأكيد مقياس. تجربتنا هنا في Lincoln Loop تدعمها.

لقد بنينا مواقع دجانجو كبيرة قادرة على قضاء يوم على الصفحة الرئيسية لموقع Reddit دون كسر العرق.

قصص نجاح دجانغو في التحجيم تكاد تكون معدومة بحيث لا يمكن إدراجها في هذه المرحلة.

انها تدعم Disqus و Instagram و Pinterest. تريد المزيد من الإثبات؟ تمكن Instagram من الحفاظ على أكثر من 30 مليون مستخدم في Django مع 3 مهندسين فقط (اثنان منهم لم يكن لديهم تطوير خلفي


لا أعتقد أن القضية تتعلق بتوسيع جانغو.

أقترح حقا أن ننظر في الهندسة المعمارية الخاصة بك وهذا ما سوف يساعدك على تلبية الاحتياجات الخاصة بك. إذا كنت تحصل على هذا الخطأ ليس هناك نقطة على مدى أداء Django. الأداء! ​​= الحجم. يمكن أن يكون لديك نظام يحتوي على أداء مذهل لكنه لا يتغير ، والعكس صحيح.

هل قاعدة بيانات التطبيق الخاصة بك ملزمة؟ إذا كان الأمر كذلك ، فستجد أن قياساتك تقع أيضًا. كيف تخطط للتفاعل مع قاعدة البيانات من Django؟ ماذا يحدث عندما لا تستطيع قاعدة البيانات معالجة الطلبات بالسرعة التي يقبل بها Django؟ ماذا يحدث عندما تتجاوز بياناتك جهازًا ماديًا واحدًا. تحتاج إلى حساب كيف تخطط للتعامل مع تلك الظروف.

علاوة على ذلك ، ماذا يحدث عندما يتجاوز عدد زياراتك خادم تطبيقات واحد؟ قد تكون طريقة تعاملك مع الجلسات في هذه الحالة صعبًا ، وفي أغلب الأحيان ، قد تحتاج إلى بنية مشتركة لا شيء. مرة أخرى هذا يعتمد على طلبك.

باختصار ، اللغات ليست هي التي تحدد المقياس ، فاللغة هي المسؤولة عن الأداء (تعتمد مرة أخرى على التطبيقات الخاصة بك تعمل لغات مختلفة بشكل مختلف). هو التصميم الخاص بك والهندسة المعمارية التي تجعل التدريج حقيقة واقعة.

آمل أن يساعد ، سيكون من دواعي سرورنا تقديم المزيد من المساعدة إذا كان لديك أسئلة.


لا يقتصر دور تطبيقات توسيع نطاق الويب على أطر أو لغات الويب ، بل يتعلّق بالهندسة المعمارية. يتعلق الأمر بكيفية التعامل مع ذاكرة التخزين المؤقت للمتصفح ، وذاكرة التخزين المؤقت لقاعدة البيانات ، وكيفية استخدام مزودي الاستمرارية غير المعيارية (مثل CouchDB ) ، ومدى ضبط قاعدة البيانات الخاصة بك والكثير من الأشياء الأخرى ...

لا تهتم ...


لست متأكدًا من عدد الزيارات اليومية ، لكن إليك بعض الأمثلة على مواقع Django الكبيرة:

Screencast على كيفية نشر django مع التوسع في الاعتبار http://ontwik.com/python/django-deployment-workshop-by-jacob-kaplan-moss/

هنا هو وصلة لقائمة مواقع دجانغو المرور عالية على Quora .


لعب محامي الشيطان قليلا:

يجب أن تتحقق من Keygote DjangoCon 2008 ، الذي قدمه Cal Henderson ، تحت عنوان "لماذا أكره Django" ، حيث يذهب إلى حد كبير على كل شيء يفتقده Django والذي قد ترغب في القيام به في موقع ويب عالي الحركة. في نهاية اليوم يجب أن تأخذ كل هذا بعقل مفتوح لأنه من الممكن تماما أن تكتب تطبيقات Django على نطاق واسع ، ولكن أعتقد أنه كان عرضًا جيدًا وملائمًا لسؤالك.


مثال آخر هو rasp.yandex.ru ، خدمة مواعيد النقل الروسية. حضورها يفي بمتطلباتك.


نحن نقوم باختبار الحمل الآن. نعتقد أنه يمكننا دعم 240 طلبًا متزامنًا (بمعدل ثابت يبلغ 120 مرة في الثانية 24 × 7) دون أي تدهور كبير في أداء الخادم. من شأنه أن يكون 432000 زيارة في الساعة. أوقات الاستجابة ليست صغيرة (معاملاتنا كبيرة) ولكن لا يوجد تدهور من أداء خطنا الأساسي مع زيادة التحميل.

نحن نستخدم أباتشي جانغو و MySQL. نظام التشغيل هو ريد هات إنتربرايز لينوكس (RHEL). 64-بت. نستخدم mod_wsgi في وضع الخفي ل Django. لم نقم بتحسين ذاكرة التخزين المؤقت أو تحسين قاعدة البيانات بخلاف قبول الإعدادات الافتراضية.

نحن جميعا في VM واحد على ديل 64 بت مع (على ما أظن) 32 غيغابايت من ذاكرة الوصول العشوائي.

نظرًا لأن الأداء هو نفسه تقريبًا بالنسبة إلى 20 أو 200 مستخدم متزامن ، فلا نحتاج إلى إنفاق مبالغ طائلة من الوقت "التغيير والتبديل". بدلاً من ذلك ، نحتاج ببساطة إلى الحفاظ على أداءنا الأساسي من خلال تحسينات أداء SSL العادية ، وتصميم وتنفيذ قاعدة البيانات العادية (الفهرسة ، وما إلى ذلك) ، وتحسينات أداء جدار الحماية العادية ، إلخ.

ما نقوم به هو قياس أجهزة الكمبيوتر المحمولة اختبار الحمل لدينا تكافح تحت عبء العمل مجنون من 15 عملية تشغيل 16 من المواضيع المتزامنة من الطلبات.



ما هو الموقع "الأكبر" الذي بني على Django اليوم؟ (أنا قياس حجم في الغالب من قبل حركة المستخدم) Pinterest
disqus.com
المزيد هنا https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

هل يستطيع دجانجو التعامل مع 100.000 مستخدم يوميًا ، كل زيارة للموقع لمدة ساعتين؟
نعم ، ولكن استخدم الهندسة المناسبة ، وتصميم قاعدة البيانات ، واستخدام ذاكرة التخزين المؤقت ، واستخدام أرصدة الحمل والخوادم / الإيماءات المتعددة

هل يمكن لموقع مثل العمل على Django؟
نعم ، فقط بحاجة إلى اتباع الإجابة المذكورة في السؤال الثاني





scalability