Czy Django się skaluje? [zamknięte]

Buduję aplikację webową z Django. Powody, dla których wybrałem Django były następujące:

  • chciałem pracować z narzędziami free / open-source.
  • lubię Pythona i uważam, że jest to język "długoterminowy", podczas gdy jeśli chodzi o Ruby, nie byłem pewien, a PHP wydawało mi się ogromnym kłopotem do nauki.
  • buduję prototyp dla pomysłu i nie myślałem zbyt wiele o przyszłości. Szybkość rozwoju była głównym czynnikiem, a ja już znałem Pythona.
  • znałem migrację do aplikacji Google Silnik byłby łatwiejszy, jeśli zdecyduję się to zrobić w przyszłości.
  • Słyszałem, że Django jest "miły".

Teraz, gdy jestem coraz bliżej do myślenia o publikacji mojej pracy, zaczynam martwić się o skalę. Jedyne informacje, jakie znalazłem na temat możliwości skalowania Django, dostarcza zespół Django (nie mówię nic, aby je zignorować, ale to oczywiście nie jest obiektywna informacja...).

Moje pytania:

  • Jaka jest" największa " strona, która została zbudowana na Django? (I measure size mostly by user traffic)
  • czy Django może obsługiwać 100 000 użytkowników dziennie, każdego odwiedzającego stronę przez kilka godzin?
  • czy taka strona jak Stack Overflow może działać na Django?
Author: Serjik, 2009-05-20

29 answers

  1. "Jakie są obecnie największe witryny zbudowane na Django?"

    Nie ma żadnego miejsca, które gromadzi informacje o ruchu na stronach zbudowanych przez Django, więc będę musiał to zrobić używając danych z różnych lokalizacji. Najpierw mamy listę stron Django na pierwszej stronie głównej strony projektu Django a następnie listę stron zbudowanych przez Django na djangosites.org . przeglądając listy i wybierając niektóre, które Wiem, że mają przyzwoity ruch we zobacz:

  2. "Can Django zajmuj się 100 000 użytkowników dziennie, każdy odwiedzając witrynę przez kilka godzin?"

    Tak, patrz wyżej.
  3. "czy taka strona jak Stack Overflow może działać na Django?"

    Moje przeczucie jest tak, ale, jak inni odpowiedzieli i Mike Malone wspomina w swojej prezentacji, projektowanie baz danych jest krytyczna. Mocne dowody można również znaleźć na www.cnprog.com jeśli znajdziemy jakieś wiarygodne statystyki ruchu. W każdym razie, to nie tylko coś, co się stanie, rzucając razem kilka z modeli Django:)

Jest oczywiście o wiele więcej interesujących stron i blogerów, ale muszę się gdzieś zatrzymać!


Post na blogu o używaniu Django do budowania witryny o dużym natężeniu ruchu michaelmoore.com opisany jako top 10 000 stron . statystyki Quantcast i compete.com statystyki .


(*) autor edycji, wraz z takim odniesieniem, pracował jako zleceniodawca w tym projekt.

 739
Author: Van Gale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-27 19:28:31

Przeprowadzamy testy obciążenia. Uważamy, że możemy obsługiwać 240 jednoczesnych żądań (stały wskaźnik 120 trafień na sekundę 24x7) bez znaczącej degradacji wydajności serwera. To będzie 432,000 hits na godzinę. Czasy reakcji nie są małe (nasze transakcje są duże), ale nie ma pogorszenia w stosunku do naszych podstawowych wyników w miarę wzrostu obciążenia.

Używamy Apache front-ending Django i MySQL. System operacyjny to Red Hat Enterprise Linux (RHEL). 64-bitowe. Używamy mod_wsgi w trybie daemon dla Django. Nie zrobiliśmy żadnej optymalizacji pamięci podręcznej ani bazy danych poza zaakceptowaniem domyślnych ustawień.

Wszyscy jesteśmy w jednej maszynie wirtualnej na 64-bitowym Della z (chyba) 32GB RAM.

Ponieważ wydajność jest prawie taka sama dla 20 lub 200 jednoczesnych użytkowników, nie musimy poświęcać ogromnej ilości czasu na "poprawianie". Zamiast tego musimy po prostu utrzymać naszą podstawową wydajność poprzez zwykłe ulepszenia wydajności SSL, zwykłe projektowanie i wdrażanie baz danych (indeksowanie itp.), zwykłe ulepszenia wydajności Firewalla itp.

To, co robimy, to nasze laptopy testowe obciążenia zmagające się z szalonym obciążeniem 15 procesów uruchamiających 16 równoległych wątków żądań.

 235
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-21 15:10:32
 158
Author: Neil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-03 12:48:42

Jaka jest" największa " strona zbudowana na Django? (I measure size mostly by user traffic)

W USA, Mahalo . Podobno obsługują 10 milionów uników miesięcznie.

[1]}za granicą, Globo network (Sieć serwisów informacyjnych, sportowych i rozrywkowych w Brazylii); Alexa plasuje je w top 100 na świecie (około 80 obecnie).

Inni znani użytkownicy Django to PBS, National Geographic, Discovery, NASA (właściwie liczba różnych działów w NASA), oraz Biblioteka Kongresu.

Czy Django może obsługiwać 100k użytkowników dziennie, każdego odwiedzającego stronę przez kilka godzin?

Tak -- ale tylko jeśli dobrze napisałeś swoją aplikację i jeśli masz wystarczająco dużo sprzętu. Django nie jest magiczną kulą.

Czy strona taka jak StackOverflow może działać na Django?

Tak (ale patrz wyżej).

Pod względem technologicznym, łatwo: zobacz soclone dla jednej próby. Pod względem ruchu drogowego, konkurować kołki StackOverflow poniżej 1 mln uniques miesięcznie. Mogę wymienić co najmniej tuzin witryn Django z większym natężeniem ruchu.

 94
Author: jacobian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-16 02:59:43

Gra w adwokata diabła:

Powinieneś sprawdzić Keynote DjangoCon 2008, dostarczoną przez cala Hendersona, zatytułowaną "Why I hate Django", gdzie prawie omawia wszystko, czego brakuje Django, co możesz chcieć zrobić w witrynie o dużym natężeniu ruchu. Pod koniec dnia musisz wziąć to wszystko z otwartym umysłem, ponieważ jest doskonale możliwe, aby pisać aplikacje Django, które się skalują, ale myślałem, że to dobra prezentacja i istotne dla Twojego pytanie.

 75
Author: Paolo Bergantino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-20 06:33:46

Skalowanie aplikacji internetowych nie dotyczy frameworków ani języków, lecz Twojej architektury. Chodzi o to, jak radzisz sobie z pamięcią podręczną przeglądarki, pamięcią podręczną bazy danych, jak korzystasz z niestandardowych dostawców trwałości( takich jak CouchDB), Jak dostrojona jest twoja baza danych i wiele innych rzeczy...

 65
Author: razenha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-17 05:56:42

Największą stroną django jaką znam jest Washington Post , co z pewnością wskazywałoby, że Może Być dobrze skalowane.

Dobre decyzje projektowe mają prawdopodobnie większy wpływ na wydajność niż cokolwiek innego. Twitter jest często cytowany jako strona, która uosabia problemy z wydajnością z innym dynamicznym językiem interpretowanym opartym na frameworku internetowym, Ruby on Rails - jednak inżynierowie Twittera stwierdzili, że framework nie jest tak dużym problemem, jak niektóre projekty baz danych wcześnie podjęli decyzje.

Django działa bardzo ładnie z memcached i dostarcza kilka klas do zarządzania cache ' em, gdzie rozwiązywałbyś większość problemów z wydajnością. To, co dostarczasz na drucie, jest prawie ważniejsze niż twój backend w rzeczywistości - korzystanie z narzędzia takiego jak yslow ma kluczowe znaczenie dla wysokowydajnej aplikacji internetowej. Zawsze możesz rzucić więcej sprzętu do backendu, ale nie możesz zmienić przepustowości użytkowników.

 45
Author: Bayard Randel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-20 05:22:37

Byłem w tamtym tygodniu na konferencji EuroDjangoCon i był to temat kilku rozmów-w tym od założycieli największego serwisu opartego na Django, Pownce(slajdy z jednej rozmowy tutaj). Głównym Komunikatem jest to, że to nie Django musisz się martwić, ale takie rzeczy jak prawidłowe buforowanie, równoważenie obciążenia, optymalizacja bazy danych itp.

Django rzeczywiście ma Hooki dla większości z tych rzeczy - buforowanie, w szczególności, jest bardzo proste.

 27
Author: Daniel Roseman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-20 06:27:28

Jestem pewien, że szukasz bardziej solidnej odpowiedzi, ale najbardziej oczywistą, obiektywną walidacją, jaką przychodzi mi do głowy, jest to, że Google wypycha Django do użytku z jego App Engine framework. Jeśli ktoś wie i zajmuje się skalowalnością na bieżąco, to jest to Google. Z tego, co czytałem, najbardziej ograniczającym czynnikiem wydaje się zaplecze bazy danych, dlatego Google używa własnego...

 19
Author: jess,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-30 21:40:12

Myślę, że równie dobrze możemy dodać aplikację roku 2011 Apple, Instagram , do listy, która intensywnie używa django.

 14
Author: Milind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-10 21:29:53

Dzisiaj używamy wielu aplikacji internetowych i witryn dla naszych potrzeb. Większość z nich jest bardzo przydatna. Pokażę Ci kilka z nich używanych przez Pythona lub django.

Washington Post

Strona internetowa The Washington Post jest niezwykle popularnym internetowym źródłem wiadomości, które towarzyszą ich codziennym gazetom. Jego ogromna Ilość wyświetleń i ruchu może być łatwo obsługiwana przez framework Django. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

Oficjalna strona National Aeronautics and Space Administration to miejsce, gdzie można znaleźć wiadomości, zdjęcia i filmy o ich trwających eksploracji kosmosu. Ta strona Django może z łatwością obsłużyć ogromne ilości wyświetleń i ruchu. 2 million visitors monthly

The Guardian

The Guardian-Brytyjski portal informacyjny i medialny należący do Guardian Media Group. Zawiera prawie całą treść gazet "The Guardian" i "The Observer". Te ogromne dane są obsługiwane przez Django. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

YouTube

[3]}wszyscy znamy YouTube jako miejsce do wgrywania filmów z kotami i nie powiodło się. Jako jedna z najpopularniejszych stron internetowych, zapewnia nam nieskończone godziny rozrywki wideo. Język programowania Python napędza go i funkcje, które kochamy.

DropBox

DropBox rozpoczął rewolucję w przechowywaniu dokumentów online, która stała się częścią codziennego życia. Obecnie przechowujemy prawie wszystko w chmurze. Dropbox pozwala nam przechowywać, synchronizować i udostępniać prawie wszystko, korzystając z mocy Python.

Monkey Survey

Survey Monkey jest największą firmą zajmującą się badaniami online. Mogą obsłużyć ponad milion odpowiedzi każdego dnia na ich przepisanej stronie internetowej Pythona.

Quora

Quora jest numerem jeden Miejsce online, aby zadać pytanie i otrzymywać odpowiedzi od społeczności osób. Na ich stronie internetowej Python członkowie społeczności odpowiadają na odpowiednie wyniki, edytują je i organizują.

Bitly

Większość kod dla Bitly URL skracania usług i analityki są zbudowane z Pythona. Ich serwis może obsłużyć setki milionów wydarzeń dziennie.

Reddit

Reddit jest znany jako pierwsza strona Internetu. Jest to miejsce online, aby znaleźć informacje lub rozrywki w oparciu o tysiące różnych kategorii. Posty i linki są generowane przez użytkowników i są promowane do góry poprzez głosy. Wiele możliwości Reddita polega na Pythonie dla ich funkcjonalność.

Hipmunk

Hipmunk to internetowy serwis turystyczny, który porównuje najlepsze strony turystyczne, aby znaleźć najlepsze oferty. Narzędzia tej strony internetowej w języku Python pozwalają znaleźć najtańsze hotele i loty dla Twojego miejsca docelowego.

Kliknij tutaj, aby uzyskać więcej: 25-z-najpopularniejszych-stron-python-i-django , czym-są-znane-strony-działające-na-Django

 13
Author: Simplans,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-25 15:58:18

Yes it can. Może to być Django z Pythonem lub Ruby on Rails. Nadal będzie się skalować.

Istnieje kilka różnych technik. Po pierwsze, buforowanie nie jest skalowaniem. Możesz mieć kilka serwerów aplikacji zbalansowanych z nginx jako frontem oprócz równoważenia sprzętu. Aby skalować po stronie bazy danych, możesz pójść dość daleko z read slave w MySQL / PostgreSQL, jeśli pójdziesz RDBMS sposób.

Kilka dobrych przykładów stron o dużym natężeniu ruchu w Django może be:

  • Pownce kiedy jeszcze tam byli.
  • Discus (generic shared comments manager)
  • Wszystkie strony związane z hasłem 'Washington Post':

Możesz czuć się bezpiecznie.

 9
Author: coulix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-02 20:55:21

Jak podano w High Performance Django Book and Go through this Cal Henderson

Zobacz dalsze szczegóły, jak wspomniano poniżej:

Często słyszy się, jak ludzie mówią "Django nie skaluje się" . W zależności od tego, jak na to patrzysz, stwierdzenie jest albo całkowicie prawdziwe, albo ewidentnie fałszywe. Django samo w sobie nie skaluje się.

To samo można powiedzieć o Ruby on Rails, Flask, PHP lub innym języku używanym przez dynamiczne bazy danych strona internetowa.

Dobrą wiadomością jest jednak to, że Django pięknie współgra z pakietem buforowania i narzędzia równoważenia obciążenia, które pozwolą mu skalować do tak dużego ruchu, jak możesz na niego rzucić.

Wbrew temu, co mogłeś przeczytać w Internecie, może to zrobić bez zastępowania podstawowych komponentów często oznaczanych jako "zbyt wolne", takich jak baza danych ORM lub warstwa szablonu.

Disqus obsługuje ponad 8 miliardów odsłon miesięcznie. To ogromna liczba.

Te zespoły mają sprawdzone Django z całą pewnością potrafi skalować. Nasze doświadczenie w Lincoln Loop potwierdza to.

Zbudowaliśmy duże strony Django zdolne do spędzenia dnia na stronie głównej Reddita bez najmniejszego potu.

Historie sukcesu w skalowaniu Django są prawie zbyt liczne, aby wymienić je w tym momencie.

Wspiera Disqus, Instagram i Pinterest. Chcesz więcej dowodów? Instagram był w stanie utrzymać ponad 30 milionów użytkowników na Django z tylko 3 inżynierami (z których 2 nie miało back-endu rozwój

 9
Author: Mushahid Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-29 06:07:52

Oto lista stosunkowo głośnych rzeczy zbudowanych w Django:

  1. Aplikacja strażnika "zbadaj wydatki posła "

  2. Politifact.com (oto post na blogu mówiący o (pozytywnym) doświadczeniu. Strona zdobyła Pulitzera.

  3. NY Times ' Represent app

  4. EveryBlock

  5. Peter Harkins, jeden z programistów w WaPo, wymienia wszystkie rzeczy, które zbudowali z Django na swoim blogu

  6. Jest trochę stary, ale ktoś z LA Times dał podstawowy przegląd Dlaczego poszli z Django.

  7. AV Club cebuli został niedawno przeniesiony z (chyba Drupal) do Django.

Wyobrażam sobie, że wiele z tych stron prawdopodobnie dostaje ponad 100k+ odsłon dziennie. Django z pewnością potrafi robić 100k hitów / dzień i więcej. Ale YMMV w uzyskaniu konkretnej witryny w zależności od tego, co jesteś budynek.

Istnieją opcje buforowania na poziomie Django (na przykład buforowanie zestawów zapytań i widoków w memcached może zdziałać cuda) i poza nimi (buforowanie pod prąd, takie jak Squid). Specyfikacja serwera bazodanowego będzie również czynnikiem (i zwykle miejscem, w którym można się rozluźnić), podobnie jak dobrze go dostroiłeś. Nie zakładaj na przykład, że Django będzie poprawnie konfigurować indeksy. Nie zakładaj, że domyślna konfiguracja PostgreSQL lub MySQL jest odpowiednia jeden.

Ponadto, zawsze masz możliwość posiadania wielu serwerów aplikacji z Django, jeśli jest to wolny moment, z Oprogramowaniem lub sprzętowym load balancerem z przodu.

Wreszcie, czy serwujesz statyczne treści na tym samym serwerze co Django? Używasz Apache ' a czy czegoś w rodzaju nginx lublighttpd ? Czy możesz sobie pozwolić na użycie CDN dla treści statycznych? To są rzeczy do przemyślenia, ale to wszystko jest bardzo spekulacyjne. 100k hits / day isn ' t the tylko zmienna: ile chcesz wydać? Ile masz doświadczenia w zarządzaniu tymi wszystkimi komponentami? Ile czasu masz na zebranie wszystkiego?

 7
Author: mazelife,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-30 21:05:25

Developer advocate dla YouTube wygłosił wykład o skalowaniu Pythona na PyCon 2012, który jest również istotny dla skalowania Django.

YouTube ma ponad miliard użytkowników, a YouTube jest zbudowany na Pythonie.

 6
Author: orokusaki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-24 19:29:32

Zauważ, że jeśli spodziewasz się 100 000 użytkowników dziennie, którzy są aktywni godzinami (co oznacza maksymalnie 20 000 jednoczesnych użytkowników), będziesz potrzebować wielu serwerów. Tak ma ~15,000 zarejestrowanych użytkowników, a większość z nich prawdopodobnie nie są aktywne codziennie. Podczas gdy większość ruchu pochodzi od niezarejestrowanych użytkowników, zgaduję, że bardzo niewielu z nich pozostaje na stronie dłużej niż kilka minut (tj. śledzą wyniki wyszukiwania google, a następnie opuszczają).

Dla tego woluminu należy spodziewać się co najmniej 30 serwery ... co jest nadal dość ciężkie 1,000 jednoczesnych użytkowników na serwer.

 5
Author: Beep beep,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-20 05:35:26

Innym przykładem jest rasp.yandex.ru, rosyjski rozkład jazdy. Jego obecność spełnia Twoje wymagania.

 5
Author: Glader,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-20 11:48:27

Używam Django od ponad roku i jestem pod wrażeniem tego, jak udaje mi się połączyć modułowość, skalowalność i szybkość rozwoju. Podobnie jak w przypadku każdej technologii, ma krzywą uczenia się. Jednak ta krzywa uczenia się jest znacznie mniej stroma dzięki doskonałej dokumentacji ze społeczności Django. Django jest w stanie poradzić sobie ze wszystkim, co rzuciłem na to naprawdę dobrze. Wygląda na to, że będzie w stanie dobrze skalować się w przyszłości.

BidRodeo Penny Auctions to średniej wielkości strona Django. Jest to bardzo dynamiczna strona internetowa i obsługuje dużą liczbę wyświetleń strony dziennie.

 5
Author: Krystian Cybulski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-30 21:08:34

Jeśli masz stronę ze statyczną treścią, to umieszczenie serwera Varnish z przodu znacznie zwiększy twoją wydajność. Nawet pojedyncza skrzynka może łatwo wypluć 100 Mbit/s ruchu.

Zauważ, że przy dynamicznej zawartości używanie czegoś takiego jak lakier staje się o wiele trudniejsze.

 5
Author: Anders Rune Jensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-30 21:10:54

Jaka jest" największa " strona zbudowana na Django? (I measure size mostly by user traffic) Pinterest
disqus.com
Więcej tutaj https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

Czy Django może obsłużyć 100 000 użytkowników dziennie, z których każdy odwiedza stronę przez kilka godzin?
Tak, ale użyj odpowiedniej architektury, projektowania baz danych, użycia pamięci podręcznej, użycia sald obciążenia i wielu serwerów/ nods

Czy taka strona jak Stack Overflow może działać na Django?
Tak, wystarczy podążać za odpowiedzią wymienioną w drugim pytaniu

 5
Author: Ranju R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-09 08:36:57

Moje doświadczenie z Django jest minimalne, ale pamiętam, że w książce Django mają rozdział, w którym przeprowadzają wywiady z ludźmi używającymi większych aplikacji Django. Oto link.Myślę, że to może dostarczyć pewnych spostrzeżeń.

Pisze curse.com jest jedną z największych aplikacji Django z około 60-90 milionami odsłon w miesiącu.

 4
Author: tomeedee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-30 21:24:19

Nawet-choć było tu wiele świetnych odpowiedzi, to mam ochotę zwrócić uwagę, na które nikt nie kładł nacisku..

To zależy od aplikacji

Jeśli aplikacja jest lekka na zapisach, ponieważ czytasz dużo więcej danych z DB niż piszesz. Skalowanie django powinno być dość trywialne, do diabła, jest dostarczane z całkiem przyzwoitym buforowaniem wyjścia/widoku prosto z pudełka. Skorzystaj z tego i powiedzmy, redis jako dostawca pamięci podręcznej, załaduj balancer przed nim Uruchom N-instancje i powinieneś być w stanie poradzić sobie z bardzo dużym ruchem.

Teraz, jeśli musisz zrobić tysiące złożonych wpisów na sekundę? Inna historia. Czy Django będzie złym wyborem? Cóż, niekoniecznie, zależy od tego, jak naprawdę zaprojektujesz swoje rozwiązanie, a także, jakie są Twoje wymagania.

Tylko moje dwa grosze: -)

 4
Author: JustDanyul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-14 20:56:00

Zdecydowanie możesz uruchomić stronę o dużym natężeniu ruchu w Django. Sprawdź ten pre-Django 1.0, ale nadal aktualny post tutaj: http://menendez.com/blog/launching-high-performance-django-site/

 3
Author: Ed Menendez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-04 20:28:00

Sprawdź ten mikro agregator wiadomości o nazwie EveryBlock .

Jest w całości napisane w Django. W rzeczywistości są to ludzie, którzy stworzyli Sam Framework Django.

 3
Author: siddu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-30 20:56:54

Tworzę witryny o dużym natężeniu ruchu przy użyciu Django dla krajowego nadawcy w Irlandii. Dobrze nam to wychodzi. Tworzenie strony o wysokiej wydajności to coś więcej niż tylko wybór frameworka. Ramy będą tylko jedną częścią systemu, która jest tak silna, jak jego najsłabsze ogniwo. Korzystanie z najnowszego frameworka 'X' nie rozwiąże problemów z wydajnością, jeśli problemem są powolne zapytania do bazy danych lub źle skonfigurowany serwer lub sieć.

 3
Author: redsnapper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-08 15:25:31

Nie wydaje mi się, aby problem dotyczył skalowania Django.

Naprawdę sugeruję, abyś przyjrzał się swojej architekturze, która pomoże Ci w skalowaniu potrzeb.Jeśli się mylisz, to nie ma sensu, jak dobrze Django działa. Wydajność != Skala. Możesz mieć system, który ma niesamowitą wydajność, ale nie skaluje się i odwrotnie.

Czy Twoja baza danych aplikacji jest związana? Jeśli tak, to twoje problemy z skalą również tam leżą. Jak planujesz interakcję z baza danych z Django? Co się dzieje, gdy baza danych nie może przetwarzać żądań tak szybko, jak Django je akceptuje? Co się dzieje, gdy Twoje dane przerastają jedną fizyczną maszynę. Musisz wyjaśnić, jak zamierzasz poradzić sobie z tymi okolicznościami.

Ponadto, co się stanie, gdy twój ruch przekroczy jeden serwer aplikacji? sposób radzenia sobie z sesjami w tym przypadku może być trudny, częściej niż zwykle wymagałbyś architektury shared nothing. Znowu to zależy od Twojego podanie.

W krótkich językach nie jest to, co decyduje o skali, język jest odpowiedzialny za wydajność(ponownie w zależności od aplikacji różne języki działają inaczej). To twój projekt i architektura sprawiają, że skalowanie staje się rzeczywistością.

Mam nadzieję, że to pomoże, chętnie pomogę dalej, Jeśli masz pytania.

 3
Author: Anand Davis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-07 05:01:24

Jeśli chcesz użyć Open source, istnieje wiele opcji dla Ciebie. Ale python jest najlepszy wśród nich ma wiele bibliotek i super niesamowitą społeczność. To są powody, które mogą zmienić twoje zdanie:

  • Python jest bardzo dobry, ale jest to język interpretowany, który czyni go wolnym. Ale istnieje wiele usług akceleratora i buforowania, które częściowo rozwiązują ten problem.

  • Jeśli myślisz o szybkim rozwoju to Ruby on Rails jest najlepszy spośród wszystkich. Główne mottem tego (ROR) framework jest zapewnienie komfortowego doświadczenia programistom. Jeśli porównać Ruby i Python oba mają prawie takie same składnie.

  • Google App Engine to bardzo dobra usługa, ale wiąże cię w swoim zakresie, nie masz szansy eksperymentować z nowymi rzeczami. Zamiast tego możesz użyć Digital Ocean cloud, która zajmie tylko $5/miesiąc opłaty za najprostszą kroplę. Heroku to kolejna darmowa usługa, w której możesz wdrożyć swój produkt.

  • Tak! Tak! To, co usłyszałeś, jest całkowicie poprawne, ale oto kilka przykładów, które wykorzystują inne technologie

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

Conclusion to framework lub język nie zrobi za Ciebie wszystkiego. Lepsza architektura, projektowanie i strategia zapewni skalowalną stronę internetową. Instagram jest największy przykład, ten mały zespół zarządza tak ogromnymi danymi. Oto jeden blog {[14] } o jego architekturze musi go przeczytać.

 3
Author: pulkit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-21 16:50:17

Równomierne rozłożenie zadań, w skrócie optymalizacja każdego aspektu, w tym DBs, plików, obrazów, CSS itp. równoważenie obciążenia z kilkoma innymi zasobami jest konieczne, gdy Twoja witryna / aplikacja zacznie rosnąć. Albo zrobisz więcej miejsca, żeby się rozrosła. Wdrożenie najnowszych technologii, takich jak CDN, chmura są koniecznością z ogromnymi witrynami. Samo rozwijanie i ulepszanie aplikacji nie da ci zadowolenia procentowego, inne komponenty również odgrywają ważną rolę.

 2
Author: Ashwin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-25 01:20:04

Problemem jest nie wiedzieć, czy django może skalować czy nie.

Właściwym sposobem jest zrozumienie i poznanie wzorców projektowania sieci i narzędzi, które należy umieścić pod twoim projektem django/symfony/rails, aby dobrze skalować.

Niektóre pomysły mogą być:

  • multipleksowanie.
  • odwrotne proxy. Ex: Nginx, Lakier
  • Sesja Memcache. Ex: Redis
  • Klasteryzacja na Twoim projekcie i db dla równoważenia obciążenia i tolerancji błędów: Ex : Docker
  • Użyj strony trzeciej do przechowywania aktywów. Ex: Amazon S3

Mam nadzieję, że to trochę pomoże. To moja mała skała do góry.

 2
Author: gmourier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-09 12:15:29