Зависание сайта или мобильного приложения — критичная стадия нарушения их работы
Иван Колегов, менеджер продукта VMware, Selectel
Зависание сайта или мобильного приложения — критичная стадия нарушения их работы. Особенно, когда на бизнес может повлиять даже несколько секунд задержки в загрузке страницы сайта. Вспомните, как вы переходили по ссылке на какое-то интересное приложение или текст, но закрывали после того, как 10 секунд видели лишь белую страницу на экране. Так бизнес и теряет потенциальных клиентов.
Причин зависания или торможения страниц сайта или мобильного приложения достаточно много. Я бы выделил несколько групп.
Первая — проблемы «на поверхности». Они, как правило, связаны с фронтенд-решениями: тяжелые картинки, много динамического flash-контента, неоптимизированные видео и так далее. Также причины можно поискать «под капотом», в бэкенде. Здесь можно обратить внимание на чистоту кода, корректность работы CMS-систем и скриптов, настройки кэширования данных.
Решение проблем на фронтенде и бэкенде — это гигиенические нормы для любого уважающего себя бизнеса. Здесь поможет простая оптимизация визуального контента, удаление лишнего, сжатие слишком большого, чистка кода. Такие «процедуры» рекомендуется проводить раз в несколько месяцев. В целом, с такой работой справится рядовой IT-специалист.
Еще две крупные группы причин нарушений работы сайта или приложения можно условно назвать инфраструктурными и внешними. Это проблемы, которые не всегда можно решить силами разработчиков.
Бывает так, что вина за зависание сайта или приложения лежит не на вас, а на вашем хостинг-провайдере. Он может вам не подходить по надежности и пропускной способности. Здесь важно верно оценить нагрузку на сервис и планы на будущее. Если у вас небольшой сайт, на который «льется» не так много трафика, скорее всего, больших требований к хостеру у вас не будет. Если нагрузки большие, а простои в работе критичны для бизнеса, к выбору следует подойти ответственно.
Допустим, вы развиваете сервис по доставке продуктов. У вас плавающий график нагрузок, работа с персональными данными, быть может, к сайту подвязан логистический сервис для курьеров и т.д. Будут проблемы с заказом или доставкой — клиента вы, скорее всего, уже не вернете.
На что смотреть при выборе хостинг-провайдера? Во-первых, отдавайте предпочтение проверенным игрокам, которые не первый год на рынке, — будет возможность изучить отзывы в интернете. Также стоит рассмотреть перечень дополнительных сервисов. Подойдет ли провайдер, если вы начнете расти и вам понадобятся решения более высокого порядка? Лучше подумать заранее, так как обычно переезд на другой хостинг — трудоемкая и не всегда приятная процедура.
Во-вторых, узнайте, где заканчивается зона ответственности провайдера за работу вашего сайта. Несет ли он какие-то денежные обязательства за падение и простой сервера? Selectel заключает с клиентами соглашение об уровне услуг (Service Level Agreement, SLA) и выплачивает «неустойку» в случае простоя сервисов.
Если у вас критичный сайт, вот минимальный список услуг, которые важно найти у потенциального провайдера:
Если вы обрабатываете персональные данные посетителей сайта или пользователей приложения, вам необходимо учитывать 152-ФЗ «О персональных данных». Тут важно задуматься, соответствует ли место хранения данных федеральному закону.
Наконец, толковый хостинг-провайдер еще и поможет вам решить возникающие проблемы. Если у него есть хорошая техподдержка и команда администрирования инфраструктуры клиентов. Из свежих кейсов, к нам обратились два клиента с одинаковыми «симптомами» — сайт тормозит, зависает. У одного сайт падал в момент высокой нагрузки, ему помогла смена режима работы web-сервера и настройка отказоустойчивого кластера MySQL. Второй же «вырос» из своей инфраструктуры. Перевод на более мощные серверы и перенос базы данных на отдельный сервер также решили проблему торможения.
В деле устойчивости работы вашего сайта или приложения расстояние имеет значение. Здесь стоит упомянуть важность использования CDN (Content Delivery Network) — сети доставки контента. Например, тех же картинок на сайте. Кэширование статичного контента на CDN-серверах может значительно сократить время его доставки не только за счет более близкого расположения к вашим пользователям, но и за счет оптимизации сетевого маршрута.
Например, ваш хостинг находится в Санкт-Петербурге. Чтобы клиенты во Владивостоке не страдали от долгой загрузки сайта, лучше использовать сеть доставки контента. Контент закэшируется на ближайшем к Владивостоку CDN-сервере, и ваш сайт будет загружаться у пользователей так же быстро, как если бы они жили в Санкт-Петербурге.
К этой группе относится проблема DDoS-атак. Самые распространенные и легко организуемые атаки — volumetric, или объемные. Суть таких атак — в резком повышении объема трафика на сайт, в результате чего он просто не выдерживает и «падает». Даже небольшая атака если не положит сайт, то значительно увеличит время загрузки страниц. Число атак на сайты повышается: организовать их легче, стоят они в разы дешевле, чем раньше. Еще три года назад DDoS продолжительностью в 1800 секунд обошлась бы заказчику примерно в 6000 руб. Сейчас стоимость атаки начинается примерно с 2500 руб. за сутки. Для бизнеса — копейки.
Защита от DDoS — практически обязательный минимум. Можно использовать специальный софт или выбирать провайдера, который обеспечит вам защиту инфраструктуры.
Обезопасить себя от хакеров и, соответственно, проблем с вашим сайтом или приложением можно с помощью мониторинга уязвимостей. Например, ваш сайт сделан на WordPress — в этой системе нередко находят уязвимости, способные стать лазейками для мошенников. Подпишитесь на Common Vulnerabilities and Exposures (CVE) — базу данных общеизвестных уязвимостей — и старайтесь их своевременно «латать». Опять же, это гигиеническая норма, частоту которой определяет критичность вашего сайта.
На рынке много инструментов мониторинга скорости загрузки сайта. Один из самых популярных — Google PageSpeed Insights. Рекомендую сравнивать показатели с данными других сервисов — так вы получите более близкую к правде информацию. Также пользуются популярностью Pingdom Website Speed Test (платный), WebPageTest и Dotcom-Monitor Tools. Измерьте основные показатели и подумайте, нужно ли вам оптимизировать сайт или приложение.
Обычно сервис считается быстрым, если загружается от 0 до 3 секунд. Вес страницы — не больше 1000 КБ, а количество HTTP-запросов должно колебаться от 50 до 100 на страницу.
Подводя итог, выделю ключевые тезисы. Чтобы ваш сайт не тормозил при загрузке: