Чи масштабує Джанго? [зачинено]


1135

Я будую веб-додаток з Django. Причини, які я вибрав Джанго, були:

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

Тепер, коли я наближаюся до роздумів про публікацію своєї роботи, я починаю турбуватися про масштаб. Єдина інформація, яку я знайшла щодо можливостей масштабування Джанго, надається командою Джанго (я не кажу нічого, щоб їх зневажати, але це явно не об'єктивна інформація ...).

Мої запитання:

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

2
Якщо ви ще цього не зробили, рекомендую ознайомитись із розділом про масштабування у книзі «Джанго»: djangobook.com/en/1.0/chapter20 Або в новій версії: djangobook.com/uk/2.0/chapter12
monkut

15
Можливо, хочете виправити "швидкість була головним фактором", щоб уточнити, чи говорите ви про швидкість виконання або зусилля з розробки. Це звучить як зусилля з розвитку, що має сенс.
С.Лотт

6
Було б цікаво порівняти це з RoR.
Козярчук

6
@ ajkumar25, дискусія AFAIK використовує django blog.disqus.com/post/62187806135/… .
alxs

6
питання має бутиwhat's the cost of scaling in the Django?
Славомір Ленарт

Відповіді:


932
  1. "Які найбільші сайти, побудовані на Django сьогодні?"

    Немає жодного місця, яке збирає інформацію про трафік на сайтах, побудованих у Джанго, тому мені доведеться зробити це на ньому, використовуючи дані з різних місць. Спочатку у нас є список сайтів Django на головній сторінці основної сторінки проекту Django, а потім список сайтів, побудованих у Django, на djangosites.org . Переглядаючи списки та вибираючи деякі, на які я знаю, мають гідний трафік, який ми бачимо:

  2. "Чи може Джанго мати справу з 100 000 користувачів щодня, кожен відвідуючи сайт за пару годин?"

    Так, див. Вище.

  3. "Чи може такий сайт, як переповнення стека, працювати на Django?"

    Моє відчуття кишки - так, але, як відповіли інші, і Майк Малоун згадує у своїй презентації, дизайн бази даних є критичним. Сильний доказ може бути також знайдений на www.cnprog.com, якщо ми зможемо знайти будь-які надійні статистики руху. У всякому разі, це не просто щось, що станеться, зібравши купу моделей Django :)

Звичайно, є ще багато цікавих сайтів та блогерів, але я мушу десь зупинитися!


Повідомлення в блозі про використання Django для створення сайту з високим трафіком michaelmoore.com описується як 10 000 найпопулярніших веб-сайтів . Статистика квантів та статистика конкуренції .


(*) Автор редакції, включаючи таку довідку, використовувався для роботи в якості проекту, що розроблявся в аутсорсингу.


267

Зараз ми робимо тестування навантаження. Ми думаємо, що ми можемо підтримувати 240 одночасних запитів (стійкий показник 120 звернень в секунду 24x7) без істотного погіршення продуктивності сервера. Це було б 432 000 хітів на годину. Часи реакції не малі (наші трансакції великі), але немає погіршення нашої базової продуктивності, оскільки навантаження збільшується.

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

Ми всі в одному VM на 64-розрядному Dell з (я думаю) 32 Гб оперативної пам’яті.

Оскільки продуктивність майже однакова для 20 або 200 одночасних користувачів, нам не потрібно витрачати величезну кількість часу на "налаштування". Натомість нам просто потрібно підтримувати нашу базову продуктивність завдяки звичайним поліпшенням продуктивності SSL, звичайному проектуванню та впровадженню бази даних (індексація тощо), покращенню продуктивності брандмауера тощо.

Ми вимірюємо те, що наші ноутбуки для перевірки навантажень борються за божевільний робочий набір 15 процесів, що виконують 16 одночасних ниток запитів.


3
Також цікаво: чи працює ваша БД на одній машині чи на окремому сервері?
Джаррет Харді

16
Один VM з Apache, Django та MySQL. mod_wsgi. RHEL.
С.Лотт

4
Будь-яке оновлення показників ефективності?
SexyBeast

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

2
Я працював з Джанго роками, і ніколи не бачив подібного виступу ні в чому іншому, крім іграшкового додатка, в основному лише для читання. Яка природа вашої заявки? Все, що має шаблони, середнє програмне забезпечення, сеанси чи підключення до бази даних, ніколи не підтримуватиме 120 звернень за секунду без величезної кількості кешування, щоб обійти все це.
Серін

176

Не впевнений у кількості щоденних відвідувань, але ось кілька прикладів великих веб-сайтів Django:

Ось посилання на список сайтів Джанго з високим трафіком у Quora .


107

Який "найбільший" сайт, який сьогодні створений на Django? (Я вимірюю розмір переважно за трафіком користувача)

У США це був Махало . Мені кажуть, що вони обробляють приблизно 10 мільйонів унікальних матеріалів на місяць. Тепер, у 2019 році, Mahalo працює від Ruby on Rails.

За кордоном, Глобо мережа (мережа сайтів новин, спорту та розваг у Бразилії); Alexa входить у топ-100 у всьому світі (близько 80-го на даний момент).

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

Чи може Django мати справу з 100 тисячами користувачів щодня, кожен відвідуючи сайт за пару годин?

Так - але тільки якщо ви правильно написали заявку та якщо у вас є достатня кількість обладнання. Джанго - це не чарівна куля.

Чи може такий сайт, як StackOverflow, працювати на Django?

Так (але див. Вище).

Технологічно, легко: дивіться соклон за одну спробу. Конкурентоспроможний StackOverflow становить менш ніж 1 мільйон одиниць на місяць. Я можу назвати принаймні десяток сайтів Джанго з більшим трафіком, ніж ТАК.


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

5
@ user2349115 до моменту, коли ваша програма отримує 5000 "звернень за секунду", у вас буде достатньо фонових знань, щоб зрозуміти, чому це неправильне питання.
Kye R

Мої ніндзя (розширення браузера wrappalyzer) кажуть, що махало рубіном на рейках, що працюють зараз у березні 2019 року.
Майлз Девіс,

87

Масштабування веб-додатків не стосується веб-рамок чи мов, а вашої архітектури. Йдеться про те, як ви керуєте кеш-пам’яткою веб-переглядача, кешем вашої бази даних, як використовуєте нестандартні постачальники стійкості (наприклад, CouchDB ), як налаштована ваша база даних та багато іншого…


Веб-рамки мають значення! Подивіться, як швидкий торнадо порівняно з іншими веб-рамками python: tornadoweb.org/documentation#performance
Джошуа Партогі,

Я не став голосом, але, мабуть, ви трохи пішли з теми, оскільки там, де обговорюються достоїнства джанго, і ви не можете використовувати кожну базу даних, налаштуйте свою базу даних і використовуйте couchdb на максимум у кожному заданому рамках. Якщо, звичайно, не перепишеш великі шматки цього.
ZJR

8
@ZLR Я не вірю, що я пішов на тему. Він запитав, чи може Джанго масштабувати, я відповів "так", тому що майже всі сучасні веб-рамки, незалежно від мови, можуть
змінювати

Так, блокування проти розблокування IO має значення, згідно з прикладом Tornado. Незважаючи на це, Tornado не є веб-рамкою, але ваша програма повинна бути написана таким чином, щоб скористатися неблокуючим IO.
Роб Грант

З Tornado дуже легко написати блокуючий код IO. І це не дає високої конкурентоспроможності. Рамка насправді не має значення.
Шиплу Мокаддім

80

Трохи граючи в захисника диявола:

Ви повинні перевірити DjangoCon 2008 Keynote , доставлений на Cal Henderson , під назвою «Чому я ненавиджу Джанго» , де він в значній мірі переходить всі Джанго не вистачає , що ви можете зробити в високому сайті руху. В кінці дня ви повинні прийняти всі це з відкритим серцем , бо це цілком можливо , щоб написати Django додатків , що масштаб, але я думав , що це була хороша презентація і ставлення до вашого запитання.


3
Крім того, Flickr не був побудований за день.
Деніз Доган

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

51

Найбільший сайт про джанго, про який я знаю, - це Washington Post , що, безумовно, вказує на те, що воно може добре масштабуватися.

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

Django дуже добре працює з запам’ятовується і надає деякі класи керування кешем, саме там ви вирішите більшість проблем зі своєю ефективністю. Те, що ви надаєте на проводці, є майже важливішим, ніж ваш бекенд в реальності - використання інструменту, як yslow, є критичним для високопродуктивного веб-додатка. Ви завжди можете кидати більше обладнання на свій бекенд, але ви не можете змінити пропускну здатність користувачів.


1
Чи не лише частина washingtonpost.com працює на Django? Frontpage Джанго , здається, вказує , що це тільки projects.washingtonpost.com/congress
Сюн Chiamiov

3
Ви, можливо, плутаєте газету Washington Post з Washington Times. Я вважаю, що "Таймс" весь на Django, але це набагато менший папір.
Елі

32

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

Django насправді має гачки для більшості цих речей - кешування, зокрема, робиться дуже просто.


24

Я впевнений, що ви шукаєте більш ґрунтовну відповідь, але найочевидніша обгрунтована валідація, яку я можу придумати, - це те, що Google підштовхує Django для використання зі своєю основою App Engine . Якщо хтось про це знає і регулярно займається масштабуванням, це Google. З того, що я прочитав, найбільш обмежуючим фактором, здається, є база даних, тому Google використовує їх власний ...


Популяризація Django / Python може бути більше пов’язана з політикою Google щодо просування програми Python як її вибору "іншої" мови після C ++?
ГуруМ

Коли мені довелося користуватися GAE, це було досить близько до чогось на зразок Торнадо ...
Луїс Масуеллі

18

Як зазначено у книзі " Джанго з високою ефективністю " та пройдись цим Кал Хендерсон

Дивіться подальші деталі, як згадано нижче:

Не рідкість чути, як люди говорять: "Джанго не масштабує" . Залежно від того, як ви на це дивитесь, твердження є або повністю правдивим, або явно хибним. Джанго, сам по собі, не масштабується.

Те саме можна сказати про Ruby on Rails, Flask, PHP або будь-яку іншу мову, що використовується динамічним веб-сайтом, керованим базами даних.

Хороша новина, однак, полягає в тому, що Джанго прекрасно взаємодіє з набором інструментів для кешування та балансування завантаження, які дозволять йому масштабувати стільки трафіку, скільки ви можете кинути на нього.

На відміну від того, що ви, можливо, читали в Інтернеті, це можна зробити, не замінюючи основні компоненти, які часто позначаються як "занадто повільні", такі як ORM бази даних або шар шаблону.

Щомісяця Disqus обслуговує понад 8 мільярдів переглядів сторінок. Це величезна кількість.

Ці команди довели, що Джанго, безумовно, має масштаб. Наш досвід тут у Lincoln Loop підкріплює це.

Ми створили великі сайти Django, здатні провести день на домашній сторінці Reddit, не порушуючи поту.

Історії успішного масштабування Джанго майже занадто численні, щоб перерахувати на даний момент.

Він підтримує Disqus, Instagram та Pinterest. Хочете ще якийсь доказ? Instagram зміг підтримати понад 30 мільйонів користувачів на Django лише з трьома інженерами (2 з яких не мали заднього розвитку


17

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

Washington Post

Веб-сайт Washington Post - це надзвичайно популярне інтернет-джерело новин, яке супроводжує їх щоденні газети. Його величезна кількість переглядів та трафіку легко обробляються веб-рамкою Django. Washington Post - 52.2 million unique visitors (March, 2015)

НАСА

Офіційний веб-сайт Національної адміністрації з питань аеронавтики та космосу - це місце, де можна знайти новини, фотографії та відео про їх постійні дослідження космосу. Цей веб-сайт Django може легко обробляти величезну кількість переглядів та трафіку. 2 million visitors monthly

Опікун

The Guardian - британський веб-сайт з питань новин та ЗМІ, що належить Media Guard 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 - це місце номер один в Інтернеті, щоб задати питання та отримати відповіді від спільноти людей. На їхньому веб-сайті Python ці члени спільноти відповідають, редагують та організовують відповідні результати.

Трохи

Більшість кодів для служб скорочення URL-адрес і аналітики створені за допомогою Python. Їх служба може обробляти сотні мільйонів подій на день.

Reddit

Reddit відомий як головна сторінка Інтернету. Це місце в Інтернеті для пошуку інформації або розваг, заснованих на тисячах різних категорій. Повідомлення та посилання створюються користувачем та просуваються до вершини голосами. Багато можливостей Reddit покладаються на Python за своєю функціональністю.

Гіпмун

Hipmunk - це веб-сайт для подорожей споживачів, який порівнює найкращі сайти подорожей, щоб знайти найкращі пропозиції. Цей інструмент веб-сайту Python дозволяє вам знайти найдешевші готелі та квитки до місця призначення.

Клацніть тут, щоб отримати більше: 25-з найпопулярніших веб-сайтів python-and-django , Що-які-які-відомі-сайти, що працюють-на-Django


15

Я думаю, що ми можемо також додати додаток Apple року на 2011 рік, Instagram , до списку, який інтенсивно використовує джанго.


12

Так, це може. Це може бути Джанго з Python або Ruby on Rails. Це все одно буде масштабуватися.

Існує небагато різних методик. По-перше, кешування не є масштабуванням. У вас може бути кілька серверів додатків, врівноважених nginx як передня частина, крім апаратних балансирів. Для масштабування на базі даних ви можете зайти досить далеко з підчиненим зчитуванням в MySQL / PostgreSQL, якщо підете шляхом RDBMS.

Деякі хороші приклади веб-сайтів з великим заторим у Django можуть бути:

  • Порох, коли вони ще були там.
  • Обговорення (загальний менеджер спільних коментарів)
  • Всі веб-сайти, пов’язані з газетою: Washington Post та інші.

Ви можете відчувати себе в безпеці.


2
Скажімо просто ... мертві соціальні мережі роблять поганий приклад масштабування :)
ZJR

3
Я не думаю, що мертві порошки не пов'язані з проблемою масштабованості.
Kedare

9

Ось перелік деяких досить гучних речей, побудованих у Django:

  1. Додаток Guardian " Розслідуйте витрати вашого депутата "

  2. Politifact.com (ось повідомлення в блозі, що розповідає про (позитивний) досвід. Сайт виграв Пулітцера.

  3. Додаток NY Times ' представляти

  4. EveryBlock

  5. Пітер Гаркінс, один із програмістів WaPo, перераховує у своєму блозі всі речі, які вони створили з Django

  6. Це трохи старенько, але хтось із LA Times дав базовий огляд того, чому вони поїхали з Джанго.

  7. AV-клуб Onion нещодавно був переведений з (я думаю, Drupal) в Джанго.

Я думаю, що кількість цих сайтів, мабуть, отримує понад 100 к + звернень на день. Джанго, безумовно, може робити 100-кілометровий хіт на день і більше. Але YMMV в отриманні вашого конкретного сайту там, залежно від того, що ви будуєте.

Існують варіанти кешування на рівні Джанго (наприклад, кешування наборів запитів та представлень у складених файлах може творити чудеса) та за їх межами (кеш-пам’яті вище, як Squid ). Технічні характеристики сервера баз даних також будуть фактором (і зазвичай це місце розвіватися), як і наскільки ви його настроїли. Не припускайте, наприклад, що Django збирається правильно встановити індекси. Не вважайте, що конфігурація PostgreSQL або MySQL за замовчуванням є правильною.

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

Нарешті, ви подаєте статичний вміст на тому ж сервері, що і Django? Ви використовуєте Apache або щось на кшталт nginx або lighttpd ? Чи можете ви дозволити собі використовувати CDN для статичного вмісту? Це речі, над якими варто задуматися, але це все дуже умоглядно. 100 к.т. / день - не єдина змінна: скільки ви хочете витратити? Скільки досвіду у вас є управління всіма цими компонентами? Скільки часу у вас є, щоб зібрати все це разом?


9

Адвокат розробника для YouTube розповів про масштабування Python на PyCon 2012 , що також стосується масштабування Django.

YouTube має більше мільярда користувачів , а YouTube побудований на Python.


3
Але ютуб не будується з джанго. Python може бути швидким, але це не так для django.
Джошуа Партогі

4
Так, але справа в тому, що в міру зростання Джанго він сидить на доброму фундаменті для швидкого перерахунку факторів, і з Google там, що працює над такими проектами, як "Ластівка без навантаження", це просто покращиться.
orokusaki

7

Я використовую Django вже більше року, і мене дуже вражає те, як йому вдається поєднати модульність, масштабованість та швидкість розвитку. Як і будь-яка технологія, вона поставляється з кривою навчання. Однак ця крива навчання робиться набагато менш крутою завдяки чудовій документації спільноти Джанго. Джанго вмів добре реагувати на все, що я кинув на це. Схоже, він зможе добре розширити масштаби в майбутньому.

BidRodeo Penny Auctions - це веб-сайт середнього розміру, що працює на Django. Це дуже динамічний веб-сайт, який може обробляти велику кількість переглядів сторінок на день.


6

Зауважте, що якщо ви очікуєте 100K користувачів на день, які є активними годинами часу (максимум 20K + одночасних користувачів), вам знадобиться багато серверів. SO має близько 15 000 зареєстрованих користувачів, і більшість з них, ймовірно, не працюють щодня. Хоча основна частина трафіку надходить від незареєстрованих користувачів, я здогадуюсь, що дуже небагато з них залишаються на сайті більше пари хвилин (тобто вони слідкують за результатами пошуку Google, а потім залишають).

На цей обсяг очікуйте щонайменше 30 серверів ... що все ще досить важка 1000 одночасних користувачів на сервері.


2
З подкасту виходить, що SO використовує всього 3 сервери. Але ТАК побудований за допомогою C #, а не Python, тому він зірве.
С.Лотт

1
Очевидно, питання буде таким: наскільки потужними вони є сервери?
mamcx

6

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

Чи може Django мати справу з 100 000 користувачів щодня, кожен відвідуючи сайт за пару годин?
Так, але використовуйте належну архітектуру, дизайн бази даних, використання кешу, використовуйте баланси навантаження та декілька серверів або вузлів

Чи може такий сайт, як Stack Overflow, працювати на Django?
Так, просто потрібно слідувати відповіді, зазначеній у другому питанні


5

Інший приклад - rasp.yandex.ru, послуга російського транспортного розкладу. Її відвідуваність відповідає вашим вимогам.


5

Якщо у вас є сайт з деяким статичним вмістом, розміщення сервера Varnish попереду значно збільшить вашу ефективність. Навіть один ящик може легко виплюнути 100 Мбіт / с трафіку.

Зауважте, що з динамічним контентом використання чогось подібного до лаку стає набагато складнішим.


1
Проблема тут полягає в тому, що лак різко підвищить продуктивність всього. І швидші рамки все одно будуть швидшими.
ZJR

5

Мій досвід роботи з Джанго мінімальний, але я пам’ятаю, що у книзі «Джанго» у них є глава, де вони опитують людей, які працюють із деякими більшими програмами Джанго. Ось посилання. Я думаю, це могло б дати деяку інформацію.

У ньому йдеться про curse.com - одне з найбільших додатків Django, яке за місяць складає близько 60-90 мільйонів переглядів сторінок.


1
URL-адреси curse.com зараз закінчуються .aspx ... (не знаю, якщо вони їх
майструють

5

Я розробляю сайти з високим трафіком, використовуючи Django для національного мовника в Ірландії. Це добре працює для нас. Розробка сайту з високою продуктивністю - це більше, ніж просто вибір рамки. Рамка буде лише тією частиною системи, яка настільки сильна, як і її найслабша ланка. Використання останньої рамки "X" не вирішить ваші проблеми з продуктивністю, якщо проблема полягає в повільних запитах до бази даних або неправильно налаштованому сервері чи мережі.


4

Хоча тут було дуже багато чудових відповідей, я просто хочу зазначити, що ніхто не робив акцент на цьому.

Це залежить від програми

Якщо у вашій програмі програма записується, так як ви читаєте в БД набагато більше даних, ніж ви пишете. Тоді масштабування джанго має бути досить тривіальним, чорт забирає, воно має дещо пристойний кешування виводу / перегляду прямо з поля. Скористайтеся цим і, скажімо, перепрофілюйте як постачальник кеш-пам'яті, поставте перед ним балансир навантаження, розгорніть n-екземпляри, і ви повинні мати можливість справлятися з ДУЖЕ великою кількістю трафіку.

Тепер, якщо вам доведеться робити тисячі складних записує секунду? Інша історія. Чи стане Джанго поганим вибором? Ну, не обов'язково, залежить від того, наскільки ви архітектурно вирішите своє рішення, а також, які ваші вимоги.

Всього два мої центи :-)




3

Проблема не в тому, щоб знати, чи може джанго масштабувати чи ні.

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

Деякі ідеї можуть бути:

  • Мультиплексування.
  • Перевернутий проксі. Наприклад: Nginx, лак
  • Сесія "Мемкаче". Наприклад: Redis
  • Кластеризація вашого проекту та db для балансування навантаження та відмовостійкості: Наприклад: Docker
  • Використовуйте сторонні сторони для зберігання активів. Наприклад: Amazon S3

Сподіваюсь, це трохи допоможе. Це моя крихітна скеля на гору.


3

Якщо ви хочете використовувати Open Source, то для вас є багато варіантів. Але python є найкращим серед них, оскільки він має багато бібліотек і надзвичайно дивовижну спільноту. Ось кілька причин, які можуть змінити вашу думку:

  • Python дуже хороший, але це інтерпретована мова, що робить його повільним. Але є багато служб прискорення та кешування, які частково вирішують цю проблему.

  • Якщо ви думаєте про швидкий розвиток, то Ruby on Rails найкраще серед усіх. Основним девізом цієї рамки (ROR) є надання комфортного досвіду розробникам. Якщо порівнювати Ruby та Python, обидва мають майже однаковий синтаксис.

  • Google App Engine - це дуже хороший сервіс, але він прив’яже вас до своєї сфери, ви не отримаєте шансів експериментувати з новими речами. Замість нього ви можете використовувати хмару Digital Ocean, яка за свою найпростішу крапельку займе лише $ 5 / місяць . Heroku - це ще один безкоштовний сервіс, де ви можете розгорнути свій продукт.

  • Так! Так! Те, що ви чули, є абсолютно правильним, але ось кілька прикладів, які використовують інші технології

    • Рейки: Github, Twitter (раніше), Shopify, Airbnb, Slideshare, Heroku тощо
    • PHP: Facebook, Wikipedia, Flickr, Yahoo, Tumbler, Mailchimp тощо

Висновок - це рамка чи мова не зробить все для вас. Краща архітектура, дизайн та стратегія дадуть вам масштабований веб-сайт. Instagram - найбільший приклад, ця маленька команда управляє такими величезними даними. Ось один блог про його архітектуру повинен прочитати.


Розвиток джанго може бути дуже швидким. Django - веб-рамка для перфекціоністів із строками.
les

3

Я не думаю, що проблема стосується масштабування Джанго.

Я дійсно пропоную поглянути на свою архітектуру, саме це допоможе вам у ваших потребах масштабування. Якщо ви помилитесь, немає сенсу в тому, наскільки добре працює Джанго. Продуктивність! = Масштаб. Ви можете мати систему, яка має дивовижні показники, але не масштабує і навпаки.

Чи пов’язана база даних ваших додатків? Якщо це, то ваші питання щодо масштабів лежать і там. Як ви плануєте взаємодія з базою даних від Django? Що відбувається, коли база даних не може обробляти запити так швидко, як Django їх приймає? Що відбувається, коли ваші дані переростають одну фізичну машину. Вам потрібно пояснити, як ви плануєте вирішувати ці обставини.

Крім того, що відбувається, коли ваш трафік перевищує один сервер додатків? те, як ви обробляєте сеанси, у цьому випадку може бути складним, частіше за все, вам, мабуть, потрібна архітектура спільного нічого. Знову ж це залежить від вашої заявки.

Коротше кажучи, мова не є тим, що визначає масштаб, мова відповідає за продуктивність (знову ж таки, залежно від ваших програм, різні мови працюють по-різному). Саме ваш дизайн та архітектура робить масштабування реальністю.

Я сподіваюся, що це допомагає, я б радив допомогти далі, якщо у вас виникнуть запитання.


2

Равномірний розподіл завдань, коротко оптимізуючи кожен аспект, включаючи БД, файли, зображення, CSS тощо та балансуючи навантаження з кількома іншими ресурсами, необхідний, коли ваш сайт / додаток починає зростати. АБО ви зробите трохи більше місця для його зростання. Впровадження новітніх технологій, таких як CDN, Cloud, є обов'язковим на величезних сайтах. Лише розробка та налаштування програми не дасть вашому відсотковому задоволенню, інші компоненти також відіграють важливу роль.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.