Django scala? [chiuso]


1136

Sto costruendo un'applicazione web con Django. I motivi per cui ho scelto Django sono stati:

  • Volevo lavorare con strumenti gratuiti / open-source.
  • Mi piace Python e penso che sia un linguaggio a lungo termine , mentre per quanto riguarda Ruby non ne ero sicuro, e PHP sembrava una seccatura enorme da imparare.
  • Sto costruendo un prototipo per un'idea e non pensavo troppo al futuro. La velocità di sviluppo era il fattore principale e conoscevo già Python.
  • Sapevo che la migrazione a Google App Engine sarebbe stata più semplice se avessi scelto di farlo in futuro.
  • Ho sentito che Django era "carino".

Ora che mi sto avvicinando al pensiero di pubblicare il mio lavoro, inizio a preoccuparmi della scala. Le uniche informazioni che ho trovato sulle capacità di ridimensionamento di Django sono fornite dal team Django (non sto dicendo nulla per ignorarle, ma chiaramente non si tratta di informazioni oggettive ...).

Le mie domande:

  • Qual è il sito "più grande" costruito su Django oggi? (Misuro le dimensioni principalmente dal traffico dell'utente)
  • Django può gestire ogni giorno 100.000 utenti , ognuno dei quali visita il sito per un paio d'ore?
  • Un sito come Stack Overflow potrebbe funzionare su Django?

2
Se non l'hai già fatto, ti consiglio di leggere la sezione sul ridimensionamento in The Django Book: djangobook.com/en/1.0/chapter20 O la versione più recente: djangobook.com/en/2.0/chapter12
monkut

15
Potrebbe voler correggere "la velocità era il fattore principale" per chiarire se stai parlando di velocità di esecuzione o sforzo di sviluppo. Sembra uno sforzo di sviluppo, il che ha senso.
S. Lott,

6
Sarebbe interessante confrontarlo con RoR.
Kozyarchuk,

6
@ ajkumar25, AFAIK disqus utilizza django blog.disqus.com/post/62187806135/… .
alxs

6
la domanda dovrebbe esserewhat's the cost of scaling in the Django?
Sławomir Lenart,

Risposte:


933
  1. "Quali sono i siti più grandi costruiti oggi su Django?"

    Non esiste un unico posto che raccolga informazioni sul traffico sui siti costruiti da Django, quindi dovrò provarlo usando i dati di varie posizioni. Innanzitutto, abbiamo un elenco di siti Django sulla prima pagina della pagina principale del progetto Django e quindi un elenco di siti Django costruiti su djangosites.org . Scorrendo gli elenchi e selezionandone alcuni che conosco abbiano un traffico decente, vediamo:

  2. "Django può trattare con 100.000 utenti ogni giorno, ognuno dei quali visita il sito per un paio d'ore?"

    Sì, vedi sopra.

  3. "Potrebbe un sito come Stack Overflow funzionare su Django?"

    Il mio istinto è sì ma, come hanno risposto gli altri e Mike Malone menziona nella sua presentazione, la progettazione del database è fondamentale. Una prova efficace potrebbe anche essere trovata su www.cnprog.com se possiamo trovare statistiche di traffico affidabili. Ad ogni modo, non è solo qualcosa che accadrà mettendo insieme un sacco di modelli Django :)

Ci sono, ovviamente, molti più siti e blogger di interesse, ma devo fermarmi da qualche parte!


Post di blog sull'utilizzo di Django per creare il sito ad alto traffico michaelmoore.com descritto come uno dei primi 10.000 siti Web . Statistiche di Quantcast e statistiche compete.com .


(*) L'autore della modifica, incluso tale riferimento, lavorava come sviluppatore esternalizzato in quel progetto.


267

Stiamo eseguendo test di carico ora. Riteniamo di poter supportare 240 richieste simultanee (una frequenza sostenuta di 120 hit al secondo 24x7) senza alcun significativo peggioramento delle prestazioni del server. Sarebbe 432.000 colpi all'ora. I tempi di risposta non sono piccoli (le nostre transazioni sono elevate) ma non vi è alcun degrado rispetto alle prestazioni di base all'aumentare del carico.

Stiamo usando Apache Django e MySQL front-end. Il sistema operativo è Red Hat Enterprise Linux (RHEL). 64-bit. Usiamo mod_wsgi in modalità demone per Django. Non abbiamo effettuato alcuna ottimizzazione della cache o del database se non quella di accettare le impostazioni predefinite.

Siamo tutti in una macchina virtuale su un Dell a 64 bit con (credo) 32 GB di RAM.

Poiché le prestazioni sono quasi le stesse per 20 o 200 utenti simultanei, non è necessario dedicare enormi quantità di tempo al "ritocco". Invece, dobbiamo semplicemente mantenere le nostre prestazioni di base aumentando i normali miglioramenti delle prestazioni SSL, la normale progettazione e implementazione del database (indicizzazione, ecc.), I comuni miglioramenti delle prestazioni del firewall, ecc.

Ciò che misuriamo è che i nostri laptop test di carico si trovano in difficoltà sotto il carico di lavoro folle di 15 processi che eseguono 16 thread di richieste simultanee.


3
Anche curioso: il tuo DB è in esecuzione sullo stesso computer o su un server separato?
Jarret Hardie,

16
Una VM con Apache, Django e MySQL. mod_wsgi. RHEL.
S.Lott

4
Qualche aggiornamento sulle metriche delle prestazioni?
SexyBeast,

1
Hai un buon punto: se pensi al traffico del tuo sito web come a una coda, quante risposte puoi pubblicare all'ora? Se mantieni i tempi di risposta brevi, puoi servire di più e quindi avere una "maggiore scalabilità": non importa se usi Django, Twisted, Rails o la tecnologia del pianeta Zod.
Ralph Bolton,

2
Ho lavorato con Django per anni e non ho mai visto questo tipo di performance in qualcosa di diverso da un'app giocattolo che è per lo più di sola lettura. Qual è la natura della tua applicazione? Qualsiasi cosa con template o middleware o sessioni o connettività al database non supporterà mai 120 hit al secondo senza un'enorme quantità di cache per bypassare tutto ciò.
Cerin,


107

Qual è il sito "più grande" costruito su Django oggi? (Misuro le dimensioni principalmente dal traffico dell'utente)

Negli Stati Uniti, era Mahalo . Mi hanno detto che gestiscono circa 10 milioni di pezzi unici al mese. Ora, nel 2019, Mahalo è alimentato da Ruby on Rails.

All'estero, la rete Globo (una rete di notizie, sport e siti di intrattenimento in Brasile); Alexa li classifica tra i primi 100 a livello globale (circa 80 ° attualmente).

Altri importanti utenti di Django includono PBS, National Geographic, Discovery, NASA (in realtà un numero di divisioni diverse all'interno della NASA) e la Library of Congress.

Django può trattare con 100.000 utenti ogni giorno, ognuno dei quali visita il sito per un paio d'ore?

Sì, ma solo se hai scritto correttamente la tua applicazione e se hai abbastanza hardware. Django non è un proiettile magico.

Un sito come StackOverflow potrebbe funzionare su Django?

Sì (ma vedi sopra).

Per quanto riguarda la tecnologia, facilmente: vedi soclone per un tentativo. Dal punto di vista del traffico, i pioli competitivi StackOverflow a meno di 1 milione di unità al mese. Posso nominare almeno una dozzina di siti Django con più traffico di SO.


2
Potete per favore stimare il prezzo approssimativo per 5000 colpi al secondo, assumendo il suo like simile, usando Django. Supponiamo che un programmatore medio abbia creato il sito e che ovviamente aggiunga cache. Supponiamo che algoritmi ecc. (Per rendere le cose veloci) non utilizzati come non li ho ancora fatti.
user2349115,

5
@ user2349115 quando l'applicazione ottiene 5000 "hit al secondo" avrai abbastanza conoscenze di base per capire perché questa è la domanda sbagliata da porre.
Kye R,

I miei ninja (estensione del browser wrappalyzer) affermano che il mahalo è ruby ​​on rails alimentato ora a marzo 2019.
Miles Davis

87

Il ridimensionamento delle app Web non riguarda i framework o le lingue Web, riguarda la tua architettura. Riguarda il modo in cui gestisci la cache del browser, la cache del database, come usi provider di persistenza non standard (come CouchDB ), come è sintonizzato il tuo database e molte altre cose ...


Il framework Web è importante! Guarda quanto è veloce il tornado rispetto ad altri webframe di pitone: tornadoweb.org/documentation#performance
Joshua Partogi,

Non ho votato in negativo, ma suppongo che tu abbia discusso un po 'l'argomento mentre discutevano dei meriti di Django e non puoi usare tutti i database, ottimizzare il tuo database e usare couchdb al massimo in ogni dato framework. A meno che, ovviamente, non riscrivi grossi pezzi di esso.
ZJR,

8
@ZLR non credo di essere andato fuori tema. Mi ha chiesto se Django può ridimensionare, ho detto di sì, perché quasi tutti i moderni framework web, indipendentemente dalla lingua, possono ridimensionarsi se usi l'approccio architettonico giusto
razenha

Sì, l'IO bloccante rispetto a IO non bloccante è importante, come nell'esempio Tornado. Anche se detto questo, Tornado non è un framework web, ma la tua applicazione dovrà essere scritta in un modo che sfrutti l'IO non bloccante.
Rob Grant,

Con Tornado è molto semplice scrivere il codice IO di blocco. E questo non dà alta concorrenza. Il framework in realtà non ha importanza.
Shiplu Mokaddim,

80

Interpretando un po 'l'avvocato del diavolo:

Dovresti controllare il Keynote di DjangoCon 2008 , consegnato da Cal Henderson , intitolato "Perché odio Django", dove si occupa praticamente di tutto ciò che manca a Django che potresti voler fare in un sito Web ad alto traffico. Alla fine della giornata devi prendere tutto questo con la mente aperta perché è perfettamente possibile scrivere app Django in scala, ma ho pensato che fosse una buona presentazione e pertinente alla tua domanda.


3
Inoltre, Flickr non è stato creato in un giorno.
Deniz Dogan,

34
Sembra che molti dei problemi affrontati da Cal siano ora caratteristiche standard: docs.djangoproject.com/en/dev/topics/db/multi-db
Dolph

51

Il più grande sito di django che conosco è il Washington Post , il che indicherebbe sicuramente che può ridimensionare bene.

Le buone decisioni di progettazione hanno probabilmente un impatto sulle prestazioni maggiore di qualsiasi altra cosa. Twitter è spesso citato come un sito che incarna i problemi di prestazioni con un altro framework web basato sul linguaggio interpretato dinamico, Ruby on Rails - eppure gli ingegneri di Twitter hanno affermato che il framework non è tanto un problema quanto alcune delle scelte di progettazione del database che hanno fatto in anticipo su.

Django funziona molto bene con memcached e fornisce alcune classi per la gestione della cache, che è dove risolvere la maggior parte dei problemi di prestazioni. Ciò che offri sul filo è quasi più importante del tuo backend nella realtà: l'utilizzo di uno strumento come yslow è fondamentale per un'applicazione Web ad alte prestazioni. Puoi sempre lanciare più hardware sul tuo backend, ma non puoi cambiare la larghezza di banda degli utenti.


1
Django non fa solo parte di washingtonpost.com? La prima pagina di Django sembra indicare solo i progetti.washingtonpost.com/congress
Xiong Chiamiov,

3
Forse stai confondendo il Washington Post con il Washington Times. Credo che il Times sia tutto su Django, ma è un documento molto più piccolo.
Eli,

32

Sono stato alla conferenza EuroDjangoCon l'altra settimana, e questo è stato oggetto di un paio di conferenze - tra cui dai fondatori di quello che era il più grande sito basato su Django, Pownce (diapositive da un discorso qui ). Il messaggio principale è che non devi preoccuparti di Django, ma cose come la corretta memorizzazione nella cache, il bilanciamento del carico, l'ottimizzazione del database, ecc.

Django in realtà ha i ganci per la maggior parte di queste cose - la cache, in particolare, è molto semplice.


24

Sono sicuro che stai cercando una risposta più solida, ma la convalida oggettiva più ovvia a cui riesco a pensare è che Google spinge Django per l'uso con il suo framework App Engine . Se qualcuno conosce e si occupa della scalabilità su base regolare, è Google. Da quello che ho letto, il fattore più limitante sembra essere il back-end del database, motivo per cui Google utilizza il proprio ...


La promozione di Django / Python potrebbe essere più correlata alla politica di Google di promuovere Python come scelta del linguaggio "Altro" dopo C ++?
GuruM,

Quando ho dovuto usare GAE, era abbastanza vicino a qualcosa come Tornado ...
Luis Masuelli,

18

Come affermato in High Performance Django Book and Go through this Cal Henderson

Vedi ulteriori dettagli come indicato di seguito:

Non è raro sentire la gente dire "Django non scala" . A seconda di come la vedi, l'affermazione è completamente vera o palesemente falsa. Django, da solo, non scala.

Lo stesso si può dire di Ruby on Rails, Flask, PHP o di qualsiasi altra lingua utilizzata da un sito Web dinamico basato su database.

La buona notizia, tuttavia, è che Django interagisce magnificamente con una suite di strumenti per il caching e il bilanciamento del carico che gli consentiranno di ridimensionare il traffico che puoi lanciare.

Contrariamente a quanto potresti aver letto online, può farlo senza sostituire i componenti principali spesso etichettati come "troppo lenti" come il database ORM o il livello modello.

Disqus offre oltre 8 miliardi di pagine visualizzate al mese. Questi sono alcuni numeri enormi.

Queste squadre hanno dimostrato che Django sicuramente scala. La nostra esperienza qui al Lincoln Loop lo conferma.

Abbiamo creato grandi siti Django in grado di trascorrere la giornata sulla homepage di Reddit senza perdere tempo.

Le storie di successo in scala di Django sono quasi troppo numerose per essere elencate a questo punto.

È supportato da Disqus, Instagram e Pinterest. Vuoi qualche prova in più? Instagram è stato in grado di sostenere oltre 30 milioni di utenti su Django con solo 3 ingegneri (2 dei quali non avevano uno sviluppo back-end


17

Oggi utilizziamo molte app e siti Web per le nostre esigenze. Molti di questi sono molto utili. Ti mostrerò alcuni di essi usati da Python o Django.

Washington Post

Il sito web del Washington Post è una fonte di notizie online estremamente popolare per accompagnare il loro quotidiano. La sua enorme quantità di visualizzazioni e traffico può essere facilmente gestita dal framework web Django. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

Il sito web ufficiale della National Aeronautics and Space Administration è il luogo dove trovare notizie, immagini e video sulla loro continua esplorazione dello spazio. Questo sito Web Django può facilmente gestire enormi quantità di visualizzazioni e traffico. 2 million visitors monthly

Il guardiano

The Guardian è un sito Web di notizie e media britannico di proprietà del Guardian Media Group. Contiene quasi tutto il contenuto dei giornali The Guardian e The Observer. Questi enormi dati sono gestiti da Django. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

Youtube

Conosciamo tutti YouTube come il luogo in cui caricare video di gatti e fallisce. Essendo uno dei siti Web più popolari esistenti, ci offre infinite ore di intrattenimento video. Il linguaggio di programmazione Python lo alimenta e le funzionalità che amiamo.

DropBox

DropBox ha avviato la rivoluzione della memorizzazione di documenti online che è diventata parte della vita quotidiana. Ora archiviamo quasi tutto nel cloud. Dropbox ci consente di archiviare, sincronizzare e condividere quasi tutto usando la potenza di Python.

Survey Monkey

Survey Monkey è la più grande compagnia di sondaggi online. Possono gestire oltre un milione di risposte ogni giorno sul loro sito Web Python riscritto.

quora

Quora è il posto numero uno online per porre una domanda e ricevere risposte da una comunità di persone. Sul loro sito Web Python i risultati pertinenti ricevono risposta, modifica e organizzazione da questi membri della comunità.

bitly

La maggior parte del codice per i servizi e le analisi di accorciamento di URL Bitly sono tutti realizzati con Python. Il loro servizio può gestire centinaia di milioni di eventi al giorno.

Reddit

Reddit è conosciuta come la prima pagina di Internet. È il luogo online per trovare informazioni o intrattenimenti basati su migliaia di diverse categorie. Post e collegamenti sono generati dagli utenti e sono promossi in alto attraverso i voti. Molte delle funzionalità di Reddit si basano su Python per la loro funzionalità.

Hipmunk

Hipmunk è un sito di viaggi per consumatori online che confronta i migliori siti di viaggi per trovare le migliori offerte. Gli strumenti di questo sito Web Python ti consentono di trovare gli hotel e i voli più economici per la tua destinazione.

Fai clic qui per ulteriori informazioni: 25 dei più popolari siti Web di pitone e django , Cosa sono alcuni siti ben noti in esecuzione su Django


15

Penso che potremmo anche aggiungere l'App di Apple dell'anno per il 2011, Instagram , all'elenco che utilizza intensamente django.


12

Sì, può. Potrebbe essere Django con Python o Ruby on Rails. Scalerà ancora.

Esistono diverse tecniche. Innanzitutto, la memorizzazione nella cache non è in scala. Potresti avere diversi server applicazioni bilanciati con nginx come front oltre ai bilanciatori hardware. Per scalare dal lato del database puoi andare piuttosto lontano con lo slave di lettura in MySQL / PostgreSQL se vai nel modo RDBMS.

Alcuni buoni esempi di siti Web a traffico intenso in Django potrebbero essere:

  • Pownce quando erano ancora lì.
  • Discus (gestore di commenti condivisi generico)
  • Tutti i siti web relativi ai giornali: Washington Post e altri.

Puoi sentirti al sicuro.


2
Dico solo ... i social network morti danno un cattivo esempio di scalabilità :)
ZJR

3
Non credo che Pownce dead sia legato a un problema di scalabilità.
Kedare,

9

Ecco un elenco di alcune cose di alto profilo costruite in Django:

  1. L' app " Indaga sulle spese del tuo parlamentare " di The Guardian

  2. Politifact.com (ecco un post sul blog che parla dell'esperienza (positiva). Il sito ha vinto un Pulitzer.

  3. App di rappresentanza del NY Times

  4. EveryBlock

  5. Peter Harkins, uno dei programmatori di WaPo, elenca tutte le cose che hanno costruito con Django sul suo blog

  6. È un po 'vecchio, ma qualcuno del Los Angeles Times ha dato una panoramica di base sul perché sono andati con Django.

  7. L'AV Club di Onion è stato recentemente spostato da (penso Drupal) a Django.

Immagino che un certo numero di questi siti probabilmente ottenga oltre 100k + hit al giorno. Django può certamente fare 100k hit / giorno e altro ancora. Ma YMMV nel portare lì il tuo sito particolare a seconda di ciò che stai costruendo.

Esistono opzioni di memorizzazione nella cache a livello di Django (ad esempio la memorizzazione nella cache di query e viste in memcached può fare miracoli) e oltre (cache a monte come Squid ). Anche le specifiche del server di database saranno un fattore (e di solito il luogo in cui concedervi il lusso), così come è stata ottimizzata. Non dare per scontato, ad esempio, che Django imposti correttamente gli indici. Non dare per scontato che la configurazione PostgreSQL o MySQL predefinita sia quella giusta.

Inoltre, hai sempre la possibilità di avere più server applicazioni che eseguono Django se questo è il punto lento, con un bilanciamento del carico software o hardware di fronte.

Infine, stai offrendo contenuti statici sullo stesso server di Django? Stai usando Apache o qualcosa del genere nginx o lighttpd ? Puoi permetterti di usare un CDN per contenuti statici? Queste sono cose a cui pensare, ma è tutto molto speculativo. 100.000 visite / giorno non sono l'unica variabile: quanto vuoi spendere? Quanta competenza hai nella gestione di tutti questi componenti? Quanto tempo devi mettere insieme?


9

Il difensore degli sviluppatori di YouTube ha tenuto un discorso sul ridimensionamento di Python al PyCon 2012 , che è anche rilevante per il ridimensionamento di Django.

YouTube ha oltre un miliardo di utenti e YouTube è basato su Python.


3
Ma YouTube non è costruito con Django. Python potrebbe essere veloce, ma non così per Django.
Joshua Partogi,

4
Sì, ma il punto era che man mano che Django cresce, si trova su una buona base per il factoring di velocità e con Google là fuori che lavora a progetti come Unladen Swallow, andrà solo meglio.
Orokusaki,

7

Uso Django da oltre un anno e sono molto colpito dal modo in cui riesce a combinare modularità, scalabilità e velocità di sviluppo. Come con qualsiasi tecnologia, viene fornito con una curva di apprendimento. Tuttavia, questa curva di apprendimento è resa molto meno ripida dall'eccellente documentazione della comunità di Django. Django è stato in grado di gestire tutto ciò che gli ho lanciato davvero bene. Sembra che sarà in grado di scalare bene nel futuro.

BidRodeo Penny Auctions è un sito web di Django di dimensioni moderate. È un sito Web molto dinamico e gestisce un buon numero di visualizzazioni di pagina al giorno.


6

Tieni presente che se ti aspetti 100.000 utenti al giorno, attivi per ore alla volta (ovvero massimo 20.000 + utenti simultanei), avrai bisogno di MOLTI server. SO ha circa 15.000 utenti registrati e molti di loro probabilmente non sono attivi quotidianamente. Mentre la maggior parte del traffico proviene da utenti non registrati, suppongo che pochissimi di loro rimangano sul sito per più di un paio di minuti (cioè seguono i risultati di ricerca di Google e poi se ne vanno).

Per quel volume, aspettati almeno 30 server ... che sono ancora 1.000 utenti simultanei piuttosto pesanti per server.


2
Dal podcast risulta che SO utilizza solo 3 server. Ma SO è costruito usando C #, non Python, quindi strappa.
S. Lott,

1
Ovviamente la domanda sarà: quanti server potenti sono?
mamcx,

6

Qual è il sito "più grande" costruito su Django oggi? ( Misuro le dimensioni principalmente in base al traffico degli utenti) Pinterest
disqus.com
Altre informazioni qui: https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-website/

Django può trattare con 100.000 utenti ogni giorno, ognuno dei quali visita il sito per un paio d'ore?
Sì, ma usa un'architettura adeguata, la progettazione del database, l'uso della cache, usa i saldi di carico e più server o nodi

Un sito come Stack Overflow potrebbe funzionare su Django?
Sì, basta seguire la risposta menzionata nella seconda domanda


5

Un altro esempio è rasp.yandex.ru, servizio di orari di trasporto russo. La sua presenza soddisfa le tue esigenze.


5

Se hai un sito con alcuni contenuti statici, allora metti una vernice server in primo piano aumenterà notevolmente le tue prestazioni. Anche una singola scatola può quindi facilmente sputare 100 Mbit / s di traffico.

Nota che con i contenuti dinamici, usare qualcosa come Varnish diventa molto più complicato.


1
Il problema qui è che la vernice aumenterà notevolmente le prestazioni di tutto. E i framework più veloci saranno ancora più veloci.
ZJR,

5

La mia esperienza con Django è minima, ma ricordo in The Django Book che hanno un capitolo in cui intervistano persone che eseguono alcune delle applicazioni Django più grandi. Ecco un link Immagino che potrebbe fornire alcune intuizioni.

Dice che curse.com è una delle più grandi applicazioni Django con circa 60-90 milioni di pagine visualizzate in un mese.


1
Gli URL di curse.com ora finiscono in .aspx ... (non so se li realizzano)
ZJR

5

Sviluppo siti ad alto traffico utilizzando Django per l'emittente nazionale irlandese. Funziona bene per noi. Lo sviluppo di un sito ad alte prestazioni non riguarda solo la scelta di un framework. Un framework sarà solo una parte di un sistema tanto forte quanto il suo anello più debole. L'utilizzo dell'ultimo framework "X" non risolverà i problemi di prestazioni se il problema è costituito da query del database lente o da un server o una rete mal configurati.


4

Anche se qui ci sono state molte risposte fantastiche, ho solo voglia di sottolineare che nessuno ha messo l'accento su ...

Dipende dall'applicazione

Se la tua applicazione è leggera sulle scritture, poiché stai leggendo molti più dati dal DB di quelli che stai scrivendo. Quindi ridimensionare il django dovrebbe essere abbastanza banale, diamine, viene fornito con una cache di output / visualizzazione abbastanza decente immediatamente. Sfruttalo e, diciamo, ridisegna come provider di cache, metti un bilanciamento del carico davanti a te, fai girare n-istanze e dovresti essere in grado di gestire una quantità MOLTO grande di traffico.

Ora, se devi fare migliaia di scritture complesse al secondo? Storia diversa. Django sarà una cattiva scelta? Bene, non necessariamente, dipende da come progetti davvero la tua soluzione, e anche da quali sono le tue esigenze.

Solo i miei due centesimi :-)




3

Il problema non è sapere se django può ridimensionare o meno.

Il modo giusto è capire e conoscere quali sono i modelli e gli strumenti di progettazione della rete da mettere in scala nel progetto django / symfony / rails.

Alcune idee possono essere:

  • Multiplexing.
  • Proxy inverso. Es: Nginx, vernice
  • Sessione Memcache. Es: Redis
  • Clusterizzazione sul progetto e db per bilanciamento del carico e tolleranza agli errori: Es .: Docker
  • Utilizzare terze parti per archiviare risorse. Es .: Amazon S3

Spero che ti aiuti un po '. Questa è la mia piccola roccia sulla montagna.


3

Se vuoi usare Open source, ci sono molte opzioni per te. Ma Python è il migliore tra questi in quanto ha molte librerie e una comunità super fantastica. Questi sono alcuni motivi che potrebbero farti cambiare idea:

  • Python è molto buono ma è un linguaggio interpretato che lo rallenta. Ma ci sono molti servizi di accelerazione e memorizzazione nella cache che risolvono in parte questo problema.

  • Se stai pensando a un rapido sviluppo, Ruby on Rails è il migliore tra tutti. Il motto principale di questo framework (ROR) è offrire agli sviluppatori un'esperienza confortevole. Se si confrontano Ruby e Python entrambi hanno quasi la stessa sintassi.

  • Google App Engine è un ottimo servizio ma ti vincolerà nel suo ambito di applicazione, non avrai la possibilità di sperimentare cose nuove. Invece di esso è possibile utilizzare il cloud Digital Ocean che richiederà solo $ 5 al mese per il suo droplet più semplice. Heroku è un altro servizio gratuito in cui è possibile distribuire il prodotto.

  • Sì! Sì! Quello che hai sentito è del tutto corretto, ma qui ci sono alcuni esempi che utilizzano altre tecnologie

    • Rails: Github, Twitter (precedentemente), Shopify, Airbnb, Slideshare, Heroku ecc.
    • PHP: Facebook, Wikipedia, Flickr, Yahoo, Tumbler, Mailchimp ecc.

La conclusione è un framework o un linguaggio che non farà tutto per te. Una migliore architettura, progettazione e strategia ti daranno un sito web scalabile. Instagram è l'esempio più grande, questo piccolo team sta gestendo dati così enormi. Ecco un blog sulla sua architettura che deve leggerlo.


Lo sviluppo di Django può essere molto veloce. Django è il framework web per perfezionisti con scadenze.
les

3

Non penso che il problema riguardi davvero il ridimensionamento di Django.

Ti suggerisco davvero di esaminare la tua architettura che è ciò che ti aiuterà con le tue esigenze di ridimensionamento. Se sbagli, non ha senso quanto bene Django si esibisca. Performance! = Scala. Puoi avere un sistema con prestazioni straordinarie ma non scalabile e viceversa.

Il database dell'applicazione è associato? Se è così, anche i problemi di scala si trovano lì. Come pensi di interagire con il database di Django? Cosa succede quando il database non è in grado di elaborare le richieste con la stessa velocità con cui Django le accetta? Cosa succede quando i tuoi dati superano una macchina fisica. Devi rendere conto di come prevedi di affrontare tali circostanze.

Inoltre, cosa succede quando il traffico supera un server app? il modo in cui gestisci le sessioni in questo caso può essere complicato, molto spesso potresti richiedere un'architettura nulla condivisa. Ancora una volta dipende dalla tua applicazione.

In breve le lingue non sono ciò che determina la scala, una lingua è responsabile delle prestazioni (di nuovo a seconda delle applicazioni, diverse lingue funzionano diversamente). È il tuo design e la tua architettura che rendono il ridimensionamento una realtà.

Spero che sia di aiuto, sarei felice di aiutarti ulteriormente se hai domande.


2

Distribuire le attività in modo uniforme, in breve ottimizzando ogni aspetto tra cui DB, file, immagini, CSS ecc. E bilanciando il carico con diverse altre risorse è necessario una volta che il tuo sito / applicazione inizia a crescere. O fai più spazio per farlo crescere. L'implementazione delle ultime tecnologie come CDN, Cloud è indispensabile con siti enormi. Lo sviluppo e la modifica di un'applicazione non garantiscono la percentuale di soddisfazione, anche altri componenti svolgono un ruolo importante.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.