Рубрики
Без рубрики

Масштабирование Джанго: базовые концепции

Для масштабирования чего -либо сначала нам нужно правильно и ясно получить концепции, мы делаем это в этом посте, чтобы у нас была хорошая основа. Tagged с помощью Django, Python, Scalability, Concepts.

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

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

Базовые концепции

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

Масштабируемость

Масштабируемость – это способность системы или процесса обрабатывать растущий объем работы или ее потенциал, который будет расширен, чтобы приспособить ее к

  • Википедия

Это означает, что объем работы, обработанная системой, должен расти пропорционально тем, сколько она увеличена, например, если у меня есть кассир в банке, и что кассир может обслуживать 10 человек в минуту, если я добавлю Еще один кассир в моей системе, он должен быть в состоянии подать по праву 20 человек в минуту в зависимости от обучения другого кассира и некоторых других условий. К счастью, серверы более гомогенизируются, чем способности людей, для серверов или приложений, если у меня есть услуга, которая обрабатывает 1000 запросов в минуту, если я добавлю еще один экземпляр того же услуги, я должен обрабатывать 2000 запросов в минуту.

Спектакль

Производительность компьютера это объем работы, выполняемый компьютерной системой.

  • Википедия

Обычно вы хотите измерить производительность с помощью некоторой метрики, например:

  • Время ответа: который вы хотите свести к минимуму
  • Пропускная способность: Пропускная пропускная способность – это скорость обработки, которую вы хотите максимизировать
  • Использование ресурсов: что вы хотите свести к минимуму, вы хотите достичь большего с меньшим количеством
  • Доступность: Вы хотите максимизировать свое время работы

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

Парето принцип

Это на самом деле не концепция, но невероятно, как все так получается так. Принцип Парето указывает, что следует:

Для многих событий примерно 80% последствий поступают от 20% причин

Например, 80% работы будут выполняться в 20% случаев, остальные 80% будут потрачены на небольшие проблемы или небольшую тангенциальную работу, не связанную непосредственно с основной целью. 80% ошибок вызваны 20% кода, и, в этом случае, 80% воздействия на производительность вызвано 20% проблем.

Это интересно, потому что это заставляет вас видеть, что не все проблемы влияют на производительность вашей системы одинаково, есть некоторые проблемы, которые являются более серьезными и не обязательно одинаковыми проблемами в другом проекте, повлияют на нее одинаково. Найдите это на 20% и получите 80% на производительность, звучит легко, верно?, Но это не так.

Вынос

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

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

Ресурсы:

Не забудьте следовать за мной, я тоже в Твиттере: https://twitter.com/iferminm

Оригинал: “https://dev.to/iferminm/scaling-django-part-1-basic-concepts-3a25”