Ich erstelle eine Webanwendung mit Django. Die Gründe, warum ich mich für Django entschieden habe, waren:
- Ich wollte mit kostenlosen / Open-Source-Tools arbeiten.
- Ich mag Python und denke, dass es eine langfristige Sprache ist, während ich mir in Bezug auf Ruby nicht sicher war und PHP ein großer Aufwand zu sein schien.
- Ich baue einen Prototyp für eine Idee und habe nicht zu viel über die Zukunft nachgedacht. Die Entwicklungsgeschwindigkeit war der Hauptfaktor, und ich kannte Python bereits.
- Ich wusste, dass die Migration zu Google App Engine einfacher sein würde, wenn ich mich in Zukunft dafür entscheide.
- Ich habe gehört, Django sei "nett".
Jetzt, da ich näher dran bin, über die Veröffentlichung meiner Arbeit nachzudenken, mache ich mir Sorgen um die Größe. Die einzigen Informationen, die ich über die Skalierungsfunktionen von Django gefunden habe, werden vom Django-Team bereitgestellt (ich sage nichts, um sie zu ignorieren, aber dies sind eindeutig keine objektiven Informationen ...).
Meine Fragen:
- Was ist die "größte" Seite, die heute auf Django gebaut wurde? (Ich messe die Größe hauptsächlich am Benutzerverkehr)
- Kann Django täglich mit 100.000 Benutzern umgehen , die jeweils einige Stunden lang die Website besuchen?
- Könnte eine Site wie Stack Overflow auf Django laufen?
python
django
web-applications
scalability
Roee Adler
quelle
quelle
what's the cost of scaling in the Django?
Antworten:
"Was sind heute die größten Standorte auf Django?"
Es gibt keinen einzigen Ort, an dem Informationen über den Datenverkehr auf von Django erstellten Websites gesammelt werden. Daher muss ich anhand von Daten von verschiedenen Standorten einen Versuch unternehmen. Zuerst haben wir eine Liste der Django-Sites auf der Startseite der Haupt-Django-Projektseite und dann eine Liste der von Django erstellten Sites auf djangosites.org . Wenn wir die Listen durchgehen und einige auswählen, von denen ich weiß, dass sie anständigen Verkehr haben, sehen wir:
Instagram : Was treibt Instagram an: Hunderte von Instanzen, Dutzende von Technologien .
Pinterest : Alexa Rang 37 (21.4.2015) und 70 Millionen Nutzer im Jahr 2013
Bitbucket : 200 TB Code und 2.500.000 Benutzer
Disqus : Mit Python 400 Millionen Menschen dienen .
curse.com : 600.000 tägliche Besuche .
tabblo.com : 44.000 tägliche Besuche , siehe Ned Batchelders Beiträge Infrastruktur für moderne Websites .
chesspark.com : Alexa Rang ungefähr 179k.
pownce.com (nicht mehr aktiv): alexa rang ungefähr 65k. Mike Malone von Powncesagtin seiner EuroDjangoCon-Präsentation zu Scaling Django Web Apps "Hunderte von Treffern pro Sekunde". Dies ist eine sehr gute Präsentation zum Skalieren von Django und macht einige gute Punkte, einschließlich (aktueller) Mängel bei der Skalierbarkeit von Django.
HP ließ eine Site mit Django 1.5: ePrint Center erstellen . Für novemer / 2015 wurde jedoch die gesamte Website migriert und dieser Link ist nur eine Weiterleitung. Diese Website war ein weltweiter Dienst, der an einem Abonnement für Instant Ink und die von HP angebotenen verwandten Dienste teilnahm (*).
"Kann Django täglich mit 100.000 Benutzern umgehen, die jeweils einige Stunden lang die Website besuchen?"
Ja, siehe oben.
"Könnte eine Site wie Stack Overflow auf Django laufen?"
Mein Bauchgefühl ist ja, aber wie andere antworteten und Mike Malone in seiner Präsentation erwähnt, ist das Datenbankdesign von entscheidender Bedeutung. Ein starker Beweis kann auch unter www.cnprog.com gefunden werden, wenn wir zuverlässige Verkehrsstatistiken finden können. Wie auch immer, es ist nicht nur etwas, was passieren wird, wenn man ein paar Django-Modelle zusammenwirft :)
Es gibt natürlich noch viele weitere interessante Websites und Blogger, aber ich muss irgendwo aufhören!
Blogbeitrag über die Verwendung von Django zum Erstellen einer stark frequentierten Website michaelmoore.com, die als Top-10.000-Website bezeichnet wird . Quantcast-Statistiken und konkurrierende.com-Statistiken .
(*) Der Autor der Bearbeitung, einschließlich dieser Referenz, arbeitete als ausgelagerter Entwickler in diesem Projekt.
quelle
Wir führen jetzt Lasttests durch. Wir glauben, dass wir 240 gleichzeitige Anforderungen (eine anhaltende Rate von 120 Treffern pro Sekunde rund um die Uhr) unterstützen können, ohne die Serverleistung wesentlich zu beeinträchtigen. Das wären 432.000 Treffer pro Stunde. Die Antwortzeiten sind nicht klein (unsere Transaktionen sind groß), aber unsere Basisleistung wird mit zunehmender Auslastung nicht beeinträchtigt.
Wir verwenden Apache-Frontend-Django und MySQL. Das Betriebssystem ist Red Hat Enterprise Linux (RHEL). 64-Bit. Wir verwenden mod_wsgi im Daemon-Modus für Django. Wir haben keine andere Cache- oder Datenbankoptimierung durchgeführt, als die Standardeinstellungen zu akzeptieren.
Wir sind alle in einer VM auf einem 64-Bit-Dell mit (glaube ich) 32 GB RAM.
Da die Leistung für 20 oder 200 gleichzeitige Benutzer nahezu gleich ist, müssen wir nicht viel Zeit mit "Optimierungen" verbringen. Stattdessen müssen wir einfach unsere Basisleistung durch gewöhnliche Verbesserungen der SSL-Leistung, gewöhnliches Datenbankdesign und -implementierung (Indizierung usw.), gewöhnliche Verbesserungen der Firewall-Leistung usw. aufrechterhalten.
Was wir messen, sind unsere Lasttest-Laptops, die unter der wahnsinnigen Arbeitslast von 15 Prozessen leiden, auf denen 16 gleichzeitige Anforderungsthreads ausgeführt werden.
quelle
Ich bin mir nicht sicher über die Anzahl der täglichen Besuche, aber hier sind einige Beispiele für große Django-Websites:
Hier ist ein Link zur Liste der stark frequentierten Django-Websites auf Quora .
quelle
In den USA war es Mahalo . Mir wurde gesagt, dass sie ungefähr 10 Millionen Unikate pro Monat bearbeiten. Jetzt, im Jahr 2019, wird Mahalo von Ruby on Rails angetrieben.
Im Ausland das Globo- Netzwerk (ein Netzwerk von Nachrichten-, Sport- und Unterhaltungsseiten in Brasilien); Alexa zählt sie zu den Top 100 weltweit (derzeit rund 80).
Andere bemerkenswerte Django-Benutzer sind PBS, National Geographic, Discovery, die NASA (tatsächlich eine Reihe verschiedener Abteilungen innerhalb der NASA) und die Library of Congress.
Ja - aber nur, wenn Sie Ihre Bewerbung richtig geschrieben haben und über genügend Hardware verfügen. Django ist kein Wundermittel.
Ja (aber siehe oben).
Technologisch gesehen einfach: Sehen Sie sich Soklon für einen Versuch an. In Bezug auf den Verkehr konkurrieren StackOverflow mit weniger als 1 Million Unikaten pro Monat. Ich kann mindestens ein Dutzend Django-Sites mit mehr Verkehr als SO nennen.
quelle
Beim Skalieren von Web-Apps geht es nicht um Web-Frameworks oder Sprachen, sondern um Ihre Architektur. Es geht darum, wie Sie mit Ihrem Browser-Cache, Ihrem Datenbank-Cache, der Verwendung von nicht standardmäßigen Persistenzanbietern (wie CouchDB ), der Optimierung Ihrer Datenbank und vielen anderen Dingen umgehen ...
quelle
Devil's Advocate ein bisschen spielen:
Sie sollten die DjangoCon 2008 Keynote von Cal Henderson mit dem Titel "Warum ich Django hasse" lesen , in der er so ziemlich alles durchgeht , was Django fehlt, was Sie auf einer stark frequentierten Website tun möchten. Am Ende des Tages haben Sie diese mit einem offenen Geist alle nehmen , weil es ist durchaus möglich , schreibt Django diese Skala apps, aber ich hielt es für eine gute Präsentation und relevant für Ihre Frage.
quelle
Die größte Django-Site, die ich kenne, ist die Washington Post , was sicherlich darauf hinweisen würde, dass sie gut skaliert werden kann .
Gute Designentscheidungen haben wahrscheinlich einen größeren Einfluss auf die Leistung als alles andere. Twitter wird häufig als eine Website zitiert, die die Leistungsprobleme mit einem anderen dynamisch interpretierten sprachbasierten Webframework, Ruby on Rails, verkörpert. Die Ingenieure von Twitter haben jedoch festgestellt, dass das Framework nicht so problematisch ist wie einige der früh getroffenen Entscheidungen zum Datenbankdesign auf.
Django arbeitet sehr gut mit memcached und bietet einige Klassen zum Verwalten des Caches, in denen Sie die meisten Ihrer Leistungsprobleme lösen würden. Was Sie auf dem Draht liefern, ist in der Realität fast wichtiger als Ihr Backend - die Verwendung eines Tools wie yslow ist für eine leistungsstarke Webanwendung von entscheidender Bedeutung. Sie können immer mehr Hardware in Ihr Backend werfen, aber Sie können die Bandbreite Ihrer Benutzer nicht ändern.
quelle
Ich war neulich auf der EuroDjangoCon-Konferenz und dies war das Thema einiger Gespräche - auch von den Gründern der größten in Django ansässigen Site, Pownce (Folien von einem Vortrag hier ). Die Hauptbotschaft ist, dass Sie sich nicht um Django kümmern müssen, sondern um Dinge wie korrektes Caching, Lastausgleich, Datenbankoptimierung usw.
Django hat tatsächlich Haken für die meisten dieser Dinge - insbesondere das Zwischenspeichern ist sehr einfach.
quelle
Ich bin sicher, dass Sie nach einer solideren Antwort suchen, aber die offensichtlichste objektive Bestätigung, die ich mir vorstellen kann, ist, dass Google Django zur Verwendung mit seinem App Engine- Framework drängt . Wenn jemand die Skalierbarkeit kennt und sich regelmäßig damit befasst, ist es Google. Nach dem, was ich gelesen habe, scheint der einschränkendste Faktor das Datenbank-Back-End zu sein, weshalb Google sein eigenes ...
quelle
Wie in High Performance Django Book and Go durch diesen Cal Henderson angegeben
Siehe weitere Details wie unten erwähnt:
Es ist nicht ungewöhnlich, dass Leute sagen: "Django skaliert nicht" . Je nachdem, wie Sie es betrachten, ist die Aussage entweder vollständig wahr oder offensichtlich falsch. Django allein skaliert nicht.
Das Gleiche gilt für Ruby on Rails, Flask, PHP oder jede andere Sprache, die von einer datenbankgesteuerten dynamischen Website verwendet wird.
Die gute Nachricht ist jedoch, dass Django wunderbar mit einer Reihe von Caching- und Lastausgleichstools interagiert, mit denen es auf so viel Verkehr skaliert werden kann, wie Sie darauf werfen können.
Im Gegensatz zu dem, was Sie möglicherweise online gelesen haben, kann dies ohne Austausch von Kernkomponenten geschehen, die häufig als „zu langsam“ gekennzeichnet sind, z. B. das Datenbank-ORM oder die Vorlagenebene.
Disqus liefert über 8 Milliarden Seitenaufrufe pro Monat. Das sind einige große Zahlen.
Diese Teams haben bewiesen, dass Django mit Sicherheit skaliert. Unsere Erfahrung hier bei Lincoln Loop bestätigt dies.
Wir haben große Django-Sites erstellt, die den Tag auf der Reddit-Homepage verbringen können, ohne ins Schwitzen zu geraten.
Djangos skalierende Erfolgsgeschichten sind fast zu zahlreich, um sie an dieser Stelle aufzulisten.
Es unterstützt Disqus, Instagram und Pinterest. Willst du noch mehr Beweise? Instagram konnte mit nur 3 Ingenieuren (von denen 2 keine Back-End-Entwicklung hatten) über 30 Millionen Nutzer auf Django unterstützen
quelle
Heute verwenden wir viele Web-Apps und Websites für unsere Bedürfnisse. Die meisten von ihnen sind sehr nützlich. Ich werde Ihnen einige davon zeigen, die von Python oder Django verwendet werden.
Washington Post
Die Website der Washington Post ist eine äußerst beliebte Online-Nachrichtenquelle für ihre Tageszeitung. Die große Menge an Ansichten und Datenverkehr kann vom Django-Webframework problemlos verarbeitet werden.
Washington Post - 52.2 million unique visitors (March, 2015)
NASA
Auf der offiziellen Website der National Aeronautics and Space Administration finden Sie Nachrichten, Bilder und Videos zu ihrer laufenden Weltraumforschung. Diese Django-Website kann problemlos große Mengen an Ansichten und Verkehr verarbeiten.
2 million visitors monthly
Der Wächter
The Guardian ist eine britische Nachrichten- und Medienwebsite der Guardian Media Group. Es enthält fast den gesamten Inhalt der Zeitungen The Guardian und The Observer. Diese riesigen Daten werden von Django verarbeitet.
The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)
Youtube
Wir alle kennen YouTube als den Ort zum Hochladen von Katzenvideos und scheitern. Als eine der beliebtesten Websites bietet sie uns endlose Stunden Videounterhaltung. Die Programmiersprache Python unterstützt es und die Funktionen, die wir lieben.
DropBox
DropBox startete die Revolution zum Speichern von Online-Dokumenten, die Teil des täglichen Lebens geworden ist. Wir speichern jetzt fast alles in der Cloud. Mit Dropbox können wir fast alles mithilfe von Python speichern, synchronisieren und freigeben.
Umfrage Affe
Survey Monkey ist das größte Online-Umfrageunternehmen. Sie können täglich über eine Million Antworten auf ihrer neu geschriebenen Python-Website verarbeiten.
Quora
Quora ist die Nummer eins im Internet, um Fragen zu stellen und Antworten von einer Community von Einzelpersonen zu erhalten. Auf ihrer Python-Website werden relevante Ergebnisse von diesen Community-Mitgliedern beantwortet, bearbeitet und organisiert.
Bitly
Ein Großteil des Codes für Bitly URL Shortening Services und Analytics wurde mit Python erstellt. Ihr Service kann Hunderte Millionen Ereignisse pro Tag abwickeln.
Reddit
Reddit ist als Titelseite des Internets bekannt. Hier finden Sie Informationen oder Unterhaltung online, die auf Tausenden verschiedener Kategorien basieren. Beiträge und Links werden vom Benutzer generiert und durch Abstimmungen nach oben befördert. Viele der Funktionen von Reddit basieren auf Python für ihre Funktionalität.
Hipmunk
Hipmunk ist eine Online-Reiseseite für Verbraucher, die die Top-Reiseseiten vergleicht, um die besten Angebote für Sie zu finden. Mit den Tools dieser Python-Website können Sie die günstigsten Hotels und Flüge für Ihr Ziel finden.
Klicken Sie hier, um weitere Informationen zu erhalten : 25 der beliebtesten Python- und Django-Websites , Was-sind-einige-bekannte-Websites, die auf Django laufen
quelle
Ich denke, wir könnten genauso gut Apples App des Jahres 2011, Instagram , zu der Liste hinzufügen, die Django intensiv nutzt.
quelle
Ja, kann es. Es könnte Django mit Python oder Ruby on Rails sein. Es wird immer noch skaliert.
Es gibt nur wenige verschiedene Techniken. Erstens ist Caching keine Skalierung. Zusätzlich zu den Hardware-Balancern können mehrere Anwendungsserver mit nginx als Front ausgeglichen sein. Um auf der Datenbankseite zu skalieren, können Sie mit Read Slave in MySQL / PostgreSQL ziemlich weit gehen, wenn Sie den RDBMS-Weg gehen.
Einige gute Beispiele für stark frequentierte Websites in Django könnten sein:
Sie können sich sicher fühlen.
quelle
Hier ist eine Liste einiger relativ hochkarätiger Dinge, die in Django gebaut wurden:
Die App " Untersuchen Sie die Ausgaben Ihres Abgeordneten" des Guardian
Politifact.com (hier ist ein Blog-Beitrag über die (positive) Erfahrung. Die Site hat einen Pulitzer gewonnen.
Repräsentanten- App der NY Times
EveryBlock
Peter Harkins, einer der Programmierer bei WaPo, listet alle Dinge, die sie mit Django erstellt haben, in seinem Blog auf
Es ist ein bisschen alt, aber jemand von der LA Times gab einen grundlegenden Überblick darüber, warum sie mit Django gegangen sind.
Der AV-Club der Zwiebel wurde kürzlich von (ich glaube Drupal) nach Django verlegt.
Ich stelle mir vor, dass einige dieser Websites wahrscheinlich weit über 100.000 Zugriffe pro Tag erzielen. Django kann mit Sicherheit 100.000 Treffer pro Tag und mehr erzielen. Aber YMMV, wenn es darum geht, Ihre spezielle Site dorthin zu bringen, je nachdem, was Sie erstellen.
Es gibt Caching-Optionen auf Django-Ebene (zum Beispiel kann das Zwischenspeichern von Abfragesätzen und Ansichten in Memcached Wunder wirken) und darüber hinaus (Upstream-Caches wie Squid ). Die Spezifikationen des Datenbankservers sind ebenfalls ein Faktor (und in der Regel der Ort, an dem Sie sich verwöhnen lassen müssen), ebenso wie die Optimierung. Gehen Sie zum Beispiel nicht davon aus, dass Django die Indizes richtig einrichtet. Gehen Sie nicht davon aus, dass das Standard- PostgreSQL oder MySQL die richtige ist.
Darüber hinaus haben Sie immer die Möglichkeit, mehrere Anwendungsserver mit Django auszuführen, wenn dies der langsame Punkt ist, mit einem Software- oder Hardware-Load-Balancer im Vordergrund.
Stellen Sie statische Inhalte auf demselben Server wie Django bereit? Verwenden Sie Apache oder etwas wie Nginx oder LightTPD ? Können Sie es sich leisten, ein CDN für statische Inhalte zu verwenden? Dies sind Dinge, über die man nachdenken muss, aber es ist alles sehr spekulativ. 100.000 Treffer / Tag sind nicht die einzige Variable: Wie viel möchten Sie ausgeben? Wie viel Fachwissen haben Sie bei der Verwaltung all dieser Komponenten? Wie viel Zeit haben Sie, um alles zusammenzubringen?
quelle
Der Entwickleranwalt für YouTube hielt auf der PyCon 2012 einen Vortrag über die Skalierung von Python , der auch für die Skalierung von Django relevant ist.
YouTube hat mehr als eine Milliarde Nutzer und YouTube basiert auf Python.
quelle
Ich benutze Django seit über einem Jahr und bin sehr beeindruckt davon, wie es Modularität, Skalierbarkeit und Entwicklungsgeschwindigkeit kombiniert. Wie bei jeder Technologie kommt es mit einer Lernkurve. Diese Lernkurve wird jedoch durch die hervorragende Dokumentation der Django-Community viel weniger steil. Django hat mit allem, was ich drauf geworfen habe, wirklich gut umgehen können. Es sieht so aus, als könnte es auch in Zukunft skaliert werden.
BidRodeo Penny Auctions ist eine mittelgroße Website mit Django- Unterstützung . Es ist eine sehr dynamische Website, die täglich eine gute Anzahl von Seitenaufrufen verarbeitet.
quelle
Beachten Sie, dass Sie VIELE Server benötigen, wenn Sie 100.000 Benutzer pro Tag erwarten, die stundenlang aktiv sind (dh maximal 20.000 + gleichzeitige Benutzer). SO hat ~ 15.000 registrierte Benutzer, und die meisten von ihnen sind wahrscheinlich nicht täglich aktiv. Während der Großteil des Datenverkehrs von nicht registrierten Nutzern stammt, schätze ich, dass nur sehr wenige von ihnen länger als ein paar Minuten auf der Website bleiben (dh sie folgen den Google-Suchergebnissen und gehen dann).
Erwarten Sie für dieses Volume mindestens 30 Server ... das sind immer noch ziemlich viele 1.000 gleichzeitige Benutzer pro Server.
quelle
Was ist die "größte" Seite, die heute auf Django gebaut wurde? (Ich messe die Größe hauptsächlich anhand des Benutzerverkehrs.) Pinterest
disqus.com
Mehr hier: https://www.shuup.com/de/blog/25-of-the-most-popular-python-and-django-websites/
Kann Django täglich mit 100.000 Benutzern umgehen, die jeweils einige Stunden lang die Website besuchen?
Ja, aber verwenden Sie die richtige Architektur, das Datenbankdesign, die Verwendung des Caches, verwenden Sie Lastenausgleich und mehrere Server oder Knoten
Könnte eine Site wie Stack Overflow auf Django laufen?
Ja, ich muss nur der Antwort in der 2. Frage folgen
quelle
Ein weiteres Beispiel ist rasp.yandex.ru, russischer Transportfahrplan. Die Teilnahme entspricht Ihren Anforderungen.
quelle
Wenn Sie eine Site mit statischem Inhalt haben, können Sie Ihre Leistung erheblich steigern , indem Sie einen Lackserver vorlegen. Selbst eine einzelne Box kann dann problemlos 100 Mbit / s Verkehr ausspucken.
Beachten Sie, dass bei dynamischen Inhalten die Verwendung von Lack viel schwieriger wird.
quelle
Meine Erfahrung mit Django ist minimal, aber ich erinnere mich, dass sie in The Django Book ein Kapitel haben, in dem sie Leute interviewen, die einige der größeren Django-Anwendungen ausführen. Hier ist ein Link. Ich denke, es könnte einige Einblicke geben.
Es heißt, curse.com sei eine der größten Django-Anwendungen mit etwa 60 bis 90 Millionen Seitenaufrufen pro Monat.
quelle
Ich entwickle mit Django stark frequentierte Websites für den nationalen Sender in Irland. Es funktioniert gut für uns. Bei der Entwicklung einer Hochleistungswebsite geht es nicht nur um die Auswahl eines Frameworks. Ein Framework ist nur ein Teil eines Systems, das so stark wie das schwächste Glied ist. Die Verwendung des neuesten Frameworks 'X' löst Ihre Leistungsprobleme nicht, wenn das Problem langsame Datenbankabfragen oder ein schlecht konfigurierter Server oder ein schlecht konfiguriertes Netzwerk sind.
quelle
Obwohl es hier viele gute Antworten gab, möchte ich nur darauf hinweisen, dass niemand Wert darauf gelegt hat.
Das hängt von der Anwendung ab
Wenn Ihre Anwendung nur wenig Schreibvorgänge ausführt, lesen Sie viel mehr Daten aus der Datenbank als Sie schreiben. Dann sollte das Skalieren von Django ziemlich trivial sein, zum Teufel, es kommt mit einem ziemlich anständigen Ausgabe- / Ansichts-Caching direkt aus der Box. Nutzen Sie dies und sagen Sie, redis als Cache-Anbieter, stellen Sie einen Load Balancer davor, starten Sie n-Instanzen und Sie sollten in der Lage sein, mit einer SEHR großen Menge an Verkehr umzugehen.
Wenn Sie Tausende von komplexen Schreibvorgängen pro Sekunde ausführen müssen? Andere Geschichte. Wird Django eine schlechte Wahl sein? Nun, nicht unbedingt, hängt davon ab, wie Sie Ihre Lösung wirklich entwickeln und welche Anforderungen Sie stellen.
Nur meine zwei Cent :-)
quelle
Sie können definitiv eine stark frequentierte Site in Django betreiben. Schauen Sie sich diesen vor Django 1.0, aber immer noch relevanten Beitrag hier an: http://menendez.com/blog/launching-high-performance-django-site/
quelle
Schauen Sie sich diesen Micro News Aggregator namens EveryBlock an .
Es ist vollständig in Django geschrieben. Tatsächlich sind sie die Leute, die das Django-Framework selbst entwickelt haben.
quelle
Das Problem ist nicht zu wissen, ob Django skalieren kann oder nicht.
Der richtige Weg ist zu verstehen und zu wissen, welche Netzwerkdesignmuster und -werkzeuge unter Ihr Django / Symfony / Rails-Projekt gestellt werden müssen, um eine gute Skalierung zu erreichen.
Einige Ideen können sein:
Hoffe es hilft ein bisschen. Dies ist mein winziger Felsen zum Berg.
quelle
Wenn Sie Open Source verwenden möchten, stehen Ihnen viele Optionen zur Verfügung. Aber Python ist das Beste unter ihnen, da es viele Bibliotheken und eine super tolle Community hat. Dies sind einige Gründe, die Ihre Meinung ändern könnten:
Python ist sehr gut, aber es ist eine interpretierte Sprache, die es langsam macht. Es gibt jedoch viele Beschleuniger- und Caching-Dienste, die dieses Problem teilweise lösen.
Wenn Sie an eine schnelle Entwicklung denken, ist Ruby on Rails das Beste unter allen. Das Hauptmotto dieses (ROR) Frameworks ist es, den Entwicklern eine komfortable Erfahrung zu bieten. Wenn Sie Ruby und Python vergleichen, haben beide fast die gleiche Syntax.
Google App Engine ist ein sehr guter Dienst, der Sie jedoch in seinem Umfang bindet. Sie haben keine Chance, neue Dinge auszuprobieren. Stattdessen können Sie die Digital Ocean Cloud verwenden, für die nur 5 US-Dollar pro Monat für das einfachste Tröpfchen berechnet werden. Heroku ist ein weiterer kostenloser Dienst, mit dem Sie Ihr Produkt bereitstellen können.
Ja! Ja! Was Sie gehört haben, ist völlig richtig, aber hier sind einige Beispiele, die andere Technologien verwenden
Fazit ist ein Rahmen oder eine Sprache wird nicht alles für Sie tun. Durch eine bessere Architektur, Gestaltung und Strategie erhalten Sie eine skalierbare Website. Instagram ist das größte Beispiel, dieses kleine Team verwaltet so große Datenmengen. Hier ist ein Blog über seine Architektur muss es lesen.
quelle
Ich glaube nicht, dass es wirklich um die Django-Skalierung geht.
Ich schlage wirklich vor, dass Sie sich Ihre Architektur ansehen, die Ihnen bei Ihren Skalierungsanforderungen hilft. Wenn Sie das falsch verstehen, macht es keinen Sinn, wie gut Django funktioniert. Leistung! = Skalieren. Sie können ein System haben, das eine erstaunliche Leistung aufweist, aber nicht skaliert und umgekehrt.
Ist Ihre Anwendungsdatenbank gebunden? Wenn ja, dann liegen auch Ihre Skalenprobleme dort. Wie planen Sie die Interaktion mit der Datenbank von Django? Was passiert, wenn Ihre Datenbank Anforderungen nicht so schnell verarbeiten kann, wie Django sie akzeptiert? Was passiert, wenn Ihre Daten über eine physische Maschine hinauswachsen? Sie müssen berücksichtigen, wie Sie mit diesen Umständen umgehen möchten.
Was passiert außerdem, wenn Ihr Datenverkehr über einen App-Server hinauswächst? In diesem Fall kann es schwierig sein, wie Sie mit Sitzungen umgehen. In den meisten Fällen benötigen Sie wahrscheinlich eine Shared-Nothing-Architektur. Auch das hängt von Ihrer Anwendung ab.
In kurzen Sprachen ist nicht das, was den Maßstab bestimmt, sondern eine Sprache, die für die Leistung verantwortlich ist (wiederum hängen abhängig von Ihren Anwendungen verschiedene Sprachen unterschiedlich ab). Es ist Ihr Design und Ihre Architektur, die die Skalierung Wirklichkeit werden lassen.
Ich hoffe es hilft, würde gerne weiterhelfen, wenn Sie Fragen haben.
quelle
Eine gleichmäßige Verteilung der Aufgaben, kurz gesagt, die Optimierung aller Aspekte, einschließlich DBs, Dateien, Bilder, CSS usw., und das Ausgleichen der Last mit mehreren anderen Ressourcen ist erforderlich, sobald Ihre Site / Anwendung wächst. ODER Sie schaffen mehr Platz, damit es wächst. Die Implementierung der neuesten Technologien wie CDN und Cloud ist ein Muss bei riesigen Websites. Nur die Entwicklung und Optimierung einer Anwendung wird Sie nicht zufriedenstellen, andere Komponenten spielen ebenfalls eine wichtige Rolle.
quelle