В преддверии ноябрьских распродаж специалисты Termidesk рекомендуют ритейлу проверить, как ИТ-инфраструктура интернет-магазинов справляется с резкими скачками нагрузки. Одного запаса вычислительных мощностей недостаточно: важно, как распределяются запросы между серверами, работают приложения и происходит переключение на резервные ресурсы при отказах.

По данным платежного сервиса ЮKassa, за три дня ноябрьской распродажи в прошлом году оборот обслуживаемых им онлайн-магазинов вырос на 34% по сравнению с аналогичным периодом предыдущего года, а количество оплат увеличилось на 14%. При этом нагрузка на цифровые сервисы может расти особенно быстро сразу после запуска акции или рекламной рассылки.
За привычным интерфейсом интернет-магазина стоит целый набор систем: каталог, поиск, корзина, оформление заказов, проверка остатков и платежные сервисы. При увеличении покупательской активности нагрузка на них растет неравномерно. Например, массовые переходы из рекламы увеличивают число запросов к каталогу, а последующее оформление покупок задействует базы данных, системы учета и внешние сервисы.
«Для покупателя интернет-магазин — единый сервис: выбрал товар, добавил в корзину, оплатил. Но за каждым из этих действий стоят разные системы. Каталог может спокойно выдерживать большой поток посетителей, а при оформлении заказов обнаружатся ограничения. Поэтому проверять нужно весь путь покупки, а не только доступность сайта или количество одновременных подключений к веб-приложению».
Сергей Халяпин, директор по развитию новых рынков и технологических партнеров Termidesk
Увеличение числа серверов помогает обрабатывать больше запросов, если приложение умеет использовать дополнительные ресурсы. Однако, при обычном подходе к построению архитектуры распределённых приложений, часть узлов может оказаться перегружена, пока другие простаивают. Для распределения трафика применяются контроллеры доставки приложений (ADC). Они балансируют TCP-соединения и HTTP-запросы между серверами, учитывают их состояние и позволяют исключать недоступные узлы из обработки новых обращений.
При этом сервер может оставаться доступным по сети, хотя приложение на нем уже некорректно отвечает на запросы пользователей. Поэтому важно проверять не только сетевое соединение, но и ответ самого сервиса. Ограничения могут возникать и за пределами серверов приложений, например, в базах данных, системах учета или внешних интеграциях.
«Балансировщик позволяет эффективнее использовать серверные ресурсы, но не может исправить проблемы самого приложения. Если база данных не успевает обрабатывать операции, дополнительные серверы ситуацию не изменят. Перед распродажей нужно выяснить, где возникают ограничения, и проверить работу системы при высокой нагрузке или отказе отдельных узлов. Ведь наличие резерва еще не означает, что переключение на него пройдет корректно».
Сергей Халяпин, директор по развитию новых рынков и технологических партнеров Termidesk
Для ритейлеров, размещающих сервисы в нескольких ЦОДах или облаках, дополнительную роль играет глобальная балансировка (GSLB). Она позволяет направлять обращения на дополнительные площадки, которые на время повышенного спроса арендуются у других сервис-провайдеров/облачных провайдеров, однако для полноценного переключения необходима также согласованная работа баз данных и связанных приложений.
Специалисты Termidesk рекомендуют перед началом распродаж воспроизводить при нагрузочном тестировании весь путь покупателя — от поиска товара и добавления в корзину до оформления заказа. Важно отслеживать время ответа приложений, частоту ошибок и загрузку серверов, а также моделировать резкие всплески обращений и отказ отдельных узлов.