Один из моих самых больших проебов
Это неверная стратегия технического масштабирования нашего основного продукта DSP. Наверное, как и любой технический специалист, выросший на заре бигдаты и highload, я считал, что основной критерий масштабирования — это количество бид-запросов в секунду: RPS.
Чтобы вы понимали, в нашей отрасли это измеряется миллионами. Так и у меня всегда был пунктик, что мы должны держать не меньше миллиона RPS, а лучше больше.
Шли годы, мы несколько раз меняли архитектуру дата-центров, переходя с полукустарных решений на взрослые: модные джуниперы, 40-гигабитную сеть, везде двойное резервирование и тд.
Переходили со старых серверов на новые, где производительность вырастала в разы. Каждый год инвестировали в железо сотни миллионов рублей. И вот у нас заветный миллион RPS. Вот только 10 лет назад из говна и палок мы держали 500К.
Что же пошло не так?
В обработке каждого запроса на рекламу мы дергаем кучу данных из разных баз для того, чтобы обогатить контекст аукциона и данные о пользователях. Каждый год сложность получения таких данных возрастала. Более того, ML-алгоритмов и различных фильтров также становилось больше. Обработка бидреквеста пухла соразмерно нашим железным апгрейдам.
В этом году мы решили поменять стратегию
Не гнаться за тем, чтобы обрабатывать каждый запрос. Здесь стоит сказать, что на аукционах из разных бирж льется порой один и тот же трафик. Очень много реселлеров перепродают одни и те же аукционы.
Плюс ко всему, на рынке давно существует решение Smart Throttling — это такой умный балансировщик. Он позволяет фильтровать все запросы поступающие в DSP на основе ML-алгоритмов и отсеивать те, на которые мы с высокой вероятностью не сделаем ставку.
Вот и мы подумали, что хватит масштабировать немасштабируемое — пора разработать свой Smart Throttling. На бумаге внедрение ST практически в одно действие позволило бы нам увеличить емкость кластера в 4-5 раз.
В общем, результаты в этом году такие: мы не купили еще ни одного нового сервера в DSP. А также заметили одну очень неожиданную для себя особенность, что ST можно использовать, как дополнительный инструмент повышения перформанса.
Post #271
3.47K
- 🔥 37
- ❤ 21
- 👏 17
- 🕊 2
- 🏆 1