
Вы когда-нибудь задумывались о том, что чем больше мы зависим от технологий, тем быстрее стремится к нулю наша снисходительность к сбоям и неработоспособности этих технологий? Я, например, почти сразу «начинаю нервничать», хотя считаю себя уравновешенным. Особенно неприятно, когда сбои случаются в самый неподходящий момент.
Меня зовут Вячеслав Кудряшов, я исполнительный директор Mission Control Center в Сбере. Предлагаю порассуждать о том, что такое «неподходящий момент» и как бороться со сбоями в этот период.
Непредсказуемость рынка
«Самый неподходящий момент» — «высокий сезон». Есть понятие «высокий сезон», это период максимального спроса. У Сбера таких сезонов два: день рождения банка и предновогодние праздники. В это время нагрузка на сервисы резко возрастает, из-за этого увеличивается и вероятность сбоев.
С 2012 по 2019 год нам не требовались сложные модели для прогноза прироста нагрузки: он стабильно составлял около 40 % ежегодно. Но затем предсказуемая динамика рухнула из-за «чёрных лебедей»: пандемии и других вызовов.
Старые подходы к прогнозированию перестали работать, потому что:
Изменились паттерны поведения: например, массовый переход на удалёнку во время пандемии.
Ушли ключевые участники рынка: Visa, MasterCard, Apple Pay.
Выросли новые способы оплаты: QR-коды, биометрия.
Увеличилась доля P2P-переводов.
Ускорился переход сервисов в онлайн: кредитование, страхование.
Трафик стал перераспределяться по новым системам. Параллельно менялись и технологии — как по нашей инициативе (из-за потолка производительности монолитов мы перешли на линейно-масштабируемую архитектуру, а затем на микросервисы), так и вынужденно (замена зарубежного оборудования, комплексов и информационных систем на отечественные решения, что само по себе вызов для пиковых нагрузок).
Эволюция причин инцидентов
За последние годы мы накопили статистику основных причин инцидентов во время высокого сезона. То есть сами сезоны не поменялись, и они по-прежнему очень важны для наших клиентов.
До 2019 года причины инцидентов распределялись так (по убыванию частоты);
внешние поставщики;
архитектура;
производительность;
мониторинг;
персонал;
изменения;
дефекты ППО;
оборудование;
дефекты СПО.
А после 2019 этот антирейтинг перевернулся:
дефекты СПО;
оборудование;
дефекты ППО;
изменения;
персонал;
мониторинг;
производительность;
архитектура;
внешние поставщики.
Требования, повышающие надёжность
Все вышеописанные наблюдения послужили триггером для создания правил и требований, повышающих надёжность и доступность систем. Из наших 18 требований к надёжности выделю четыре критичных:
Использование ограничителей нагрузки для каждой синхронной интеграции, с возможностью изменения значений без перезапуска приложений.
Георезервирование для слоя баз данных и приложений. Обязательно для критичных систем и сервисов.
Прикладная репликация данных для внесения изменений без остановки сервисов и дополнительных рисков.
«Умная» балансировка нагрузки. Важно удостоверится, что сервис работает корректно, а не просто доступен.
О важности проведения аварийных учений
Мы все понимаем, что «серебряной пули» не бывает. Однако проверить, готов ли инструмент к работе — необходимо. Мало просто реализовать вышеописанные требования. Пока их работоспособность не подтверждена в реальных условиях, их нельзя считать полностью надёжными. Именно поэтому так важны аварийные учения: они позволяют заранее проверить все системы и убедиться, что они справятся с ожидаемой нагрузкой.
График подготовки
Но что делать, если, несмотря на все усилия, вы окажетесь не готовы к прогнозируемой нагрузке в высокий сезон? Чтобы этого не происходило, нужно готовиться сильно загодя. У нас, например, подготовка к высоким сезонам вообще не заканчивается, просто одна плавно переходит в следующую.

Очень важна предпоследняя контрольная точка — блокирование внедрения бизнес-функциональности. Важно регулярно информировать владельцев и бизнес об этом процессе. Выше я показал самые распространённые причины инцидентов. Но если ничего не внедряешь, то и инцидентов не происходит. Хотя обосновать это бизнесу, порой, бывает сложно :)
Заглянем в будущее
Впереди — новые изменения. Появление генеративного искусственного интеллекта, на который возлагают большие надежды, может улучшить прогнозирование нагрузок и предотвращение инцидентов. Однако его реальная эффективность пока требует проверки. Об этом стоит подумать уже сейчас.
Выводы
Подготовка к периодам пиковой нагрузки — комплексная задача, требующая вовлечения разработчиков, сопровожденцев и бизнес-владельцев. Это регулярная деятельность, заниматься которой необходимо круглый год, постоянно адаптируясь к меняющемуся технологическому ландшафту. То есть, с одной стороны, подготовка к росту нагрузки становится более управляемой, а с другой — требует больше людей и технических ресурсов.
Если вкратце, то сегодня ИТ-услуга считается готовой к высокому сезону, если имеется управление запасом производительности и используются ограничители нагрузки. Но мы стремимся прийти к тому, чтобы ИТ-услуга считалась готовой при соответствии критичным требованиям надёжности:
управление запасом производительности;
использование ограничителей нагрузки;
георезервирование БД и приложений;
прикладная репликация БД;
умная балансировка.