क्या Django पैमाने? [बन्द है]


1135

मैं Django के साथ एक वेब एप्लिकेशन बना रहा हूं। जिन कारणों से मैंने Django को चुना वे थे:

  • मैं फ्री / ओपन-सोर्स टूल्स के साथ काम करना चाहता था।
  • मुझे पाइथन पसंद है और लगता है कि यह एक दीर्घकालिक भाषा है, जबकि रूबी के बारे में मुझे यकीन नहीं था, और PHP सीखने के लिए एक बड़ी परेशानी की तरह लग रहा था।
  • मैं एक विचार के लिए एक प्रोटोटाइप का निर्माण कर रहा हूं और भविष्य के बारे में बहुत ज्यादा नहीं सोच रहा था। विकास की गति मुख्य कारक थी, और मैं पहले से ही पायथन को जानता था।
  • मुझे पता था कि भविष्य में ऐसा करने के लिए Google ऐप इंजन में माइग्रेशन आसान होगा।
  • मैंने सुना है कि Django "अच्छा" था।

अब जब मैं अपने काम को प्रकाशित करने के बारे में सोचने के करीब पहुंच रहा हूं, मुझे पैमाना की चिंता होने लगी है। Django टीम की स्केलिंग क्षमताओं के बारे में मुझे जो एकमात्र जानकारी मिली है, वह Django टीम द्वारा प्रदान की गई है (मैं उन्हें अस्वीकृत करने के लिए कुछ भी नहीं कह रहा हूं, लेकिन यह स्पष्ट रूप से उद्देश्य जानकारी नहीं है ...)।

मेरे सवाल:

  • जो "सबसे बड़ी" साइट है जो आज Django पर बनाई गई है? (मैं ज्यादातर उपयोगकर्ता यातायात द्वारा आकार मापता हूं)
  • क्या Django रोज़ाना 100,000 उपयोगकर्ताओं के साथ काम कर सकता है , प्रत्येक एक-दो घंटे के लिए साइट पर आ सकता है?
  • क्या स्टैक ओवरफ्लो जैसी कोई साइट Django पर चल सकती है?

2
यदि आप पहले से ही नहीं हैं, तो मैं द Django बुक में स्केलिंग पर अनुभाग पढ़ने की सलाह देता हूं: djangobook.com/en/1.0/chapter20 या नया संस्करण: djangobook.com/en/2.0/chapter12
monkut

15
निष्पादन की गति या विकास के प्रयासों के बारे में स्पष्ट करने के लिए "गति मुख्य कारक था" को ठीक करना चाहते हैं। यह विकास के प्रयास की तरह लगता है, जो समझ में आता है।
एस.लॉट

6
रो के साथ इसकी तुलना करना दिलचस्प होगा।
कोजार्चुक

6
@ ajkumar25, AFAIK disqus django blog.disqus.com/post/62187806135/… का उपयोग करता है ।
alxs

6
सवाल यह होना चाहिएwhat's the cost of scaling in the Django?
स्लावोमिर लेनर्ट

जवाबों:


932
  1. "आज Django पर निर्मित सबसे बड़ी साइटें क्या हैं?"

    कोई भी एक जगह नहीं है जो Django निर्मित साइटों पर यातायात के बारे में जानकारी एकत्र करता है, इसलिए मुझे विभिन्न स्थानों से डेटा का उपयोग करके इसे लेना होगा। सबसे पहले, हम मुख्य Django परियोजना पृष्ठ के सामने पृष्ठ पर Django साइटों की एक सूची है और फिर djangosites.org पर Django निर्मित साइटों की एक सूची है । सूचियों के माध्यम से जा रहे हैं और मुझे पता है कि हम देखते हैं कुछ सभ्य उठा है:

  2. "क्या Django प्रतिदिन 100,000 उपयोगकर्ताओं के साथ सौदा कर सकता है, प्रत्येक साइट पर कुछ घंटों के लिए जा सकता है?"

    हाँ, ऊपर देखें।

  3. "क्या स्टैक ओवरफ्लो जैसी साइट Django पर चल सकती है?"

    मेरी आंत की भावना हां है, लेकिन जैसा कि अन्य ने उत्तर दिया और माइक मालोन ने अपनी प्रस्तुति में उल्लेख किया है, डेटाबेस डिजाइन महत्वपूर्ण है। यदि हम कोई विश्वसनीय ट्रैफ़िक आँकड़े पा सकते हैं तो www.cnprog.com पर भी पुख्ता प्रमाण मिल सकते हैं। वैसे भी, यह कुछ ऐसा नहीं है जो Django मॉडल के एक समूह को एक साथ फेंकने से होगा :)

बेशक, कई और अधिक साइटें और रुचि के ब्लॉगर हैं, लेकिन मुझे कहीं रुकना पड़ा है!


हाई-ट्रैफिक साइट michaelmoore.com बनाने के लिए Django का उपयोग करने के बारे में ब्लॉग पोस्ट एक शीर्ष 10,000 वेबसाइट के रूप में वर्णित है । Quantcast आँकड़े और प्रतिस्पर्धाआँकड़े


(*) इस तरह के संदर्भ सहित संपादन के लेखक, उस परियोजना में आउटसोर्स डेवलपर के रूप में काम करते थे।


267

अब हम लोड परीक्षण कर रहे हैं। हमें लगता है कि हम सर्वर के प्रदर्शन में कोई महत्वपूर्ण गिरावट के बिना 240 समवर्ती अनुरोधों (प्रति सेकंड 24x7 के 120 हिट की निरंतर दर) का समर्थन कर सकते हैं। यह प्रति घंटे 432,000 हिट होगा। प्रतिक्रिया समय छोटा नहीं है (हमारे लेन-देन बड़े हैं) लेकिन लोड बढ़ने पर हमारे बेसलाइन प्रदर्शन से कोई गिरावट नहीं है।

हम Apache फ्रंट-एंडिंग Django और MySQL का उपयोग कर रहे हैं। OS Red Hat Enterprise Linux (RHEL) है। 64-बिट। हम Django के लिए डेमन मोड में mod_wsgi का उपयोग करते हैं। हमने कोई कैश या डेटाबेस ऑप्टिमाइज़ेशन नहीं किया है जो डिफॉल्ट को स्वीकार करने के अलावा है।

हम सभी 64-बिट डेल पर एक वीएम में हैं (मुझे लगता है) 32 जीबी रैम।

चूंकि प्रदर्शन लगभग 20 या 200 समवर्ती उपयोगकर्ताओं के लिए समान है, इसलिए हमें "ट्विकिंग" के लिए भारी मात्रा में खर्च करने की आवश्यकता नहीं है। इसके बजाय हमें साधारण एसएसएल प्रदर्शन सुधार, साधारण डेटाबेस डिजाइन और कार्यान्वयन (अनुक्रमण, आदि), साधारण फ़ायरवॉल प्रदर्शन सुधार, आदि के माध्यम से अपने आधार प्रदर्शन को बनाए रखने की आवश्यकता है।

हम जो माप करते हैं, वह है हमारे लोड टेस्ट लैपटॉप जो 15 प्रक्रियाओं के पागल काम के बोझ से जूझ रहे हैं, जो अनुरोधों के 16 समवर्ती धागे को चलाते हैं।


3
इसके अलावा उत्सुक: क्या आपका डीबी एक ही मशीन पर चल रहा है, या एक अलग सर्वर?
जरेट हार्डी

16
Apache, Django और MySQL के साथ एक VM। mod_wsgi। RHEL।
एस.लॉट

4
प्रदर्शन मेट्रिक्स पर कोई अपडेट?
सेक्सीबिट

1
आप एक अच्छा बिंदु बनाते हैं - यदि आप अपनी वेबसाइट ट्रैफ़िक को एक कतार के रूप में सोचते हैं, तो आप प्रति घंटे कितनी प्रतिक्रियाएं दे सकते हैं? यदि आप प्रतिक्रिया समय कम रखते हैं, तो आप अधिक सेवा कर सकते हैं, और इसलिए 'अधिक स्केलेबिलिटी' है - यह वास्तव में कोई फर्क नहीं पड़ता कि आप ग्रह ज़ोड से Django, मुड़, रेल या तकनीक का उपयोग करते हैं।
राल्फ बोल्टन

2
मैंने सालों के लिए Django के साथ काम किया है, और मैंने इस तरह के प्रदर्शन को एक खिलौना ऐप के अलावा किसी अन्य चीज़ में कभी नहीं देखा है जो ज्यादातर पढ़ा-लिखा है। आपके आवेदन की प्रकृति क्या है? टेम्प्लेट या मिडलवेयर या सत्र या डेटाबेस कनेक्टिविटी के साथ कुछ भी कभी भी कैशिंग की भारी मात्रा के बिना प्रति सेकंड 120 हिट का समर्थन करने वाला नहीं है।
सेरिन

176

दैनिक यात्राओं की संख्या के बारे में निश्चित नहीं है, लेकिन यहां बड़ी Django साइटों के कुछ उदाहरण हैं:

यहाँ Quora पर उच्च यातायात Django साइटों की सूची के लिए एक लिंक है ।


107

जो "सबसे बड़ी" साइट है जो आज Django पर बनाई गई है? (मैं ज्यादातर उपयोगकर्ता यातायात द्वारा आकार मापता हूं)

अमेरिका में, यह महलो था । मुझे बताया गया है कि वे एक महीने में लगभग 10 मिलियन uniques संभालते हैं। अब, 2019 में, महालो रूबी ऑन रेल्स द्वारा संचालित है।

विदेश में, ग्लोबो नेटवर्क (ब्राजील में समाचार, खेल और मनोरंजन स्थलों का एक नेटवर्क); एलेक्सा ने उन्हें विश्व स्तर पर शीर्ष 100 में स्थान दिया (वर्तमान में 80 के आसपास)।

अन्य उल्लेखनीय Django उपयोगकर्ताओं में पीबीएस, नेशनल जियोग्राफिक, डिस्कवरी, नासा (वास्तव में नासा के भीतर विभिन्न डिवीजनों की एक संख्या), और लाइब्रेरी ऑफ कांग्रेस शामिल हैं।

क्या Django रोजाना 100k यूजर्स के साथ डील कर सकता है, प्रत्येक साइट पर कुछ घंटों के लिए जा सकते हैं?

हां - लेकिन केवल अगर आपने अपना एप्लिकेशन सही लिखा है, और यदि आपने पर्याप्त हार्डवेयर प्राप्त कर लिया है। Django एक जादू की गोली नहीं है।

क्या Django पर StackOverflow जैसी साइट चल सकती है?

हां (लेकिन ऊपर देखें)।

प्रौद्योगिकी-वार, आसानी से: एक प्रयास के लिए सोशलोन देखें । ट्रैफ़िक-वार, प्रति माह 1 मिलियन से कम की संख्या में पेग StackOverflow का मुकाबला करें। मैं SO की तुलना में अधिक ट्रैफ़िक वाले कम से कम दर्जन Django साइटों का नाम दे सकता हूं।


2
क्या आप Django का उपयोग करते हुए, लिंक्डइन की तरह 5000 सेकंड प्रति सेकंड की अनुमानित कीमत का अनुमान लगा सकते हैं। मान लें कि एक औसत प्रोग्रामर ने साइट का निर्माण किया है और टंकण जोड़ा कैशिंग। मान लें कि एल्गोरिदम आदि (चीजों को तेजी से बनाने के लिए) का उपयोग नहीं किया जाता है क्योंकि मैं उन्हें अभी तक नहीं करता हूं।
user2349115

5
@ user2349115 जब तक आपका आवेदन 5000 'प्रति सेकंड हिट' हो जाता है, तब आपको यह समझने के लिए पर्याप्त पृष्ठभूमि ज्ञान होगा कि यह गलत प्रश्न क्यों है।
Kye R

मेरे निन्जा (रैपरलीज़र ब्राउज़र एक्सटेंशन) का कहना है कि मार्च 2019 में संचालित रेल पर रूबी रूबी है।
माइल्स डेविस

87

वेब ऐप्स को स्केल करना वेब फ्रेमवर्क या भाषाओं के बारे में नहीं है, आपके आर्किटेक्चर के बारे में है। यह इस बारे में है कि आप अपने ब्राउज़र कैश, अपने डेटाबेस कैश को कैसे संभालते हैं, आप कैसे गैर-मानक दृढ़ता प्रदाताओं (जैसे कि काउचडीबी ) का उपयोग करते हैं, आपके डेटाबेस और कितने अन्य सामानों को ट्यून किया जाता है ...


वेब फ्रेमवर्क मायने रखता है! अन्य अजगर वेबफ्रैमवर्क की तुलना में कितनी तेजी से बवंडर देखें: tornadoweb.org/documentation#performance
जोशुआ पार्टोगी

मैं नीचे नहीं गया था, लेकिन मुझे लगता है कि आप इस विषय से थोड़ा हट गए थे, जहां वे django के गुणों पर चर्चा कर रहे थे और आप हर डेटाबेस का उपयोग नहीं कर सकते थे, अपने डेटाबेस को ट्यून कर सकते थे और हर दिए गए ढांचे में अपने अधिकतम पर couchdb का उपयोग कर सकते थे। जब तक आप निश्चित रूप से नहीं करते, तब तक इसके बड़े हिस्से को फिर से लिखें।
ZJR

8
@ZLR मुझे विश्वास नहीं है कि मैं विषय से दूर चला गया। उन्होंने पूछा कि क्या Django स्केल कर सकता है, मैंने कहा, क्योंकि लगभग सभी आधुनिक वेब फ्रेमवर्क, चाहे वह भाषा हो, स्केल कर सकते हैं यदि आप सही वास्तुशिल्प दृष्टिकोण का उपयोग करते हैं
razenha

हाँ, ब्लॉकिंग नॉनब्लॉकिंग आईओ मायने रखता है, जैसे कि टोरनेडो उदाहरण के अनुसार। हालांकि कहा जा रहा है कि टॉरनेडो एक वेब फ्रेमवर्क नहीं है, लेकिन आपके आवेदन को इस तरह से लिखना होगा जो आईओएल को नॉनब्लॉक करने का लाभ उठाता हो।
रॉब

टोरनेडो के साथ अवरुद्ध आईओ कोड लिखना बहुत आसान है। और वह hight कंसिस्टेंसी नहीं देता है। फ्रेमवर्क वास्तव में कोई फर्क नहीं पड़ता।
शिप्लू मोकादिम

80

शैतान के अधिवक्ता का थोड़ा खेलना:

आपको कैल हेंडरसन द्वारा वितरित DjangoCon 2008 कीनोट की जांच करनी चाहिए , जिसका शीर्षक "मुझे नफरत क्यों करता है Django" जहां वह बहुत अधिक हो जाता है सब कुछ Django गायब है जो आप एक उच्च यातायात वेबसाइट में करना चाह सकते हैं। दिन के अंत में आप क्योंकि यह सब एक खुले दिमाग के साथ इस ले जाना है है पूरी तरह से संभव Django कि पैमाने एप्लिकेशन लिखने के लिए है, लेकिन मैंने सोचा कि यह एक अच्छी प्रस्तुति और अपने प्रश्न के लिए प्रासंगिक था।


3
इसके अलावा, फ़्लिकर एक दिन में नहीं बनाया गया था।
डेनिज़ डोगन

34
ऐसा प्रतीत होता है कि कई मुद्दों पर Cal harped on standard features हैं: docs.djangoproject.com/en/dev/topics/db/multi-db
Dolph

51

मुझे पता है कि सबसे बड़ी django साइट वाशिंगटन पोस्ट है , जो निश्चित रूप से संकेत देगी कि यह अच्छी तरह से स्केल कर सकती है

अच्छे डिजाइन निर्णयों का शायद किसी भी चीज से बड़ा प्रदर्शन प्रभाव पड़ता है। ट्विटर को अक्सर एक ऐसी साइट के रूप में उद्धृत किया जाता है जो प्रदर्शन के मुद्दों को एक अन्य गतिशील व्याख्या की गई भाषा आधारित वेब फ्रेमवर्क के साथ ग्रहण करती है, रूबी ऑन रेल्स - फिर भी ट्विटर इंजीनियरों ने कहा है कि फ्रेमवर्क उतना मुद्दा नहीं है जितना कि डेटाबेस के कुछ डिज़ाइन विकल्प जो उन्होंने जल्दी बनाए थे पर।

Django मेमकाटेड के साथ बहुत अच्छी तरह से काम करता है और कैश के प्रबंधन के लिए कुछ कक्षाएं प्रदान करता है, जो कि आप अपने प्रदर्शन के अधिकांश मुद्दों को हल करेंगे। क्या आप तार पर वितरित करते हैं, वास्तविकता में आपके बैकएंड की तुलना में लगभग अधिक महत्वपूर्ण है - एक उच्च प्रदर्शन वेब एप्लिकेशन के लिए yslow जैसे टूल का उपयोग करना महत्वपूर्ण है। आप हमेशा अपने बैकएंड पर अधिक हार्डवेयर फेंक सकते हैं, लेकिन आप अपने उपयोगकर्ताओं को बैंडविड्थ नहीं बदल सकते।


1
वाशिंगटनपोस्ट डॉट कॉम का केवल हिस्सा ही नहीं है? Django के फ्रंटपेज से पता चलता है कि यह केवल प्रोजेक्ट्स हैं।
वॉशिंगटनपोस्ट.com/congress

3
आप शायद वाशिंगटन पोस्ट को वाशिंगटन पोस्ट के साथ भ्रमित कर रहे हैं। मेरा मानना ​​है कि टाइम्स सभी Django पर है, लेकिन यह बहुत छोटा कागज है।
एली

32

मैं दूसरे सप्ताह यूरोडॉन्गकॉन्ग कॉन्फ्रेंस में था, और यह कुछ बातचीत का विषय था - जिसमें सबसे बड़ी Django- आधारित साइट के संस्थापकों में से एक, Pownce ( यहां एक बात से स्लाइड्स ) शामिल है। मुख्य संदेश यह है कि यह Django के बारे में चिंता करने की ज़रूरत नहीं है, लेकिन उचित कैशिंग, लोड संतुलन, डेटाबेस अनुकूलन आदि जैसी चीजें हैं।

Django वास्तव में उन अधिकांश चीजों के लिए हुक है - कैशिंग, विशेष रूप से, बहुत आसान बना दिया गया है।


24

मुझे यकीन है कि आप अधिक ठोस उत्तर की तलाश कर रहे हैं, लेकिन सबसे स्पष्ट उद्देश्य सत्यापन मैं यह सोच सकता हूं कि Google अपने ऐप इंजन ढांचे के साथ प्रयोग के लिए Django को धक्का देता है। यदि किसी को नियमित आधार पर स्केलेबिलिटी के बारे में पता है और इससे संबंधित है, तो यह Google है। मैंने जो पढ़ा है, उसमें से सबसे सीमित कारक डेटाबेस बैक-एंड लगता है, यही कारण है कि Google अपने स्वयं का उपयोग करता है ...


Django / Python को बढ़ावा देना Google की C ++ के बाद 'अन्य' भाषा की अपनी पसंद के रूप में प्रचार करने की नीति से अधिक संबंधित हो सकता है?
गुरू

जब मुझे GAE का उपयोग करना था, तो यह
टॉरनेडो

18

जैसा कि उच्च प्रदर्शन Django बुक और गो इन कैल हेंडरसन के माध्यम से कहा गया है

नीचे दिए गए विवरण के रूप में देखें:

लोगों को यह कहना असामान्य नहीं है कि "Django पैमाने नहीं करता है" । आप इसे कैसे देखते हैं, इस पर निर्भर करते हुए, कथन पूरी तरह से सच है या पेटेंट रूप से गलत है। Django, अपने दम पर, पैमाने पर नहीं है।

रूबी ऑन रेल्स, फ्लास्क, पीएचपी या डेटाबेस द्वारा संचालित डायनामिक वेबसाइट द्वारा इस्तेमाल की जाने वाली किसी अन्य भाषा के बारे में भी यही कहा जा सकता है।

हालाँकि, अच्छी खबर यह है कि Django खूबसूरती से कैचिंग और लोड बैलेंसिंग टूल के साथ बातचीत करता है, जिससे आप इसे जितना ट्रैफ़िक दे सकते हैं, उतने ट्रैफ़िक में स्केल कर पाएंगे।

जो आपने ऑनलाइन पढ़ा हो सकता है, उसके विपरीत, यह ऐसा कर सकते हैं बिना कोर घटकों को प्रतिस्थापित किए बिना अक्सर "बहुत धीमे" जैसे डेटाबेस ORM या टेम्पलेट परत के रूप में लेबल किया जाता है।

Disqus प्रति माह 8 बिलियन से अधिक पृष्ठ दृश्य प्रस्तुत करता है। वे कुछ विशाल संख्याएँ हैं।

इन टीमों ने साबित किया है कि Django सबसे निश्चित रूप से पैमाने पर है। लिंकन लूप में यहाँ हमारा अनुभव इसे पुष्ट करता है।

हमने बड़ी Django साइटें बनाई हैं, जो बिना पसीने को छोड़े रेडिट होमपेज पर दिन बिताने में सक्षम हैं।

Django की स्केलिंग सफलता की कहानियां इस बिंदु पर सूचीबद्ध करने के लिए लगभग बहुत अधिक हैं।

यह Disqus, Instagram और Pinterest का समर्थन करता है। कुछ और सबूत चाहिए? इंस्टाग्राम केवल 3 इंजीनियरों (जिनमें से कोई बैक-एंड डेवलपमेंट नहीं था) के साथ Django पर 30 मिलियन से अधिक उपयोगकर्ताओं को बनाए रखने में सक्षम था


17

आज हम अपनी जरूरतों के लिए कई वेब ऐप और साइटों का उपयोग करते हैं। उनमें से अधिकांश अत्यधिक उपयोगी हैं। मैं आपको उनमें से कुछ का उपयोग अजगर या डीजेंगो द्वारा दिखाऊंगा।

वाशिंगटन पोस्ट

वाशिंगटन पोस्ट की वेबसाइट उनके दैनिक पत्र के साथ आने के लिए बेहद लोकप्रिय ऑनलाइन समाचार स्रोत है। अपने विशाल विचारों और यातायात को आसानी से Django वेब फ्रेमवर्क द्वारा नियंत्रित किया जा सकता है। Washington Post - 52.2 million unique visitors (March, 2015)

नासा

नेशनल एरोनॉटिक्स एंड स्पेस एडमिनिस्ट्रेशन की आधिकारिक वेबसाइट उनके चल रहे अंतरिक्ष अन्वेषण के बारे में समाचार, चित्र और वीडियो खोजने की जगह है। यह Django वेबसाइट आसानी से बड़ी मात्रा में विचारों और ट्रैफ़िक को संभाल सकती है। 2 million visitors monthly

अभिभावक

द गार्जियन एक ब्रिटिश समाचार और मीडिया वेबसाइट है, जिसके मालिक गार्जियन मीडिया ग्रुप हैं। इसमें अखबारों द गार्डियन और द ऑब्जर्वर की लगभग सभी सामग्री शामिल है। यह विशाल डेटा Django द्वारा नियंत्रित किया जाता है। The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

यूट्यूब

हम सभी YouTube को बिल्ली के वीडियो अपलोड करने की जगह और विफलताओं के रूप में जानते हैं। अस्तित्व में सबसे लोकप्रिय वेबसाइटों में से एक के रूप में, यह हमें वीडियो मनोरंजन के अंतहीन घंटे प्रदान करता है। पायथन प्रोग्रामिंग भाषा इसे और हमारे द्वारा पसंद की जाने वाली सुविधाओं को अधिकार देती है।

ड्रॉपबॉक्स

ड्रॉपबॉक्स ने दैनिक जीवन का हिस्सा बन चुकी क्रांति का ऑनलाइन दस्तावेज़ शुरू किया। अब हम लगभग सब कुछ क्लाउड में संग्रहीत करते हैं। ड्रॉपबॉक्स हमें पायथन की शक्ति का उपयोग करके लगभग कुछ भी स्टोर करने, सिंक करने और साझा करने की अनुमति देता है।

सर्वेक्षण बंदर

सर्वे मंकी सबसे बड़ी ऑनलाइन सर्वे कंपनी है। वे अपनी पुनर्लेखन पायथन वेबसाइट पर हर दिन एक मिलियन से अधिक प्रतिक्रियाओं को संभाल सकते हैं।

Quora

Quora एक प्रश्न पूछने और व्यक्तियों के समुदाय से उत्तर प्राप्त करने के लिए ऑनलाइन नंबर एक स्थान है। उनकी पायथन वेबसाइट पर प्रासंगिक परिणाम इन समुदाय के सदस्यों द्वारा दिए गए, संपादित और व्यवस्थित किए गए हैं।

Bitly

बिटली यूआरएल सेवाओं और विश्लेषणों के लिए कोड का अधिकांश हिस्सा पायथन के साथ बनाया गया है। उनकी सेवा प्रति दिन लाखों घटनाओं को संभाल सकती है।

रेडिट

Reddit को इंटरनेट के फ्रंट पेज के रूप में जाना जाता है। यह हजारों विभिन्न श्रेणियों के आधार पर सूचना या मनोरंजन खोजने के लिए ऑनलाइन जगह है। पोस्ट और लिंक उत्पन्न उपयोगकर्ता हैं और वोट के माध्यम से शीर्ष पर पदोन्नत किए जाते हैं। Reddit की कई क्षमताएं उनकी कार्यक्षमता के लिए पायथन पर निर्भर करती हैं।

Hipmunk

हिपमंक एक ऑनलाइन उपभोक्ता यात्रा साइट है जो आपको श्रेष्ठ सौदों के लिए शीर्ष यात्रा साइटों की तुलना करती है। इस पायथन वेबसाइट के उपकरण आपको अपने गंतव्य के लिए सबसे सस्ते होटल और उड़ानें खोजने की अनुमति देते हैं।

अधिक जानकारी के लिए यहां क्लिक करें: 25-सबसे-लोकप्रिय-अजगर-और-डेजैंगो-वेबसाइट , व्हाट- आर-ए -कुछ प्रसिद्ध-साइट-रनिंग-ऑन-Django



12

हाँ यह कर सकते हैं। यह पायथन के साथ Django या पटरियों पर रूबी हो सकता है। यह अभी भी पैमाना होगा।

कुछ अलग तकनीकें हैं। पहला, कैशिंग स्केलिंग नहीं है। आपके पास हार्डवेयर बैलेंसर (ओं) के अलावा फ्रंट के रूप में nginx के साथ कई एप्लिकेशन सर्वर संतुलित हो सकते हैं। यदि आप RDBMS रास्ते पर जाते हैं तो डेटाबेस साइड पर स्केल करने के लिए आप MySQL / PostgreSQL में पढ़ने वाले दास के साथ बहुत दूर जा सकते हैं।

Django में भारी यातायात वेबसाइटों के कुछ अच्छे उदाहरण हो सकते हैं:

  • जब वे अभी भी वहाँ थे पोज
  • डिस्कस (सामान्य साझा टिप्पणी प्रबंधक)
  • सभी समाचार पत्र संबंधित वेबसाइट: वाशिंगटन पोस्ट और अन्य।

आप सुरक्षित महसूस कर सकते हैं।


2
बस ... मृत सामाजिक नेटवर्क एक खराब मापनीय उदाहरण बनाते हैं :)
ZJR

3
मुझे नहीं लगता कि Pownce मृत एक स्केलेबिलिटी समस्या से संबंधित है।
केदार

9

यहाँ Django में निर्मित कुछ अपेक्षाकृत उच्च प्रोफ़ाइल चीजों की एक सूची है:

  1. अभिभावक की " अपने सांसद के खर्चों की जांच करें " ऐप

  2. Politifact.com (यहां एक ब्लॉग पोस्ट जो सकारात्मक (सकारात्मक) अनुभव के बारे में बात कर रहा है। साइट ने पुलित्जर जीता।

  3. NY टाइम्स ' प्रतिनिधि अनुप्रयोग

  4. EveryBlock

  5. पीटर हरकिंस, वेपो में प्रोग्रामर में से एक, अपने ब्लॉग पर Django के साथ बनाए गए सभी सामानों को सूचीबद्ध करता है

  6. यह थोड़ा पुराना है, लेकिन एलए टाइम्स के किसी व्यक्ति ने एक बुनियादी अवलोकन दिया कि वे जिंजो के साथ क्यों गए थे।

  7. ओनियन के एवी क्लब को हाल ही में (मुझे लगता है कि ड्रुपल) से Django में ले जाया गया था।

मुझे लगता है कि इन साइटों की एक संख्या शायद प्रति दिन 100k + हिट से अधिक अच्छी तरह से हो जाता है। Django निश्चित रूप से 100k हिट / दिन और अधिक कर सकता है। लेकिन आप जो निर्माण कर रहे हैं, उसके आधार पर आपकी विशेष साइट प्राप्त करने में YMMV।

वहाँ Django स्तर पर कैशिंग विकल्प (उदाहरण के कैशिंग क्वेरीसमूहों के लिए और में विचार हैं memcached कर सकते हैं काम चमत्कार) और (जैसे नदी के ऊपर कैश परे विद्रूप )। डेटाबेस सर्वर विनिर्देशन भी एक कारक होगा (और आमतौर पर जगह बनाने के लिए), जैसा कि आपने इसे अच्छी तरह से ट्यून किया है। उदाहरण के लिए, यह मत मानिए कि Django का इंडेक्स ठीक से सेट हो रहा है। यह मत समझो कि डिफ़ॉल्ट PostgreSQL या MySQL कॉन्फ़िगरेशन सही है।

इसके अलावा, आपके पास हमेशा कई एप्लिकेशन सर्वर होने का विकल्प होता है जो कि Django में चल रहे होते हैं, यदि वह धीमा बिंदु है, जिसमें एक सॉफ्टवेयर या हार्डवेयर लोड बैलेंसर है।

अंत में, क्या आप Django के समान सर्वर पर स्थिर सामग्री परोस रहे हैं? क्या आप अपाचे या नगीनेक्स या लाइटटैप जैसी किसी चीज का उपयोग कर रहे हैं ? क्या आप स्थैतिक सामग्री के लिए सीडीएन का उपयोग कर सकते हैं ? ये सोचने वाली बातें हैं, लेकिन यह सब बहुत अटकलबाजी है। 100k हिट / दिन एकमात्र चर नहीं है: आप कितना खर्च करना चाहते हैं? आपके पास इन सभी घटकों का कितना विशेषज्ञता है? आपको इसे एक साथ खींचने के लिए कितना समय देना होगा?


9

YouTube के लिए डेवलपर वकील ने PyCon 2012 में Python को स्केल करने के बारे में बात की , जो Django के स्केलिंग के लिए भी प्रासंगिक है।

YouTube के एक बिलियन से अधिक उपयोगकर्ता हैं , और YouTube Python पर बनाया गया है।


3
लेकिन youtube django के साथ नहीं बनाया गया है। अजगर तेज हो सकता है, लेकिन डीजेंगो के लिए ऐसा नहीं है।
जोशुआ अंश जोगी

4
हाँ, लेकिन मुद्दा यह था कि जैसा कि Django बढ़ता है, यह स्पीड री-फैक्टरिंग के लिए एक अच्छी नींव पर बैठा है और Google के साथ Unladen Swallow जैसी परियोजनाओं पर काम कर रहा है, यह सिर्फ बेहतर होगा।
orokusaki

7

मैं अब एक वर्ष से अधिक समय से Django का उपयोग कर रहा हूं, और इस बात से बहुत प्रभावित हूं कि यह कैसे विकास, मापनीयता और विकास की गति को संयोजित करता है। किसी भी तकनीक के साथ, यह एक सीखने की अवस्था के साथ आता है। हालांकि, इस सीखने की अवस्था को Django समुदाय के उत्कृष्ट प्रलेखन द्वारा बहुत कम खड़ी किया गया है। Django मैं सब कुछ है कि यह वास्तव में अच्छी तरह से फेंक दिया गया है को संभालने में सक्षम है। ऐसा लग रहा है कि यह भविष्य में अच्छा पैमाना बनाने में सक्षम होगा।

बिडरोडो पेनी नीलामी एक मामूली आकार की Django संचालित वेबसाइट है। यह एक बहुत ही गतिशील वेबसाइट है और यह दिन में अच्छी संख्या में पेज व्यू को संभालती है।


6

ध्यान दें कि यदि आप प्रति दिन 100K उपयोगकर्ताओं की उम्मीद कर रहे हैं, जो कि एक समय पर घंटों के लिए सक्रिय हैं (मतलब अधिकतम 20K + समवर्ती उपयोगकर्ता), तो आपको A LOT सर्वर की आवश्यकता होगी। SO में ~ 15,000 पंजीकृत उपयोगकर्ता हैं, और उनमें से अधिकांश संभवतः दैनिक सक्रिय नहीं हैं। जबकि ट्रैफ़िक का बड़ा हिस्सा अपंजीकृत उपयोगकर्ताओं से आता है, मैं अनुमान लगा रहा हूं कि उनमें से कुछ साइट पर एक-दो मिनट से ज्यादा रहते हैं (यानी वे Google खोज परिणामों का अनुसरण करते हैं, फिर छोड़ देते हैं)।

उस वॉल्यूम के लिए, कम से कम 30 सर्वरों की अपेक्षा करें ... जो अभी भी प्रति सर्वर 1,000 उपयोगकर्ताओं के बराबर भारी है।


2
यह पॉडकास्ट से प्रतीत होता है कि एसओ सिर्फ 3 सर्वरों का उपयोग करता है। लेकिन SO को C # का उपयोग करके बनाया गया है, न कि पायथन को, इसलिए यह रिप करता है।
एस.लॉट

1
जाहिर है सवाल यह होगा कि वे कितने शक्तिशाली सर्वर हैं?
mamcx

6

"सबसे बड़ी" साइट जो आज Django पर बनाई गई है? (मैं ज्यादातर उपयोगकर्ता यातायात द्वारा आकार को मापने) Pinterest
disqus.com
अधिक यहाँ: https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

क्या Django रोज़ाना 100,000 उपयोगकर्ताओं के साथ सौदा कर सकता है, प्रत्येक साइट पर कुछ घंटों के लिए जा सकते हैं?
हां, लेकिन उचित आर्किटेक्चर, डेटाबेस डिज़ाइन, कैश का उपयोग, लोड बैलेंस और कई सर्वर या नोड का उपयोग करें

क्या स्टैक ओवरफ्लो जैसी कोई साइट Django पर चल सकती है?
हां बस 2 प्रश्न में वर्णित उत्तर का पालन करने की आवश्यकता है


5

एक और उदाहरण है rasp.yandex.ru, रूसी परिवहन समय सारिणी सेवा। इसकी उपस्थिति आपकी आवश्यकताओं को पूरा करती है।


5

यदि आपके पास कुछ स्थिर सामग्री वाली साइट है, तो वार्निश सर्वर को सामने रखकर नाटकीय रूप से आपके प्रदर्शन में वृद्धि होगी। यहां तक ​​कि एक भी बॉक्स आसानी से 100 Mbit / s ट्रैफिक से बाहर थूक सकता है।

ध्यान दें कि गतिशील सामग्री के साथ, वार्निश की तरह कुछ का उपयोग करना बहुत अधिक मुश्किल हो जाता है।


1
यहां समस्या यह है कि वार्निश नाटकीय रूप से हर चीज के प्रदर्शन को बढ़ाएगा। और तेज रूपरेखा अभी भी तेज होगी।
ZJR

5

Django के साथ मेरा अनुभव कम से कम है, लेकिन मुझे याद है कि The Django बुक में उनके पास एक चैप्टर है जहां वे कुछ बड़े Django एप्लिकेशन चलाने वाले लोगों का साक्षात्कार लेते हैं। यहाँ एक लिंक है। मुझे लगता है कि यह कुछ अंतर्दृष्टि प्रदान कर सकता है।

यह कहता है कि curse.com एक महीने में लगभग 60-90 मिलियन पेज व्यू के साथ सबसे बड़े Django एप्लिकेशन में से एक है।


1
curse.com urls अब .aspx में समाप्त होता है ... (यदि वे उन्हें शिल्प करते हैं तो पता नहीं)
ZJR

5

मैं आयरलैंड में राष्ट्रीय प्रसारक के लिए Django का उपयोग करके उच्च ट्रैफ़िक साइट विकसित करता हूं। यह हमारे लिए अच्छा काम करता है। एक उच्च प्रदर्शन साइट विकसित करना केवल एक रूपरेखा चुनने के बारे में अधिक है। एक ढांचा केवल एक प्रणाली का एक हिस्सा होगा जो उतना ही मजबूत है जितना कि यह सबसे कमजोर कड़ी है। नवीनतम डेटाबेस 'X' का उपयोग करने से आपके प्रदर्शन के मुद्दों का समाधान नहीं होगा यदि समस्या धीमी डेटाबेस क्वेरी या बुरी तरह से कॉन्फ़िगर किया गया सर्वर या नेटवर्क है।


4

हालांकि, यहाँ बहुत सारे शानदार उत्तर दिए गए हैं, मुझे लगता है कि यह इंगित करने के लिए है कि किसी ने भी जोर नहीं दिया है।

यह एप्लिकेशन पर निर्भर करता है

यदि आप आवेदन लिखते हैं, तो प्रकाश में है, क्योंकि आप DB से बहुत अधिक डेटा पढ़ रहे हैं, जितना आप लिख रहे हैं। फिर django स्केलिंग काफी तुच्छ होना चाहिए, बिल्ली, यह कुछ काफी सभ्य आउटपुट के साथ आता है / बॉक्स से सीधे कैशिंग देखें। उस का उपयोग करें, और कहते हैं, कैश प्रदाता के रूप में फिर से लोड करें, उसके सामने एक लोड बैलेंसर डालें, एन-इंस्टेंस को स्पिन करें और आपको बहुत बड़ी मात्रा में ट्रैफ़िक से निपटने में सक्षम होना चाहिए।

अब, अगर आपको हज़ारों कॉम्प्लेक्स करने हैं तो एक सेकंड लिखता है? अलग कहानी। क्या Django एक बुरा विकल्प होने जा रहा है? खैर, जरूरी नहीं कि यह इस बात पर निर्भर करता है कि आप अपने समाधान को वास्तव में कैसे तैयार करते हैं, और यह भी कि आपकी आवश्यकताएं क्या हैं।

केवल मेरे दो सेंट्स :-)



3

इस सूक्ष्म समाचार एग्रीगेटर की जाँच करें जिसे EveryBlock कहा जाता है ।

यह पूरी तरह से Django में लिखा गया है। वास्तव में वे लोग हैं जिन्होंने स्वयं Django ढांचे का विकास किया।



3

समस्या यह जानने के लिए नहीं है कि django स्केल कर सकता है या नहीं।

सही तरीका यह समझना और जानना है कि नेटवर्क डिज़ाइन पैटर्न और टूल जो आपके django / symfony / रेल प्रोजेक्ट के तहत अच्छी तरह से स्केल करने के लिए हैं।

कुछ विचार हो सकते हैं:

  • बहुसंकेतन।
  • उलटा प्रॉक्सी। Ex: नंगेक्स, वार्निश
  • संस्मरण सत्र। Ex: रेडिस
  • लोड संतुलन और दोष सहिष्णुता के लिए आपकी परियोजना पर डीबी और डीबी: पूर्व: डॉकर
  • संपत्ति को स्टोर करने के लिए तीसरे पक्ष का उपयोग करें। Ex: अमेज़न S3

आशा है कि यह थोड़ा मदद करेगा। यह पहाड़ के लिए मेरी छोटी चट्टान है।


3

यदि आप ओपन सोर्स का उपयोग करना चाहते हैं तो आपके लिए कई विकल्प हैं। लेकिन अजगर उनमें से सबसे अच्छा है क्योंकि इसमें कई पुस्तकालय और एक सुपर भयानक समुदाय है। ये कुछ कारण हैं जो आपके दिमाग को बदल सकते हैं:

  • पायथन बहुत अच्छा है लेकिन यह एक व्याख्या की गई भाषा है जो इसे धीमा कर देती है। लेकिन कई त्वरक और कैशिंग सेवाएं हैं जो आंशिक रूप से इस समस्या को हल करती हैं।

  • अगर आप तेजी से विकास के बारे में सोच रहे हैं, तो रूबी ऑन रेल्स सबसे अच्छा है। इस (आरओआर) ढांचे का मुख्य उद्देश्य डेवलपर्स को एक आरामदायक अनुभव देना है। यदि आप रूबी और पायथन की तुलना करते हैं, तो दोनों का लगभग एक ही वाक्य विन्यास है।

  • Google App Engine बहुत अच्छी सेवा है, लेकिन यह आपको इसके दायरे में बाँध देगा, आपको नई चीजों को प्रयोग करने का मौका नहीं मिलेगा। इसके बजाय आप डिजिटल ओशन क्लाउड का उपयोग कर सकते हैं जो केवल सरलतम छोटी बूंद के लिए $ 5 / महीना शुल्क लेगा। हरोकू एक और मुफ्त सेवा है जहां आप अपने उत्पाद को तैनात कर सकते हैं।

  • हाँ! हाँ! आपने जो सुना है वह पूरी तरह सही है लेकिन यहां कुछ उदाहरण दिए गए हैं जो अन्य तकनीकों का उपयोग कर रहे हैं

    • रेल्स: गितूब, ट्विटर (पहले), शॉपिफाई, एयरबीएनबी, स्लाइडशेयर, हरोकू आदि।
    • PHP: फेसबुक, विकिपीडिया, फ़्लिकर, याहू, टम्बलर, मेलचिम्प आदि।

निष्कर्ष एक ढांचा है या भाषा आपके लिए सब कुछ नहीं करेगी। एक बेहतर वास्तुकला, डिजाइनिंग और रणनीति आपको एक स्केलेबल वेबसाइट देगी। इंस्टाग्राम इसका सबसे बड़ा उदाहरण है, यह छोटी सी टीम इतने बड़े डेटा का प्रबंधन कर रही है। यहाँ इसकी वास्तुकला के बारे में एक ब्लॉग है इसे अवश्य पढ़ें।


Django विकास बहुत तेजी से हो सकता है। Django समय सीमा के साथ पूर्णतावादियों के लिए वेब फ्रेमवर्क है।
लेस

3

मुझे नहीं लगता कि मुद्दा वास्तव में Django स्केलिंग के बारे में है।

मैं वास्तव में सुझाव देता हूं कि आप अपनी वास्तुकला पर ध्यान दें, जो आपकी स्केलिंग जरूरतों के साथ आपकी मदद करेगा। अगर आपको लगता है कि गलत है तो इस बात का कोई मतलब नहीं है कि Django कितना अच्छा प्रदर्शन करता है। प्रदर्शन! = स्केल। आपके पास एक ऐसी प्रणाली हो सकती है जिसमें अद्भुत प्रदर्शन हो लेकिन इसके पैमाने और इसके विपरीत नहीं है।

क्या आपका एप्लिकेशन डेटाबेस बाध्य है? यदि यह है तो आपके पैमाने के मुद्दों के रूप में अच्छी तरह से वहाँ रखना। आप Django के डेटाबेस के साथ बातचीत करने की योजना कैसे बना रहे हैं? क्या होता है जब आप डेटाबेस अनुरोधों को उतनी तेजी से संसाधित नहीं कर सकते हैं जितना कि Django उन्हें स्वीकार करता है? जब आपका डेटा एक भौतिक मशीन से आगे बढ़ता है तो क्या होता है। आपको उन परिस्थितियों से निपटने के बारे में योजना बनाने की आवश्यकता है।

इसके अलावा, क्या होता है जब आपका ट्रैफ़िक एक ऐप सर्वर से आगे निकल जाता है? आप इस मामले में सत्र कैसे संभालते हैं, यह मुश्किल हो सकता है, अधिक बार नहीं कि आपको शायद साझा वास्तुकला की आवश्यकता होगी। फिर से जो आपके आवेदन पर निर्भर करता है।

छोटी भाषाओं में वह नहीं है जो पैमाने निर्धारित करता है, एक भाषा प्रदर्शन के लिए जिम्मेदार है (फिर से आपके अनुप्रयोगों के आधार पर, अलग-अलग भाषाएं अलग-अलग प्रदर्शन करती हैं)। यह आपका डिज़ाइन और आर्किटेक्चर है जो एक वास्तविकता को बढ़ाता है।

मुझे आशा है कि यह मदद करता है, अगर आपको प्रश्न हैं तो आगे मदद करने में खुशी होगी।


2

समान रूप से कार्यों को फैलाना, DBs, Files, Images, CSS आदि सहित प्रत्येक और हर पहलू को अनुकूलित करने में और आपकी साइट / एप्लिकेशन के बढ़ने के बाद कई अन्य संसाधनों के साथ लोड को संतुलित करना आवश्यक है। या आप इसे बढ़ने के लिए कुछ और जगह बनाते हैं। सीडीएन, क्लाउड जैसी नवीनतम तकनीकों का कार्यान्वयन विशाल साइटों के साथ होना चाहिए। बस एक एप्लीकेशन को विकसित करने और ट्विक करने से आपका शत-प्रतिशत संतोष नहीं होगा, अन्य घटक भी महत्वपूर्ण भूमिका निभाते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.