В широком понимании Highload - это способность сайта выдерживать большие нагрузки. 

Highload — крайне относительное понятие. Нет ни методики ни чисел, никогда не измеряется количеством запросов или скоростью работы сайта. Для каждого проекта данные показатели индивидуальны. Все сайты специфичны и одинаковое количество запросов может приводить к совершенно разным нагрузкам на разные ресурсы.

 

Как ведет себя сайт, который не справляется с нагрузками? 

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

  • сайт "падает", страницы загружаются медленно или вовсе не загружаются
  • частичная загрузка содержимого
  • обрывается соединение от web-сервера
  • возникают различные ошибки

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

 

Как происходит Highload оптимизация?

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

Все начинается с диагностики, делается анализ архитектуры.

После выявления слабых мест - производится оптимизация за счет перенастройки БД / веб-сервера / переписывания части кода / добавления серверных мощностей / деление частей приложения на микросервисы. 

 

Стоит ли предварительно готовиться?

Часто возникает вопрос - нужно ли готовиться к Highload?

Если вы серьезно взялись за разработку вашего проекта, расширяете и планируете активно его развивать, то в определенный момент он может стать высоконагруженным. И в начале должна быть хорошая "база". При разработке проект должен проектироваться с учетом масштабирования, использоваться современный стэк, хороший VPS сервер и мониторинг, для того, чтобы всегда быть в курсе происходящего с вашим сайтом.

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

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