Как защитить сайт от падения во время распродажи

Вчера cайт авиакомпании «Победа» перестал работать после старта распродажи билетов. Тысячи гневных комментариев и разочарованные пользователи — не то, чего хочет добиться бренд. ИТ-команда CloudPayments рассказывает, как обезопасить свой интернет-магазин от падений серверов и всегда оставаться доступным для клиентов.

CloudPayments
CloudPayments

1. Протестируйте нагрузку

Перед распродажей обязательно протестируйте нагрузку. Это первое и главное правило проведения успешной акции. Есть много инструментов, которые имитируют одновременное поведение большого количества пользователей. Например, бесплатный инструмент Jmeter, который не требует экспертных знаний. Он подойдет для небольших интернет-магазинов и сервисов. Более крупным компаниям советуем применять для нагрузочного тестирования программу HP LoadRunner. К тому же эту программу можно использовать не только во время пиковых распродаж, но и для планирования нормальной работы системы.

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

2. Устраните косяки

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

Что значит промасштабировать производительность серверов? Это значит, что сайт, который ежедневно посещают миллионы пользователей и который хостится на старом сервере с 300 мегабайтами оперативной памяти, не сможет качественно работать, выполняя все запросы пользователя. Поэтому лучше или нарастить ресурсы сервера, или разнести серверы на несколько с возможностью сделать балансировку запросов. Для небольших интернет-магазинов выгоднее перейти на более дорогой вид хостинга, чтобы получить больше ресурсов для сайта. Крупным компаниям лучше масштабироваться за счет расширения инфраструктуры.

3. Используйте системы CDN

Ускорьте работу сайта с помощью CDN — системы распределенной доставки контента. Если вы хотите разместить на вашем сайте большое количество, например, фотографий одежды, то вам необходим CDN. Вы освобождаете свой сервис, загружая весь нужный контент на серверы, которые географически находятся ближе к пользователям. Так страницы сайта, картинки, скрипты будут подгружаться гораздо быстрее.

4. Проверьте систему оплаты

Ошибки могут поджидать и на уровне оплаты на сайте. Покупатель может без проблем зайти на ваш сайт, выбрать товары или билеты в Нальчик, но оплата может не пройти. Это происходит потому, что производительности банка или платежного сервиса не хватает, чтобы обработать такое количество платежей. Яркий пример — несколько лет назад во время Черной пятницы пострадал AliExpress. Сам сайт выдержал нагрузку, но проблемы возникли на уровне обработки платежей.

Подключите надежный платежный сервис с высоким показателем SLA, то есть работы без перебоев. Целевой показатель SLA — 100%, но фактически на рынке платежных сервисов таких цифр нет, либо они находятся в закрытом доступе. Например, среди платежных сервисов с открытым показателем SLA на российском рынке лидирует CloudPayments. Показатель SLA у компании — 99,98%.

5. Не расслабляйтесь во время распродажи

Этот пункт очень схож с первым, но здесь мониторинг должен проходить уже в «боевом режиме». За нагрузкой обычно следят системные администраторы. Но для маленьких интернет-магазинов проводить мониторинг можно из администраторской панели: просто следите за тем, проседает ли работа сайта или нет. Для больших интернет-магазинов лучше выстроить мониторинг, который следит за работой серверов, нагрузкой на процессор и память, за скоростью загрузки страниц. Если показатели ухудшаются, оперативно отреагируйте: отключите ненужные сервисы на сайте, подключите дополнительные ресурсы — ненадолго расширьте память и процессор.

55
4 комментария

плюсик за оперативность )

2
Ответить

Как выпустить приложение без багов?
Провести полное тестирование

Как не потерять много денег при взятии кредита?
Взять на минимальный срок с минимальным процентом

Как не промокнуть под дождем?
Взять зонтик

В общем жду больше полезных статей

1
Ответить

Все бы ок, но сайт лежит

Ответить

Ну да. Как не уронить сайт Победы лучше всего знают те, кому не нужно его поддерживать))

Ответить