Джанго масштабируется? [закрыто]


1136

Я создаю веб-приложение с Django. Причины, по которым я выбрал Django:

  • Я хотел работать с бесплатными / открытыми инструментами.
  • Я люблю Python и чувствую, что это долгосрочный язык, тогда как в отношении Ruby я не был уверен, и PHP выглядел как огромная проблема для изучения.
  • Я создаю прототип для идеи и не слишком много думаю о будущем. Скорость разработки была основным фактором, и я уже знал Python.
  • Я знал, что переход на Google App Engine будет проще, если я решу сделать это в будущем.
  • Я слышал, Джанго был "хорош".

Теперь, когда я все больше думаю о публикации своей работы, я начинаю беспокоиться о масштабе. Единственная информация, которую я нашел о возможностях масштабирования Django, предоставлена ​​командой Django (я не говорю ничего, чтобы игнорировать их, но это явно не объективная информация ...).

Мои вопросы:

  • Какой самый большой сайт сегодня построен на Джанго? (Я измеряю размер в основном по пользовательскому трафику)
  • Может ли Django иметь дело со 100 000 пользователей ежедневно , каждый из которых посещает сайт в течение нескольких часов?
  • Может ли сайт наподобие Stack Overflow работать на Django?

2
Если вы еще этого не сделали, я рекомендую прочитать раздел о масштабировании в Книге Django: djangobook.com/en/1.0/chapter20 или более новую версию: djangobook.com/en/2.0/chapter12
monkut,

15
Возможно, нужно исправить «скорость была основным фактором», чтобы уточнить, говорите ли вы о скорости выполнения или усилиях по разработке. Это похоже на усилия по разработке, что имеет смысл.
S.Lott

6
Было бы интересно сравнить это с RoR.
Козячук

6
@ ajkumar25, AFAIK disqus использует django blog.disqus.com/post/62187806135/… .
alxs

6
вопрос должен бытьwhat's the cost of scaling in the Django?
Славомир Ленарт

Ответы:


933
  1. «Какие самые большие объекты построены сегодня на Джанго?»

    Нет ни одного места, где бы собиралась информация о трафике на сайтах, созданных в Django, поэтому мне придется попробовать его, используя данные из разных мест. Во-первых, у нас есть список сайтов Django на главной странице главной страницы проекта Django, а затем список сайтов, созданных Django, на djangosites.org . Просматривая списки и выбирая те, которые, я знаю, имеют приличный трафик, который мы видим:

  2. «Может ли Django иметь дело со 100 000 пользователей ежедневно, каждый из которых посещает сайт в течение нескольких часов?»

    Да, смотри выше.

  3. "Может ли такой сайт, как Stack Overflow работать на Django?"

    Я чувствую себя хорошо, но, как говорили другие, и Майк Малон упоминает в своей презентации, дизайн базы данных имеет решающее значение. Сильные доказательства можно также найти на www.cnprog.com, если мы сможем найти надежную статистику трафика. Во всяком случае, это не просто то, что произойдет, если собрать воедино кучу моделей Django :)

Есть, конечно, еще много сайтов и интересных блоггеров, но я должен где-то остановиться!


Сообщение в блоге об использовании Django для создания сайта с высоким трафиком michaelmoore.com, описанного как топ-10000 сайтов . Quantcast Статистика и compete.com статистика .


(*) Автор редактирования, включая такую ​​ссылку, раньше работал сторонним разработчиком в этом проекте.


267

Сейчас мы проводим нагрузочное тестирование. Мы считаем, что мы можем поддерживать 240 одновременных запросов (устойчивая скорость 120 обращений в секунду 24x7) без какого-либо существенного снижения производительности сервера. Это было бы 432 000 хитов в час. Время отклика невелико (наши транзакции велики), но при увеличении нагрузки нет снижения нашей базовой производительности.

Мы используем Apache Django и MySQL. ОС Red Hat Enterprise Linux (RHEL). 64-битный. Мы используем mod_wsgi в режиме демона для Django. Мы не занимались оптимизацией кэша или базы данных, кроме как принять значения по умолчанию.

Мы все в одной виртуальной машине на 64-битной Dell с (я думаю) 32 ГБ ОЗУ.

Поскольку производительность для 20 или 200 одновременно работающих пользователей практически одинакова, нам не нужно тратить огромное количество времени на «подстройку». Вместо этого нам просто нужно поддерживать нашу базовую производительность за счет обычных улучшений производительности SSL, обычного проектирования и реализации базы данных (индексация и т. Д.), Обычных улучшений производительности брандмауэра и т. Д.

Что мы измеряем, так это наши ноутбуки с нагрузочным тестом, испытывающие трудности при безумной рабочей нагрузке 15 процессов, выполняющих 16 параллельных потоков запросов.


3
Также любопытно: ваша БД работает на той же машине или на отдельном сервере?
Джаррет Харди

16
Одна виртуальная машина с Apache, Django и MySQL. mod_wsgi. RHEL.
С.Лотт

4
Есть ли какие-либо обновления показателей производительности?
SexyBeast

1
Вы делаете хорошее замечание - если вы думаете о трафике вашего сайта как о очереди, то сколько ответов вы можете обслуживать в час? Если вы сократите время отклика, вы сможете обслуживать больше и, следовательно, иметь «большую масштабируемость» - не имеет значения, используете ли вы Django, Twisted, Rails или технологии с планеты Zod.
Ральф Болтон

2
Я работал с Django в течение многих лет, и я никогда не видел такого рода производительности ни в чем, кроме игрушечного приложения, которое в основном доступно только для чтения. Какова природа вашего приложения? Все, что связано с шаблонами, промежуточным программным обеспечением, сессиями или подключением к базе данных, никогда не будет поддерживать 120 обращений в секунду без огромного объема кэширования, способного обойти все это.
Церин

176

Не уверен насчет количества ежедневных посещений, но вот несколько примеров крупных сайтов Django:

Вот ссылка на список сайтов с высоким трафиком Django на Quora .


107

Какой самый большой сайт сегодня построен на Джанго? (Я измеряю размер в основном по пользовательскому трафику)

В США это был Махало . Мне сказали, что они обрабатывают около 10 миллионов уникальных в месяц. Теперь, в 2019 году, Mahalo работает на Ruby on Rails.

За рубежом, сеть Globo (сеть новостных, спортивных и развлекательных сайтов в Бразилии); Alexa оценивает их в топ-100 по всему миру (в настоящее время около 80-го).

Другими известными пользователями Django являются PBS, National Geographic, Discovery, NASA (на самом деле ряд различных подразделений внутри NASA) и Библиотека Конгресса.

Может ли Django иметь дело с 100 тыс. Пользователей ежедневно, каждый из которых посещает сайт в течение нескольких часов?

Да, но только если вы правильно написали свое приложение и если у вас достаточно оборудования. Джанго не волшебная пуля.

Может ли такой сайт, как StackOverflow, работать на Django?

Да (но смотри выше).

Технологически легко: посмотрите на soclone за одну попытку. С точки зрения трафика, конкурирующие колышки StackOverflow менее 1 миллиона уникальных в месяц. Я могу назвать как минимум дюжину сайтов Django с большим трафиком, чем SO.


2
Можете ли вы оценить приблизительную цену для 5000 показов в секунду, полагая, что это похоже на проблему, используя Django. Предположим, что обычный программист создал сайт и, конечно, добавил кеширование. Предположим, что алгоритмы и т. Д. (Чтобы все было быстро) не используются, поскольку я их пока не знаю.
user2349115

5
@ user2349115 к тому времени, когда ваше приложение получит 5000 обращений в секунду, у вас будет достаточно базовых знаний, чтобы понять, почему это неправильный вопрос.
Kye R

Мои ниндзя (расширение браузера Wrapppalyzer) говорят, что махало рубин на рельсах, приведенных в действие в марте 2019 года.
Майлз Дэвис

87

Масштабирование веб-приложений - это не веб-фреймворки или языки, а ваша архитектура. Речь идет о том, как вы обрабатываете кеш браузера, кеш базы данных, как вы используете нестандартные поставщики персистентности (например, CouchDB ), как настроена ваша база данных и многое другое ...


Веб-рамки имеют значение! Посмотрите, насколько быстрый торнадо по сравнению с другими веб- структурами
Джошуа Партоги,

Я не понизил голос, но я полагаю, что вы немного отошли от темы, когда они обсуждали достоинства django, и вы не можете использовать каждую базу данных, настраивать свою базу данных и использовать couchdb на максимуме в каждой конкретной среде. Если вы не, конечно, переписать большие куски этого.
ZJR

8
@ ZLR я не верю, что ушел не по теме. Он спросил, может ли Django масштабироваться, я ответил да, потому что почти все современные веб-фреймворки, независимо от языка, могут масштабироваться, если вы используете правильный архитектурный подход
razenha

Да, блокировка против неблокирующего ввода-вывода имеет значение, как в примере с Tornado. Сказав это, Tornado не является веб-фреймворком, но ваше приложение должно быть написано так, чтобы использовать преимущества неблокирующего ввода-вывода.
Роб Грант

С Tornado очень легко писать блокирующий код ввода-вывода. И это не дает высокого параллелизма. Рамки на самом деле не имеют значения.
Шиплу Мокаддим

80

Немного играя адвоката дьявола:

Вам следует проверить выступление DjangoCon 2008 , предоставленное Кэлом Хендерсоном под названием «Почему я ненавижу Django», где он в значительной степени рассматривает все, чего не хватает Django, что вы, возможно, захотите сделать на веб-сайте с высоким трафиком. В конце дня вы должны принять все это с открытым сердцем , потому что это вполне возможно , чтобы написать Django приложений , что масштаб, но я думал , что это была хорошая презентация и отношение к вашему вопросу.


3
Кроме того, Flickr не был построен за день.
Дениз Доган

34
Оказывается , что некоторые из вопросов , C твердили на теперь стандартные функции: docs.djangoproject.com/en/dev/topics/db/multi-db
Дольф

51

Самый крупный сайт, посвященный джанго, о котором я знаю, - это « Вашингтон пост» , который, несомненно, будет указывать, что он может хорошо масштабироваться.

Хорошие дизайнерские решения, вероятно, оказывают большее влияние на производительность, чем что-либо еще. Twitter часто называют сайтом, который воплощает проблемы с производительностью в другой динамически интерпретируемой языковой веб-инфраструктуре, Ruby on Rails, однако инженеры Twitter заявляют, что эта среда не такая большая проблема, как некоторые из вариантов дизайна базы данных, которые они сделали на раннем этапе на.

Django очень хорошо работает с memcached и предоставляет некоторые классы для управления кешем, где вы сможете решить большинство проблем с производительностью. То, что вы поставляете по проводам, в реальности почти важнее, чем ваш бэкэнд - использование такого инструмента, как yslow, очень важно для высокопроизводительного веб-приложения. Вы всегда можете добавить больше оборудования на свой сервер, но вы не можете изменить пропускную способность своих пользователей.


1
Разве не только часть washingtonpost.com работает на Django? Frontpage Джанго , кажется, указывает , что это только projects.washingtonpost.com/congress
Сюн Chiamiov

3
Возможно, вы путаете «Вашингтон пост» с «Вашингтон таймс». Я верю, что «Таймс» посвящена Джанго, но это гораздо меньшая статья.
Илай

32

Я был на конференции EuroDjangoCon на прошлой неделе, и это было темой пары переговоров - в том числе от основателей крупнейшего сайта на основе Django, Pownce (слайды из одного выступления здесь ). Главное, что вам нужно беспокоиться не о Django, а о правильном кэшировании, балансировке нагрузки, оптимизации базы данных и т. Д.

Django на самом деле имеет хуки для большинства из этих вещей - кеширование, в частности, сделано очень легко.


24

Я уверен, что вы ищете более надежный ответ, но самая очевидная объективная проверка, о которой я могу подумать, заключается в том, что Google подталкивает Django к использованию со своей платформой App Engine . Если кто-то знает о масштабируемости и занимается ею на регулярной основе, это Google. Из того, что я прочитал, наиболее ограничивающим фактором, по-видимому, является серверная часть базы данных, поэтому Google использует свои собственные ...


Продвижение Django / Python может быть в большей степени связано с политикой Google по продвижению Python как его выбора «другого» языка после C ++?
GuruM

Когда я должен был использовать GAE, это было довольно близко к чему-то вроде Торнадо ...
Луис Масуэлли

18

Как указано в книге « High Performance Django Book и пройти через этого Кэла Хендерсона»

Смотрите дальнейшие детали, как указано ниже:

Нередко можно услышать, как люди говорят: «Джанго не масштабируется» . В зависимости от того, как вы на это смотрите, утверждение либо полностью верно, либо явно ложно. Джанго, само по себе, не масштабируется.

То же самое можно сказать о Ruby on Rails, Flask, PHP или любом другом языке, используемом динамическим веб-сайтом, управляемым базой данных.

Хорошая новость заключается в том, что Django прекрасно взаимодействует с набором инструментов для кэширования и балансировки нагрузки, которые позволят ему масштабировать столько трафика, сколько вы можете использовать.

Вопреки тому, что вы, возможно, читали в Интернете, это можно сделать без замены основных компонентов, часто помеченных как «слишком медленные», таких как база данных ORM или слой шаблонов.

Disqus обслуживает более 8 миллиардов просмотров страниц в месяц. Это огромные цифры.

Эти команды доказали, что Джанго, безусловно, масштабируется. Наш опыт в Lincoln Loop подтверждает это.

Мы создали большие сайты Django, способные провести день на домашней странице Reddit, не потревожившись.

Масштабные истории успеха Джанго почти слишком многочисленны, чтобы перечислять их на данный момент.

Он поддерживает Disqus, Instagram и Pinterest. Хотите еще доказательств? Instagram смог поддержать более 30 миллионов пользователей в Django с помощью только 3 инженеров (2 из которых не имели серверной разработки)


17

Сегодня мы используем много веб-приложений и сайтов для наших нужд. Большинство из них очень полезны. Я покажу вам некоторые из них, используемые Python или Django.

Вашингтон Пост

Сайт «Вашингтон Пост» - чрезвычайно популярный источник новостей в Интернете, сопровождающий их ежедневные газеты. Огромное количество просмотров и трафика легко обрабатывается веб-фреймворком Django. Washington Post - 52.2 million unique visitors (March, 2015)

НАСА

Официальный веб-сайт Национальной администрации по аэронавтике и исследованию космического пространства - это место, где можно найти новости, фотографии и видео о проводимых исследованиях космоса. Этот сайт Django может легко обрабатывать огромное количество просмотров и трафика. 2 million visitors monthly

Хранитель

The Guardian - британский новостной и медиа-сайт, принадлежащий Guardian Media Group. Он содержит почти все содержание газет The Guardian и The Observer. Эти огромные данные обрабатываются Django. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

YouTube

Мы все знаем, что YouTube - это место для загрузки видео о кошках и неудачи. Являясь одним из самых популярных веб-сайтов, он предоставляет нам бесконечные часы видео развлечений. Язык программирования Python поддерживает его и функции, которые мы любим.

DropBox

DropBox запустил революцию в онлайн-хранилище документов, ставшую частью повседневной жизни. Теперь мы храним почти все в облаке. Dropbox позволяет нам хранить, синхронизировать и делиться практически всем, используя возможности Python.

Обследование Обезьяны

Survey Monkey - крупнейшая онлайн-компания. Они могут обрабатывать более миллиона ответов каждый день на своем переписанном веб-сайте Python.

Quora

Quora - это место номер один в Интернете, где можно задать вопрос и получить ответы от сообщества людей. На их веб-сайте Python участники получают ответы, редактируют и организуют соответствующие результаты.

Bitly

Большая часть кода для сервисов и аналитики Bitly URL сокращается с помощью Python. Их сервис может обрабатывать сотни миллионов событий в день.

Reddit

Reddit известен как главная страница интернета. Это место в Интернете для поиска информации или развлечений на основе тысяч различных категорий. Посты и ссылки создаются пользователями и продвигаются наверх посредством голосов. Многие из возможностей Reddit полагаются на Python для их функциональности.

Hipmunk

Hipmunk - это онлайн-сайт для путешественников, который сравнивает лучшие туристические сайты, чтобы найти для вас лучшие предложения. Инструменты этого сайта Python позволяют вам найти самые дешевые отели и рейсы для вашего пункта назначения.

Нажмите здесь, чтобы узнать больше: 25 самых популярных сайтов с python-and-django , What-are-some-are-теле-сайты-работающие на Django


15

Я думаю, что мы могли бы также добавить приложение Apple от 2011 года, Instagram , в список, который интенсивно использует django.


12

Да, оно может. Это может быть Django с Python или Ruby on Rails. Это все еще будет масштабироваться.

Есть несколько разных техник. Во-первых, кеширование не масштабируется. У вас может быть несколько серверов приложений, сбалансированных с помощью nginx, в дополнение к аппаратным балансировщикам. Для масштабирования на стороне базы данных вы можете пойти довольно далеко с read slave в MySQL / PostgreSQL, если вы пойдете по пути RDBMS.

Вот некоторые хорошие примеры сайтов с интенсивным трафиком в Django:

  • Pownce когда они еще были там.
  • Discus (общий менеджер общих комментариев)
  • Все сайты, связанные с газетой: Washington Post и другие.

Вы можете чувствовать себя в безопасности.


2
Просто скажи ... мертвые социальные сети делают плохой пример масштабируемости :)
ZJR

3
Я не думаю, что Pownce dead связан с проблемой масштабируемости.
Кедаре

9

Вот список некоторых относительно громких вещей, построенных в Django:

  1. Приложение Guardian " Расследуй расходы своего депутата "

  2. Politifact.com (вот сообщение в блоге, рассказывающее о (положительном) опыте. Сайт получил Пулитцеровскую премию.

  3. Нью - Йорк Таймс Представляют приложение

  4. Everyblock

  5. Питер Харкинс, один из программистов в WaPo, перечисляет все материалы, которые они создали с Django, в своем блоге

  6. Он немного староват, но кто-то из LA Times дал общий обзор того, почему они пошли с Джанго.

  7. АВ Клуб Луков был недавно перемещен из (я думаю, Drupal) в Джанго.

Я полагаю, что число этих сайтов, вероятно, получает более 100 000 посещений в день. Django, конечно, может делать 100 тысяч хитов в день и больше. Но у YMMV есть ваш конкретный сайт в зависимости от того, что вы создаете.

Существуют варианты кэширования на уровне Django (например, кэширование наборов запросов и представлений в memcached может творить чудеса) и за его пределами (восходящие кэши, такие как Squid ). Спецификации сервера базы данных также будут иметь значение (и, как правило, место, чтобы разориться), а также то, насколько хорошо вы их настроили. Не думайте, например, что Django собирается правильно настроить индексы. Не думайте, что по умолчанию PostgreSQL или MySQL конфигурация является правильной.

Кроме того, у вас всегда есть возможность иметь несколько серверов приложений под управлением Django, если это медленная точка, с программным или аппаратным балансировщиком нагрузки впереди.

Наконец, вы размещаете статический контент на том же сервере, что и Django? Используете ли вы Apache или что-то вроде nginx или lighttpd ? Можете ли вы позволить себе использовать CDN для статического контента? Об этом стоит подумать, но все это очень умозрительно. 100 000 посещений в день - не единственная переменная: сколько вы хотите потратить? Какой опыт у вас есть для управления всеми этими компонентами? Сколько времени у вас есть, чтобы собрать все это вместе?


9

Сторонник разработчиков YouTube выступил с докладом о масштабировании Python на PyCon 2012 , который также имеет отношение к масштабированию Django.

У YouTube более миллиарда пользователей , а YouTube построен на Python.


3
Но YouTube не построен с Джанго. Python может быть быстрым, но не для Django.
Джошуа Партоги

4
Да, но суть в том, что по мере роста Django он закладывает хорошую основу для быстрого ре-факторинга, и с помощью Google, работающего над такими проектами, как Unladen Swallow, он станет еще лучше.
orokusaki

7

Я использую Django уже больше года и очень впечатлен тем, как ему удается сочетать модульность, масштабируемость и скорость разработки. Как и в случае с любой другой технологией, у нее есть кривая обучения. Тем не менее, эта кривая обучения стала намного менее крутой благодаря отличной документации сообщества Django. Джанго действительно хорошо справился со всем, что я в него бросил. Похоже, он сможет хорошо масштабироваться в будущем.

BidRodeo Penny Auctions - умеренный по размеру сайт на Django. Это очень динамичный веб-сайт, который обрабатывает большое количество просмотров страниц в день.


6

Обратите внимание, что если вы ожидаете 100 тыс. Пользователей в день, которые активны в течение нескольких часов за раз (то есть максимум 20 тыс. + Одновременных пользователей), вам потребуется МНОГО серверов. У SO ~ 15 000 зарегистрированных пользователей, и большинство из них, вероятно, не активны ежедневно. Хотя основная часть трафика поступает от незарегистрированных пользователей, я предполагаю, что очень немногие из них остаются на сайте дольше пары минут (т.е. следуют за результатами поиска в Google, а затем уходят).

Для этого объема ожидайте, по крайней мере, 30 серверов ... что по-прежнему достаточно 1000 одновременных пользователей на сервер.


2
Из подкаста видно, что SO использует всего 3 сервера. Но SO построен с использованием C #, а не Python, поэтому он разрывается.
S.Lott

1
Очевидно, вопрос будет такой: насколько они мощные серверы?
mamcx

6

Какой самый большой сайт сегодня построен на Джанго? (Я измеряю размер в основном по трафику пользователя) Pinterest
disqus.com
Подробнее здесь: https://www.shuup.com/ru/blog/25-of-the-most-popular-python-and-django-websites/

Может ли Django иметь дело со 100 000 пользователей ежедневно, каждый из которых посещает сайт в течение нескольких часов?
Да, но используйте правильную архитектуру, дизайн базы данных, использование кэша, используйте балансировки нагрузки и несколько серверов или узлов

Может ли сайт наподобие Stack Overflow работать на Django?
Да просто нужно следовать ответу, указанному во 2-м вопросе


5

Другой пример - rasp.yandex.ru, российский сервис расписаний перевозок. Его посещаемость удовлетворяет вашим требованиям.


5

Если у вас есть сайт со статическим контентом, то добавьте Varnish сервера впереди значительно повысит вашу производительность. Даже один блок может легко выплеснуть 100 Мбит / с трафика.

Обратите внимание, что с динамическим контентом использование чего-то вроде Varnish становится намного сложнее.


1
Проблема здесь в том, что лак значительно повысит производительность всего. А более быстрые фреймворки все равно будут быстрее.
ZJR

5

Мой опыт работы с Django минимален, но я помню, что в Книге Django есть глава, где они берут интервью у людей, работающих с некоторыми из более крупных приложений Django. Вот ссылка. Я думаю, что это может дать некоторые идеи.

В нем говорится, что curse.com является одним из крупнейших приложений Django с 60-90 миллионами просмотров страниц в месяц.


1
URL-адреса curse.com теперь заканчиваются на .aspx ... (не знаю, разработают ли они их)
ZJR

5

Я разрабатываю сайты с большим трафиком, используя Django для национального вещателя в Ирландии. Это хорошо работает для нас. Разработка высокопроизводительного сайта - это больше, чем просто выбор фреймворка. Фреймворк будет только одной частью системы, которая настолько же сильна, насколько это ее самое слабое звено. Использование последней платформы X не решит проблемы с производительностью, если проблема связана с медленными запросами к базе данных или плохо настроенным сервером или сетью.


4

Несмотря на то, что здесь было много хороших ответов, я просто хочу указать, что никто не сделал упор на ...

Это зависит от приложения

Если ваше приложение работает с небольшими записями, то есть вы читаете намного больше данных из БД, чем пишете. Тогда масштабирование django должно быть довольно тривиальным, черт возьми, оно поставляется с довольно приличным кэшированием вывода / представления прямо из коробки. Воспользуйтесь этим, и, скажем, перенаправьте в качестве поставщика кеша, поставьте перед ним балансировщик нагрузки, раскрутите n-экземпляры, и вы сможете справиться с ОЧЕНЬ большим объемом трафика.

Теперь, если вам нужно сделать тысячи сложных записей в секунду? Другая история. Джанго будет плохим выбором? Ну, не обязательно, зависит от того, как вы действительно разрабатываете свое решение, а также от того, каковы ваши требования.

Просто мои два цента :-)



3

Проверьте этот микро агрегатор новостей под названием EveryBlock .

Это полностью написано на Джанго. На самом деле это люди, которые разработали саму структуру Django.


Everyblock.com выбрасывает 503
Nishant Nawarkhede

3

Проблема не в том, может ли django масштабироваться или нет.

Правильный путь - это понять и узнать, какие шаблоны проектирования сети и инструменты использовать в проекте django / symfony / rails для хорошего масштабирования.

Некоторые идеи могут быть:

  • Мультиплексирование.
  • Обратный прокси. Пример: Nginx, Лак
  • Memcache Session. Пример: Redis
  • Кластеризация вашего проекта и базы данных для балансировки нагрузки и отказоустойчивости: Пример: Docker
  • Используйте третье лицо для хранения активов. Пример: Amazon S3

Надеюсь, это поможет немного. Это моя крошечная скала на гору.


3

Если вы хотите использовать открытый исходный код, есть много вариантов для вас. Но Python - лучший среди них, так как у него много библиотек и супер классное сообщество. Вот несколько причин, которые могут изменить ваше мнение:

  • Python очень хорош, но это интерпретируемый язык, который делает его медленным. Но есть много служб ускорения и кэширования, которые частично решают эту проблему.

  • Если вы думаете о быстрой разработке, то Ruby on Rails является лучшим среди всех. Основной девиз этого (ROR) фреймворка заключается в том, чтобы предоставить разработчикам комфортный опыт. Если вы сравниваете Ruby и Python, оба имеют почти одинаковый синтаксис.

  • Google App Engine - это очень хороший сервис, но он будет связывать вас своими возможностями, у вас нет шансов экспериментировать с новыми вещами. Вместо этого вы можете использовать облако Digital Ocean, которое за простейшую капельку будет брать всего 5 долларов в месяц . Heroku - это еще один бесплатный сервис, где вы можете развернуть свой продукт.

  • Да! Да! То, что вы слышали, совершенно правильно, но вот несколько примеров, которые используют другие технологии

    • Рельсы: Github, Twitter (ранее), Shopify, Airbnb, Slideshare, Heroku и т. Д.
    • PHP: Facebook, Википедия, Flickr, Yahoo, Tumbler, Mailchimp и т. Д.

Заключение - это основа, или язык не сделает все за вас. Лучшая архитектура, дизайн и стратегия обеспечат вам масштабируемый веб-сайт. Instagram - самый большой пример, эта маленькая команда управляет такими огромными данными. Вот один блог о его архитектуре должен прочитать его.


Развитие Django может быть очень быстрым. Django - это веб-фреймворк для перфекционистов с установленными сроками.
Les

3

Я не думаю, что проблема действительно в масштабировании Django.

Я действительно предлагаю вам взглянуть на свою архитектуру, и это поможет вам с вашими потребностями в масштабировании. Если вы ошибаетесь, нет никакого смысла в том, насколько хорошо работает Django. Производительность! = Масштаб. У вас может быть система, которая имеет потрясающую производительность, но не масштабируется, и наоборот.

Связана ли база данных вашего приложения? Если это так, то ваши проблемы масштаба также лежат там. Как вы планируете взаимодействовать с базой данных от Django? Что происходит, когда ваша база данных не может обрабатывать запросы так быстро, как Django принимает их? Что происходит, когда ваши данные перерастают одну физическую машину. Вы должны учитывать, как вы планируете справляться с этими обстоятельствами.

Кроме того, что происходит, когда ваш трафик перерастает один сервер приложений? то, как вы обрабатываете сеансы в этом случае, может быть сложным, чаще всего вам, вероятно, потребуется архитектура без общего доступа. Опять же, это зависит от вашего приложения.

В коротких языках это не то, что определяет масштаб, язык отвечает за производительность (опять же, в зависимости от ваших приложений, разные языки работают по-разному). Ваш дизайн и архитектура делают масштабирование реальностью.

Надеюсь, это поможет, будем рады помочь, если у вас есть вопросы.


2

Равномерное распределение задач, короче говоря, оптимизация каждого аспекта, включая БД, Файлы, Изображения, CSS и т. Д., И балансировка нагрузки с несколькими другими ресурсами необходима, когда ваш сайт / приложение начинает расти. ИЛИ вы делаете больше места для его роста. Внедрение новейших технологий, таких как CDN, Cloud обязательно с огромными сайтами. Простая разработка и настройка приложения не принесет вам процентов, остальные компоненты также играют важную роль.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.