Маркетинг бахнул пуш на крупная сумма человек. Прод аннигилировал
Знаете, какая главная уязвимость у любого, даже самого отказоустойчивого бэкенда? Это отдел маркетинга с кнопкой «отправить пуш». Работаю в ритейле, и однажды наши креативщики решили запустить акцию: «Скидка 90% первым ста покупателям».
Задумка классная, но они, никого не предупредив из крупной компании, бахнули пуш по всей базе клиентов. А это три миллиона человек. Причем бахнули ровно в 12:00.
В 12:01 наш прод не просто лег, он аннигилировал. Мониторинг моментально стал черным. Трафик был абсолютно легитимный, так что внешняя защита от DDoS его спокойно пропустила. В итоге миллион ломившихся в приложение человек одновременно ударили по API-шлюзу.
База данных профилей и заказов моментально уперлась в 100% CPU и перестала отвечать, затянув за собой по цепочке остальные микросервисы.
Ситуация не из приятных. Шлюз лежит, очереди сообщений переполнены и валятся по таймауту. Пришлось наживую костылить ограничение частоты запросов и разворачивать заглушку, чтобы отсечь 90% входящего потока и дать базе вообще прийти в себя. Два часа разгребали эти завалы.
Потом на разборе полетов маркетологи искренне не понимали, в чем косяк: «Мы же сделали акцию только для первых ста человек! Откуда у вас там миллион запросов-то взялся?». То, что на кнопку одновременно нажмет вся база, им в голову не пришло.
С того момента маркетологам официально запретили отправлять пуши без согласования с крупной компанией.