Highload — это способность сайта выдерживать большие нагрузки.
Это крайне относительное понятие. Нет ни методики ни чисел, никогда не измеряется количеством запросов или скоростью работы сайта. Для каждого проекта данные показатели индивидуальны. Все сайты специфичны и одинаковое количество запросов может приводить к совершенно разным нагрузкам на разные ресурсы.
Как ведет себя сайт, который не справляется с нагрузками?
Поначалу любой проект работает хорошо, но как только количество пользователей или их активность увеличивается, начинаются следующие проблемы:
- сайт «падает», страницы загружаются медленно или вовсе не загружаются;
- частичная загрузка содержимого;
- обрывается соединение от web-сервера;
- возникают различные ошибки
Именно в момент, когда проект перестает справляться с нагрузками, встает вопрос оптимизации и масштабирования. Именно этот процесс и называется Highload оптимизация и подразумевает собой умение горизонтально масштабировать веб-проект до любого теоретически достижимого числа клиентов.
Как происходит Highload оптимизация?
Highload оптимизация это комплекс работ включающая работу с базой данных, сервером, применение различных технологий и языков программирования.
Все начинается с диагностики, делается анализ архитектуры.
После выявления слабых мест — производится оптимизация за счет:
- перенастройки БД
- перестройки веб-сервера;
- рефакторинга (переписывания) части кода;
- увеличения серверных мощностей;
- деление частей приложения на микросервисы
Стоит ли предварительно готовиться?
Часто возникает вопрос — нужно ли готовиться к Highload?
На этапе проверки идеи и запуска MVP задумываться об этом большого смысла нет. На старте важна скорость реализации, нежели возможная гипотетическая сверхнагрузка. Нет смысла заниматься специальными работами по оптимизации, ведь сложно предугадать, что будет актуальным завтра и как проект поменяется к этому моменту.
А когда гипотезы подтвердились и стало понятно, что проект живет и развивается, то в определенный момент он может стать высоконагруженным. И вот тут уже нужно думать над хорошей «базой». При разработке учитывать будущее масштабирование, использоваться современный стэк, хороший VPS сервер и мониторинг, для того, чтобы всегда быть в курсе происходящего с вашим сайтом.
Итог:
Предварительная оптимизация станет для вас потерей времени и средств на оптимизацию того, что скорее всего будет существенно меняться. И работы по Highload оптимизации нужно вести, когда приложение уже работает и возникают нагрузки с которыми оно не справляется.