Новости

Почему популярные сервисы и сайты «виснут»?

Web

Зависание сайта или мобильного приложения — критичная стадия нарушения их работы

Иван Колегов, менеджер продукта VMware, Selectel

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

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

Фронтенд и бэкенд

Первая — проблемы «на поверхности». Они, как правило, связаны с фронтенд-решениями: тяжелые картинки, много динамического flash-контента, неоптимизированные видео и так далее. Также причины можно поискать «под капотом», в бэкенде. Здесь можно обратить внимание на чистоту кода, корректность работы CMS-систем и скриптов, настройки кэширования данных.

Решение проблем на фронтенде и бэкенде — это гигиенические нормы для любого уважающего себя бизнеса. Здесь поможет простая оптимизация визуального контента, удаление лишнего, сжатие слишком большого, чистка кода. Такие «процедуры» рекомендуется проводить раз в несколько месяцев. В целом, с такой работой справится рядовой IT-специалист.

Еще две крупные группы причин нарушений работы сайта или приложения можно условно назвать инфраструктурными и внешними. Это проблемы, которые не всегда можно решить силами разработчиков.

Инфраструктурные

Правильный хостинг-провайдер

Бывает так, что вина за зависание сайта или приложения лежит не на вас, а на вашем хостинг-провайдере. Он может вам не подходить по надежности и пропускной способности. Здесь важно верно оценить нагрузку на сервис и планы на будущее. Если у вас небольшой сайт, на который «льется» не так много трафика, скорее всего, больших требований к хостеру у вас не будет. Если нагрузки большие, а простои в работе критичны для бизнеса, к выбору следует подойти ответственно.

Допустим, вы развиваете сервис по доставке продуктов. У вас плавающий график нагрузок, работа с персональными данными, быть может, к сайту подвязан логистический сервис для курьеров и т.д. Будут проблемы с заказом или доставкой — клиента вы, скорее всего, уже не вернете.

На что смотреть при выборе хостинг-провайдера? Во-первых, отдавайте предпочтение проверенным игрокам, которые не первый год на рынке, — будет возможность изучить отзывы в интернете. Также стоит рассмотреть перечень дополнительных сервисов. Подойдет ли провайдер, если вы начнете расти и вам понадобятся решения более высокого порядка? Лучше подумать заранее, так как обычно переезд на другой хостинг — трудоемкая и не всегда приятная процедура.

Во-вторых, узнайте, где заканчивается зона ответственности провайдера за работу вашего сайта. Несет ли он какие-то денежные обязательства за падение и простой сервера? Selectel заключает с клиентами соглашение об уровне услуг (Service Level Agreement, SLA) и выплачивает «неустойку» в случае простоя сервисов.

Если у вас критичный сайт, вот минимальный список услуг, которые важно найти у потенциального провайдера:

  • резервирование данных (у вас всегда должен быть план Б);
  • инфраструктура для повышенной отказоустойчивости и аварийного восстановления;
  • балансировщики нагрузки;
  • добавление ресурсов без простоя основных сервисов (так называемый hot-add);
  • оплата pay-as-you-go (удобно, если нагрузка на сайт плавающая, — вы платите только за время использования той или иной услуги).

Если вы обрабатываете персональные данные посетителей сайта или пользователей приложения, вам необходимо учитывать 152-ФЗ «О персональных данных». Тут важно задуматься, соответствует ли место хранения данных федеральному закону.

Наконец, толковый хостинг-провайдер еще и поможет вам решить возникающие проблемы. Если у него есть хорошая техподдержка и команда администрирования инфраструктуры клиентов. Из свежих кейсов, к нам обратились два клиента с одинаковыми «симптомами» — сайт тормозит, зависает. У одного сайт падал в момент высокой нагрузки, ему помогла смена режима работы web-сервера и настройка отказоустойчивого кластера MySQL. Второй же «вырос» из своей инфраструктуры. Перевод на более мощные серверы и перенос базы данных на отдельный сервер также решили проблему торможения.

Распределенная сеть доставки контента

В деле устойчивости работы вашего сайта или приложения расстояние имеет значение. Здесь стоит упомянуть важность использования CDN (Content Delivery Network) — сети доставки контента. Например, тех же картинок на сайте. Кэширование статичного контента на CDN-серверах может значительно сократить время его доставки не только за счет более близкого расположения к вашим пользователям, но и за счет оптимизации сетевого маршрута.

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

Внешние

Защита от DDoS-атак

К этой группе относится проблема 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 на страницу.

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

  1. Проверьте вес всех потенциально тяжелых элементов страницы (flash-контент, реклама, баннеры, изображения). Оптимизируйте или удалите излишки.
  2. Следите за «гигиеной» кода. Никто не любит это делать, но важно проводить такую уборку хотя бы раз в месяц.
  3. Не избегайте инструментов сжатия контента сайта. Технологии развиваются, вокруг много новых специализированных сервисов.
  4. Если на стороне фронтенда и бэкенда все хорошо, подумайте о смене провайдера.