Django ölçekleniyor mu? [kapalı]


1135

Django ile bir web uygulaması yapıyorum. Django'yu seçmem nedenleri:

  • Serbest / açık kaynak araçlarla çalışmak istedim.
  • Python'u seviyorum ve uzun vadeli bir dil olduğunu hissediyorum , oysa Ruby ile ilgili emin değildim ve PHP öğrenmek için büyük bir güçlük gibi görünüyordu.
  • Bir fikir için bir prototip hazırlıyorum ve gelecek hakkında fazla düşünmüyordum. Geliştirme hızı ana faktördü ve Python'u zaten biliyordum.
  • İleride yapmayı seçersem Google App Engine'e taşımanın daha kolay olacağını biliyordum.
  • Django'nun "güzel" olduğunu duydum.

Şimdi çalışmamı yayınlamayı düşünmeye yaklaştığım için ölçek konusunda endişelenmeye başlıyorum. Django'nun ölçeklendirme yetenekleri hakkında bulduğum tek bilgi Django ekibi tarafından sağlandı (onları göz ardı edecek bir şey söylemiyorum, ama bu açıkça objektif bilgi değil ...).

Sorularım:

  • Bugün Django üzerine kurulmuş "en büyük" site nedir? (Boyutu çoğunlukla kullanıcı trafiğine göre ölçüyorum)
  • Django , her biri siteyi birkaç saat ziyaret eden günlük 100.000 kullanıcıyla ilgilenebilir mi?
  • Stack Overflow gibi bir site Django'da yayınlanabilir mi?

2
Henüz yapmadıysanız, The Django Book'ta ölçeklendirme bölümünü okumanızı tavsiye ederim: djangobook.com/en/1.0/chapter20 Veya daha yeni bir sürüm: djangobook.com/en/2.0/chapter12
monkut

15
Yürütme hızı veya geliştirme çabasından bahsedip bahsetmediğinizi açıklığa kavuşturmak için "hız ana faktördü" düzeltmek isteyebilir. Kulağa mantıklı gelen geliştirme çabası gibi geliyor.
S.Lott

6
Bunu RoR ile karşılaştırmak ilginç olurdu.
Kozyarchuk

6
@ ajkumar25, AFAIK disqus django blog.disqus.com/post/62187806135/… kullanır .
alxs

6
soru olmalıwhat's the cost of scaling in the Django?
Sławomir Lenart

Yanıtlar:


932
  1. "Bugün Django üzerine kurulmuş en büyük siteler hangileri?"

    Django yapılı sitelerde trafik hakkında bilgi toplayan tek bir yer yok, bu yüzden çeşitli konumlardan veri kullanarak bir bıçak almak zorunda kalacağım. İlk olarak, ana Django proje sayfasının ön sayfasında Django sitelerinin bir listesi ve sonra djangosites.org adresinde Django tarafından oluşturulmuş sitelerin bir listesi var . Listeleri incelemek ve gördüğümüz iyi trafik olduğunu bildiğim bazılarını seçmek:

  2. "Django her gün siteyi birkaç saat ziyaret eden 100.000 kullanıcıyla ilgilenebilir mi?"

    Evet, yukarıya bakın.

  3. "Stack Overflow gibi bir site Django'da çalışabilir mi?"

    Bağırsak hissim evet ama diğerlerinin cevapladığı ve Mike Malone'un sunumunda bahsettiği gibi, veritabanı tasarımı kritik. Güvenilir trafik istatistikleri bulabilirsek, www.cnprog.com adresinde de güçlü kanıtlar bulunabilir. Her neyse, bu sadece bir grup Django modelini bir araya getirerek olacak bir şey değil :)

Tabii ki, daha birçok site ve ilgi çekici blogcu var, ama bir yerde durmam gerekiyor!


Yüksek trafikli bir site oluşturmak için Django'yu kullanma hakkında blog yazısı michaelmoore.com en iyi 10.000 web sitesi olarak tanımlanmıştır . Quantcast istatistikleri ve compete.com istatistikleri .


(*) Söz konusu referans da dahil olmak üzere, düzenlemenin yazarı o projede dış kaynaklı geliştirici olarak kullanılır.


267

Şimdi yük testi yapıyoruz. Sunucu performansında önemli bir düşüş olmadan 240 eşzamanlı isteği (24x7 saniyede 120 isabetli sürekli bir oran) destekleyebileceğimizi düşünüyoruz. Saatte 432.000 vuruş olurdu. Tepki süreleri küçük değildir (işlemlerimiz büyüktür), ancak yük arttıkça temel performansımızın düşmesi söz konusu değildir.

Apache ön uç Django ve MySQL kullanıyoruz. İşletim sistemi Red Hat Enterprise Linux (RHEL). 64 bit. Django için daemon modunda mod_wsgi kullanıyoruz. Varsayılanları kabul etmek dışında hiçbir önbellek veya veritabanı optimizasyonu yapmadık.

(Sanırım) 32Gb RAM ile 64 bit Dell'de tek bir VM'deyiz.

Performans 20 veya 200 eşzamanlı kullanıcı için neredeyse aynı olduğundan, "ince ayar" yapmak için çok fazla zaman harcamamız gerekmez. Bunun yerine, temel performansımızı sıradan SSL performans iyileştirmeleri, sıradan veritabanı tasarımı ve uygulaması (endeksleme vb.), Sıradan güvenlik duvarı performans iyileştirmeleri vb.

Ölçtüğümüz şey, 16 eşzamanlı istek iş parçacığını çalıştıran 15 işlemin çılgınca iş yükü altında mücadele eden yük testi dizüstü bilgisayarlarımızdır.


3
Ayrıca merak edilen: DB'niz aynı makinede mi yoksa ayrı bir sunucuda mı çalışıyor?
Jarret Hardie

16
Apache, Django ve MySQL ile bir VM. mod_wsgi. RHEL.
S.Lott

4
Performans metriklerinde herhangi bir güncelleme var mı?
SexyBeast

1
İyi bir noktaya değiniyorsunuz - web sitenizin trafiğini bir kuyruk olarak düşünüyorsanız, saatte kaç yanıt sunabilirsiniz? Yanıt süresini kısa tutarsanız, daha fazla hizmet verebilir ve bu nedenle 'daha fazla ölçeklenebilirlik' elde edebilirsiniz - Zod gezegeninden Django, Twisted, Rails veya teknoloji kullanmanız gerçekten önemli değildir.
Ralph Bolton

2
Yıllardır Django ile çalıştım ve çoğunlukla salt okunur olan bir oyuncak uygulamasından başka hiçbir şeyde bu tür bir performans görmedim. Başvurunuzun doğası nedir? Şablonlar, ara katman yazılımları veya oturumlar veya veritabanı bağlantısı olan herhangi bir şey, tüm bunları atlamak için büyük miktarda önbellekleme olmadan saniyede 120 isabet desteklemeyecektir.
Cerin


107

Bugün Django üzerine kurulmuş "en büyük" site nedir? (Boyutu çoğunlukla kullanıcı trafiğine göre ölçüyorum)

ABD'de Mahalo'ydu . Bana ayda yaklaşık 10 milyon benzersiz iş yaptıklarını söylediler. Şimdi, 2019'da Mahalo, Ruby on Rails tarafından desteklenmektedir.

Yurtdışında, Globo ağı (Brezilya'da bir haber, spor ve eğlence sitesi ağı); Alexa onları dünya çapında ilk 100'e koyuyor (şu anda yaklaşık 80'inci sırada).

Diğer önemli Django kullanıcıları arasında PBS, National Geographic, Discovery, NASA (aslında NASA içinde bir dizi farklı bölüm) ve Kongre Kütüphanesi bulunmaktadır.

Django her biri siteyi birkaç saat ziyaret eden 100 bin kullanıcıyla ilgilenebilir mi?

Evet, ancak yalnızca başvurunuzu doğru yazdıysanız ve yeterli donanıma sahipseniz. Django sihirli bir mermi değil.

StackOverflow gibi bir site Django'da çalışabilir mi?

Evet (ama yukarıya bakın).

Teknoloji açısından kolay: tek bir girişim için soclone'a bakın . Trafik bakımından, StackOverflow mandallarını ayda 1 milyonun altında benzersiz şekilde rekabet edin. SO daha fazla trafik ile en az düzine Django siteleri adlandırabilirsiniz.


2
Django kullanarak benzer bir bağlantılı olduğunu varsayarak, saniyede 5000 isabet için yaklaşık fiyat tahmin edebilir misiniz. Ortalama bir programcının siteyi oluşturduğunu ve tabii ki önbellek eklediğini varsayın. Varsayalım ki algoritmalar vb.
user2349115

5
@ user2349115 başvurunuz 5000 'saniyede' isabet aldığında, bunun neden sorulması gerektiğini sormak için yeterli arka plan bilgisine sahip olacaksınız.
Kye R

Ninjalarım (wrappalyzer tarayıcı uzantısı) mahalo'nun şimdi Mart 2019'da çalışan raylarda yakut olduğunu söylüyor.
Miles Davis

87

Web uygulamalarını ölçeklendirmek web çerçeveleri veya dillerle ilgili değildir, mimarinizle ilgilidir. Tarayıcı önbelleğinizi, veritabanı önbelleğinizi nasıl ele aldığınız, standart olmayan kalıcılık sağlayıcılarını ( CouchDB gibi ) nasıl kullandığınız, veritabanınız ve diğer birçok şeyin nasıl ayarlandığı ...


Web çerçevesi önemli! Bakın kasırganın diğer python web çerçevelerine kıyasla ne kadar hızlı olduğuna bakın: tornadoweb.org/documentation#performance
Joshua Partogi

Ben aşağı itmedim, ama django esası tartışırken onlar konu biraz kapalı gitti varsayalım ve her veritabanı kullanamazsınız, veritabanınızı ayarlayın ve couchdb maksimum verilen her çerçevede kullanın. Tabii ki, büyük parçaları yeniden yazmazsanız.
ZJR

8
@ZLR konu dışı gittiğime inanmıyorum. Django'nun ölçeklenip ölçeklenemeyeceğini sordu, evet dedim, çünkü dilden bağımsız olarak hemen hemen tüm modern web çerçeveleri doğru mimari yaklaşımı kullanırsanız ölçeklenebilir
razenha

Evet, tıkanmasızdır IO vs engelleme yapar Tornado Örneğin göre, madde. Bunu söylemesine rağmen, Tornado bir web çerçevesi değil, uygulamanızın engellemesiz IO'dan yararlanacak şekilde yazılması gerekecektir.
Rob Grant

Tornado ile engelleme IO kodunu yazmak çok kolaydır. Ve bu yüksek eşzamanlılık vermez. Çerçeve aslında önemli değil.
Shiplu Mokaddim

80

Şeytan'ın savunucusunu oynamak biraz:

Cal Henderson tarafından teslim edilen "Neden Django'dan nefret ediyorum" başlıklı DjangoCon 2008 Keynote'u kontrol etmelisiniz . Günün sonunda bunu çünkü tüm açık bir zihinle bu almak zorunda olduğunu Django o ölçek uygulamaları yazmak için mükemmel mümkün, ama sorunuzun iyi sunum ve ilgili olduğunu düşündüm.


3
Ayrıca, Flickr bir günde inşa edilmedi.
Deniz Doğan

34
Cal'ın üzerinde durduğu sorunların birçoğunun artık standart özellikler olduğu anlaşılıyor
Dolph

51

Bildiğim en büyük Django sitesidir Washington Post bu kesinlikle belirtmek istiyorum olabilir iyi ölçek.

İyi tasarım kararları muhtemelen her şeyden daha büyük bir performans etkisine sahiptir. Twitter genellikle performans sorunlarını başka bir dinamik yorumlanmış dil tabanlı web çerçevesi olan Ruby on Rails ile somutlaştıran bir site olarak belirtilir - ancak Twitter mühendisleri, çerçevenin erken yaptıkları bazı veritabanı tasarım seçimleri kadar sorun olmadığını belirtti. üzerinde.

Django, memcached ile çok güzel çalışır ve performans sorunlarınızın çoğunu çözeceğiniz önbelleği yönetmek için bazı sınıflar sağlar. Telde sunduğunuz şey, gerçekte arka ucunuzdan neredeyse daha önemlidir - yslow gibi bir araç kullanmak, yüksek performanslı bir web uygulaması için kritiktir. Arka ucunuza her zaman daha fazla donanım atabilirsiniz, ancak kullanıcılarınızın bant genişliğini değiştiremezsiniz.


1
Django'da sadece washingtonpost.com'un bir parçası değil mi? Django ön
sayfası

3
Belki de Washington Post'u Washington Times ile karıştırıyorsunuz. Times'ın Django'da olduğuna inanıyorum, ama çok daha küçük bir kağıt.
Eli

32

Geçen hafta EuroDjangoCon konferansındaydım ve bu, en büyük Django merkezli site olan Pownce'nin kurucuları da dahil olmak üzere birkaç görüşmenin konusu oldu ( burada bir konuşmadan slaytlar ). Ana mesaj, endişelenmeniz gereken Django değil, uygun önbellekleme, yük dengeleme, veritabanı optimizasyonu vb.

Django aslında bu şeylerin çoğu için kancalara sahiptir - özellikle önbellekleme çok kolaydır.


24

Eminim daha sağlam bir cevap arıyorsunuz, ancak aklıma gelen en belirgin objektif doğrulama, Google'ın Django'yu App Engine çerçevesiyle birlikte kullanmaya itmesidir . Düzenlenebilirliği düzenli olarak bilen ve bunlarla ilgilenen varsa, bu Google'dır. Okuduğum kadarıyla, en sınırlayıcı faktör veritabanı arka ucu gibi görünüyor, bu yüzden Google kendi ...


Django / Python'u tanıtmak, Google'ın P ++ 'ı C ++' dan sonra 'Diğer' dil seçimi olarak tanıtma politikasıyla daha ilgili olabilir mi?
Mart'ta GuruM

GAE kullanmak zorunda kaldığımda Tornado gibi bir şeye oldukça yakındı ...
Luis Masuelli

18

Yüksek Performanslı Django Kitabında belirtildiği gibi ve bu Cal Henderson üzerinden gidin

Aşağıda belirtildiği gibi diğer ayrıntılara bakın:

İnsanların “Django ölçeksiz” dediğini duymak nadir değildir . Nasıl baktığınıza bağlı olarak, ifade tamamen doğru veya patentli olarak yanlıştır. Django kendi başına ölçeklenmiyor.

Aynı şey Ruby on Rails, Flask, PHP veya veritabanı güdümlü bir dinamik web sitesi tarafından kullanılan başka herhangi bir dil için de söylenebilir.

Bununla birlikte iyi haber, Django'nun, atabildiğiniz kadar fazla trafiğe ölçeklenmesini sağlayacak bir önbellek ve yük dengeleme araçları paketi ile güzel bir şekilde etkileşime girmesidir.

Çevrimiçi okuduğunuzun aksine, bunu genellikle ORM veya şablon katmanı gibi “çok yavaş” olarak etiketlenmiş çekirdek bileşenleri değiştirmeden yapabilir.

Disqus ayda 8 milyardan fazla sayfa görüntülemeye hizmet eder. Bunlar çok büyük rakamlar.

Bu takımlar Django'nun kesinlikle ölçek yaptığını kanıtladılar. Lincoln Loop'taki deneyimimiz destekliyor.

Reddit ana sayfasında gününü terletmeden geçirebilecek büyük Django siteleri oluşturduk.

Django'nun ölçeklendirme başarı öyküleri bu noktada listelenmek için neredeyse çok fazla.

Disqus, Instagram ve Pinterest'i destekliyor. Biraz daha kanıt ister misin? Instagram, Django'da 30 milyondan fazla kullanıcıyı yalnızca 3 mühendisle (2'si arka uç gelişimi olmayan) koruyabildi


17

Bugün ihtiyaçlarımız için birçok web uygulaması ve site kullanıyoruz. Çoğu son derece kullanışlıdır. Size python veya django tarafından kullanılan bazılarını göstereceğim.

Washington Post

Washington Post'un web sitesi günlük gazetelerine eşlik edecek çok popüler bir çevrimiçi haber kaynağıdır. Onun çok sayıda görüş ve trafik Django web çerçevesi tarafından kolayca ele alınabilir. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

Ulusal Havacılık ve Uzay İdaresi'nin resmi web sitesi, devam eden uzay araştırmaları hakkında haberler, resimler ve videolar bulabileceğiniz yerdir. Bu Django web sitesi, çok sayıda görüntüleme ve trafiği kolayca ele alabilir. 2 million visitors monthly

Gardiyan

Guardian, Guardian Media Group'a ait bir İngiliz haber ve medya sitesidir. The Guardian ve The Observer gazetelerinin neredeyse tüm içeriğini içermektedir. Bu büyük veri Django tarafından ele alınmaktadır. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

Youtube

Hepimiz YouTube'u kedi videolarının yükleneceği yer olarak biliyoruz ve başarısız oluyor. Var olan en popüler web sitelerinden biri olarak, bize sonsuz saatlerce video eğlencesi sunuyor. Python programlama dili onu ve sevdiğimiz özellikleri güçlendirir.

DropBox

DropBox, günlük yaşamın bir parçası haline gelen çevrimiçi belge depolama devrimini başlattı. Artık neredeyse her şeyi bulutta saklıyoruz. Dropbox, Python'un gücünü kullanarak hemen hemen her şeyi depolamamızı, senkronize etmemizi ve paylaşmamızı sağlar.

Anket maymun

Survey Monkey, en büyük çevrimiçi anket şirketidir. Yeniden yazılan Python web sitelerinde her gün bir milyondan fazla yanıt alabilirler.

Quora

Quora, soru sorabileceğiniz ve bireylerden oluşan bir topluluktan cevaplar alabileceğiniz bir numaralı çevrimiçi yerdir. Python web sitelerinde ilgili sonuçlar bu topluluk üyeleri tarafından yanıtlanır, düzenlenir ve düzenlenir.

bitly

Bitly URL kısaltma hizmetleri ve analitik kodunun büyük bir kısmı Python ile oluşturulmuştur. Onların hizmeti günde yüz milyonlarca olayı halledebilir.

Reddit

Reddit, internetin ön sayfası olarak bilinir. Binlerce farklı kategoriye dayanan bilgi veya eğlence bulabileceğiniz bir yerdir. Yayınlar ve bağlantılar kullanıcı tarafından oluşturulur ve oylamalarla en üst düzeye çıkarılır. Reddit'in yeteneklerinin çoğu işlevselliği için Python'a güveniyor.

Hipmunk

Hipmunk, en iyi fırsatları bulmak için en iyi seyahat sitelerini karşılaştıran bir çevrimiçi tüketici seyahat sitesidir. Bu Python web sitesinin araçları, varış noktanız için en ucuz otelleri ve uçuşları bulmanıza olanak tanır.

Daha fazla bilgi için burayı tıklayın: 25 en popüler-python-ve-django-web sitesi , Bazıları-bilinen-siteler-Django üzerinde çalışıyor



12

Evet yapabilir. Python ile Django veya Ruby on Rails olabilir. Hala ölçeklenecek.

Birkaç farklı teknik vardır. İlk olarak, önbellek ölçekleme değildir. Donanım dengeleyicilerine ek olarak nginx ile dengelenmiş birkaç uygulama sunucunuz olabilir. Veritabanı tarafında ölçeklendirmek için RDBMS yoluna giderseniz MySQL / PostgreSQL'de okuma slave ile oldukça ileri gidebilirsiniz.

Django'daki yoğun trafik web sitelerinin bazı iyi örnekleri şunlar olabilir:

  • Pownce hala oradayken.
  • Discus (genel paylaşılan yorum yöneticisi)
  • Gazete ile ilgili tüm web siteleri: Washington Post ve diğerleri.

Kendini güvende hissedebilirsin.


2
Sadece sayin ... ölü sosyal ağlar kötü bir ölçeklenebilirlik örneği yapıyor :)
ZJR

3
Pownce ölü bir ölçeklenebilirlik sorunu ile ilgili olduğunu sanmıyorum.
Kedare

9

Django'da inşa edilmiş nispeten yüksek profilli şeylerin bir listesi:

  1. Guardian'ın " Milletvekillerinin masraflarını araştır " uygulaması

  2. Politifact.com (işte (olumlu) deneyimden bahseden bir Blog yazısı . Site bir Pulitzer kazandı.

  3. NY Times Temsilcisi uygulaması

  4. EveryBlock

  5. WaPo'daki programcılardan biri olan Peter Harkins, blogunda Django ile inşa ettikleri her şeyi listeliyor

  6. Biraz eski, ama LA Times'dan bir kişi neden Django ile gittiklerine dair temel bir genel bakış verdi .

  7. Soğanın AV Kulübü yakın zamanda (sanırım Drupal'dan) Django'ya taşındı.

Bu sitelerin bir dizi muhtemelen günde 100k + hit iyi alır hayal. Django kesinlikle 100 bin hit / gün ve daha fazlasını yapabilir. Ama YMMV, ne inşa ettiğine bağlı olarak siteni oraya getirirken.

Django düzeyinde önbellek seçenekleri vardır (örneğin, sorgu kümelerini önbelleğe alma ve memcached'daki görünümler harikalar yaratabilir) ve ötesi ( Kalamar gibi yukarı yönlü önbellekler ). Veritabanı Sunucusu spesifikasyonları da, ne kadar iyi ayarladığınız gibi bir faktör (ve genellikle savurganlık yeri) olacaktır. Örneğin, Django'nun dizinleri doğru şekilde ayarladığını varsaymayın. Varsayılan PostgreSQL veya MySQL yapılandırmasının doğru olduğunu varsaymayın .

Ayrıca, yavaş nokta ise, önde bir yazılım veya donanım yük dengeleyicisi ile Django çalıştıran birden çok uygulama sunucusuna sahip olma seçeneğiniz vardır.

Son olarak, Django ile aynı sunucuda statik içerik mi sunuyorsunuz? Apache veya nginx veya lighttpd gibi bir şey mi kullanıyorsunuz ? Statik içerik için bir CDN kullanabiliyor musunuz? Bunlar üzerinde düşünülmesi gereken şeyler, ama hepsi çok spekülatif. 100 bin isabet / gün tek değişken değil: ne kadar harcamak istiyorsunuz? Tüm bu bileşenleri yönetmek için ne kadar uzmanlığa sahipsiniz? Hepsini bir araya getirmek için ne kadar zamanın var?


9

YouTube'un geliştirici savunucusu , Pycon 2012'de Python'un ölçeklendirilmesi hakkında bir konuşma yaptı .

YouTube'un bir milyardan fazla kullanıcısı vardır ve YouTube Python üzerine kurulmuştur.


3
Ancak youtube django ile oluşturulmaz. Python hızlı olabilir, ancak django için böyle olmayabilir.
Joshua Partogi

4
Evet, ama önemli olan nokta, Django büyüdükçe hız faktoringi için iyi bir temel üzerine oturmuş ve Google'ın Unladen Swallow gibi projeler üzerinde çalışmasıyla daha da iyi olacak.
orokusaki

7

Django'yu bir yılı aşkın bir süredir kullanıyorum ve modülerliği, ölçeklenebilirliği ve geliştirme hızını birleştirmeyi nasıl etkilediğinden çok etkilendim. Herhangi bir teknolojide olduğu gibi, bir öğrenme eğrisi ile birlikte gelir. Ancak, bu öğrenme eğrisi Django topluluğunun mükemmel dokümantasyonuyla çok daha az dikleştirilmiştir. Django, attığım her şeyi gerçekten iyi idare edebildi. Geleceğe iyi ölçeklenebilecek gibi görünüyor.

BidRodeo Penny Auctions orta boy Django destekli bir web sitesidir. Çok dinamik bir web sitesidir ve günde çok sayıda sayfa görüntülemesi gerçekleştirir.


6

Günde 100 bin kullanıcı bekliyorsanız (bir seferde saatlerce aktiftir (maksimum 20 bin + eşzamanlı kullanıcı anlamına gelir), çok sayıda sunucuya ihtiyacınız olacaktır) unutmayın. SO'nun ~ 15.000 kayıtlı kullanıcısı var ve bunların çoğu muhtemelen günlük olarak aktif değil. Trafiğin büyük kısmı kayıt dışı kullanıcılardan gelse de, bunların çok azının birkaç dakikadan fazla sitede kaldığını tahmin ediyorum (yani, google arama sonuçlarını takip ediyorlar ve ayrılıyorlar).

Bu birim için, en az 30 sunucu bekliyoruz ... bu hala sunucu başına 1.000 ağırlığında eşzamanlı kullanıcıdır.


2
Podcast'ten SO'nun sadece 3 sunucu kullandığı görülüyor. Ancak SO, Python değil C # kullanılarak üretilmiştir, bu yüzden yırtılır.
S.Lott

1
Açıkçası soru şu olacak: Ne kadar güçlü sunucular bunlar?
mamcx

6

Bugün Django üzerine kurulmuş "en büyük" site nedir? (Boyutu çoğunlukla kullanıcı trafiğine göre ölçüyorum ) Pinterest
disqus.com
Daha fazla bilgi için: https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

Django, her biri siteyi birkaç saat ziyaret eden günlük 100.000 kullanıcıyla ilgilenebilir mi?
Evet, ancak uygun mimari, veritabanı tasarımı, önbellek kullanımı, yük dengeleri ve birden çok sunucu veya düğüm kullanın

Stack Overflow gibi bir site Django'da yayınlanabilir mi?
Evet, 2. soruda belirtilen cevabı takip etmeniz gerekiyor


5

Başka bir örnek rasp.yandex.ru, Rus ulaşım tarifesi servisi. Katılımı gereksinimlerinizi karşılar.


5

Statik içeriğe sahip bir siteniz varsa, bir Vernik sunucusunu öne getirmek performansınızı önemli ölçüde artıracaktır. Tek bir kutu bile 100 Mbit / s trafiği kolayca tükürebilir.

Dinamik içerikle, Vernik gibi bir şey kullanmanın çok daha zor hale geldiğini unutmayın.


1
Buradaki sorun, vernik her şeyin performansını önemli ölçüde artıracaktır. Ve daha hızlı çerçeveler hala daha hızlı olacaktır.
ZJR

5

Django ile yaşadığım deneyim az ama Django Kitabı'nda bazı büyük Django uygulamalarını çalıştıran insanlarla görüştükleri bir bölümleri olduğunu hatırlıyorum. İşte bir bağlantı. Sanırım bazı görüşler sağlayabilir.

Curse.com'un bir ay içinde yaklaşık 60-90 milyon sayfa görüntülemeye sahip en büyük Django uygulamalarından biri olduğunu söylüyor.


1
curse.com şimdi biten URL'ler .aspx (onları zanaat eğer Bilmiyorum) ...
ZJR

5

İrlanda'daki ulusal yayın kuruluşu için Django kullanarak yüksek trafikli siteler geliştiriyorum. Bizim için iyi çalışıyor. Yüksek performanslı bir site geliştirmek sadece bir çerçeve seçmekle kalmaz. Bir çerçeve, sistemin en zayıf halkası kadar güçlü bir parçası olacaktır. Sorun yavaş veritabanı sorguları veya kötü yapılandırılmış bir sunucu veya ağ ise, en son 'X' çerçevesini kullanmak performans sorunlarınızı çözmez.


4

Burada pek çok harika yanıt olmasına rağmen, hiç kimsenin üzerinde durmadığını belirtmek istiyorum.

Uygulamaya bağlıdır

Eğer uygulama hafif yazıyorsa, DB'de yazdığınızdan çok daha fazla veri okuyorsunuz. Sonra ölçekleme django oldukça önemsiz olmalı, heck, kutunun dışında düz oldukça iyi çıktı / görünüm önbellekleme ile geliyor. Bunu kullanın ve bir önbellek sağlayıcısı olarak redis deyin, önüne bir yük dengeleyici koyun, n-örneklerini döndürün ve ÇOK çok miktarda trafikle başa çıkabilmelisiniz.

Şimdi, saniyede binlerce karmaşık yazım yapmak zorunda kalırsanız? Farklı hikaye. Django kötü bir seçim olacak mı? Her zaman değil, çözümünüzü gerçekten nasıl tasarladığınıza ve ayrıca gereksinimlerinizin ne olduğuna bağlıdır.

Sadece iki sentim :-)




3

Sorun django'nun ölçeklenip ölçeklenemeyeceğini bilmemek.

Doğru yol, iyi ölçeklendirmek için django / symfony / rails projenize koyacağınız ağ tasarım modellerinin ve araçlarının hangileri olduğunu anlamak ve bilmek.

Bazı fikirler şunlar olabilir:

  • Çoklama.
  • Ters proxy. Örn: Nginx, Vernik
  • Memcache Oturumu. Örn: Redis
  • Projenizde kümeleme ve yük dengeleme ve hata toleransı için db: Örn: Docker
  • Varlıkları depolamak için üçüncü taraf kullanın. Örn: Amazon S3

Umarım biraz yardımcı olur. Bu benim dağa giden minik kayaçım.


3

Açık kaynak kullanmak istiyorsanız, sizin için birçok seçenek vardır. Ama birçok kütüphanesi ve süper harika bir topluluğu olduğu için python aralarında en iyisidir. Bunlar fikrinizi değiştirebilecek birkaç nedendir:

  • Python çok iyi ama yavaşlatan yorumlanmış bir dildir. Ancak bu sorunu kısmen çözen birçok hızlandırıcı ve önbellekleme hizmeti var.

  • Hızlı gelişimi düşünüyorsanız, Ruby on Rails en iyisidir. Bu (ROR) çerçevenin ana sloganı geliştiricilere rahat bir deneyim sunmaktır. Ruby ve Python karşılaştırırsanız, her ikisi de neredeyse aynı sözdizimine sahiptir.

  • Google App Engine çok iyi bir hizmettir, ancak sizi kapsamına bağlar, yeni şeyler deneme şansınız olmaz. Bunun yerine , en basit damlacık için sadece 5 $ / Ay ücret alacak Dijital Okyanus bulutunu kullanabilirsiniz . Heroku , ürününüzü dağıtabileceğiniz başka bir ücretsiz hizmettir.

  • Evet! Evet! Duyduklarınız tamamen doğru ama burada diğer teknolojileri kullanan bazı örnekler var

    • Raylar: Github, Twitter (önceden), Shopify, Airbnb, Slideshare, Heroku vb.
    • PHP: Facebook, Wikipedia, Flickr, Yahoo, Tumbler, Mailchimp vb.

Sonuç bir çerçeve ya da dil sizin için her şeyi yapmayacaktır. Daha iyi bir mimari, tasarım ve strateji size ölçeklenebilir bir web sitesi sağlayacaktır. Instagram en büyük örnek, bu küçük ekip böyle büyük verileri yönetiyor. İşte mimarisiyle ilgili bir blog okumalı.


Django gelişimi çok hızlı olabilir. Django, son başvuru tarihleri ​​olan mükemmeliyetçilerin web çerçevesidir.
les

3

Sorunun gerçekten Django ölçeklemesi ile ilgili olduğunu sanmıyorum.

Gerçekten sizin ölçeklendirme ihtiyaçlarınızda size yardımcı olacak mimarinize bakmanızı öneririm.Bu yanlış anlarsanız, Django'nun ne kadar iyi performans gösterdiği konusunda bir anlamı yoktur. Performans! = Ölçek. İnanılmaz performansa sahip, ancak ölçeklenmeyen ve tersi olmayan bir sisteme sahip olabilirsiniz.

Uygulama veritabanınız bağlı mı? Eğer öyleyse, ölçek sorunlarınız da orada yatıyordu. Django'nun veritabanıyla nasıl etkileşime geçmeyi planlıyorsunuz? Veritabanınız, Django'nun kabul ettiği kadar hızlı bir şekilde istekleri işleyemezse ne olur? Verileriniz bir fiziksel makineden daha büyük olduğunda ne olur? Bu koşullarla nasıl başa çıkmayı planladığınızı hesaba katmanız gerekir.

Ayrıca, trafiğiniz bir uygulama sunucusunu aştığında ne olur? bu durumda oturumları nasıl ele alacağınız zor olabilir, çoğu zaman paylaşılan bir şey mimarisine ihtiyaç duymayacağınızdan daha sık olabilir. Yine bu sizin uygulamanıza bağlıdır.

Kısa dillerde ölçeğini belirleyen bir dil performansından sorumlu olduğu değil (tekrar uygulamalara bağlı olarak, farklı diller farklı performans). Ölçeklendirmeyi gerçeğe dönüştüren tasarım ve mimarinizdir.

Umarım yardımcı olur, sorularınız varsa daha fazla yardımcı olmaktan memnuniyet duyarız.


2

Görevleri eşit olarak yaymak, kısaca DB'ler, Dosyalar, Görüntüler, CSS vb. VEYA büyümesi için biraz daha yer açıyorsunuz. CDN, Cloud gibi en son teknolojilerin uygulanması büyük sitelerle zorunludur. Sadece bir uygulamayı geliştirmek ve değiştirmek, yüzde yüz memnuniyetinizi vermez, diğer bileşenler de önemli bir rol oynar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.