Как организовать инфраструктуру для высоконагруженной рекламной платформы: опыт МоеVideo
Рассказываем, как компания организовала инфраструктуру для высоконагруженной рекламной платформы с аудиторией в 150 миллионов пользователей.
Задачи:
- Обеспечить максимальную производительность
- Организовать обработку и надежное хранение входящих данных
- Гарантировать быстрый сетевой отклик и отказоустойчивость
Продукты и услуги Selectel:
О компании
MoeVideo – это независимая рекламная сеть для веб-мастеров, СМИ и владельцев сайтов. К ней подключено свыше 90 000 сайтов Рунета с общей ежемесячной аудиторией в 150 миллионов пользователей.
Вызовы и решения
Обеспечить максимальную производительность платформы
Платформа МоеVideo является высоконагруженной: ежедневно она обрабатывает более 120 Тбит входящего трафика — это входящие коннекты, данные о пользователях, подбор рекламы под заданные рекламодателем параметры и другие. Чтобы гарантировать высокую скорость обработки запросов, необходимо использовать серверы с большим количеством производительных CPU.
Кроме того, команде сервиса важно иметь возможность быстро добавлять новые серверы в инфраструктуру. Например, бывают ситуации, когда отдел продаж подключает к платформе MoeVideo крупную медиаплощадку, и чтобы успешно обрабатывать и показывать рекламу ее пользователям, нужно оперативно подключить десяток серверов.
Подобрали оптимальные конфигурации серверов под отдельные задачи
Основа инфраструктуры платформы, отвечающей за обработку трафика, — выделенные серверы произвольной конфигурации.
На старте построения инфраструктуры в Selectel образовался «зоопарк» серверов с разными комплектующими, что с течением времени стало приводить к проблемам балансировки трафика между серверами и усложнило управление ими. С опытом команда сервиса подобрала оптимальную конфигурацию сервера, к которой унифицировала всю инфраструктуру. Сегодня кластер для обработки трафика состоит из 80 серверов в следующей конфигурации: процессор AMD EPYC 7443P, 64GB RAM, 2 x NVMe 500GB. Серверы объединены в единый Kubernetes-кластер, который управляется через скрипты и плейбуки.
При подключении новых клиентов к рекламной платформе команда, при необходимости, дозаказывает вычислительные ресурсы. Серверы необходимой конфигурации собираются и вводятся в эксплуатацию в течение 1-2 дней после заказа, в зависимости от количества серверов
В дополнение к выделенным серверам компания использует облачные. На них размещаются вспомогательные сервисы — в их числе лендинги, сервисы статистики, мониторинга, логов и другие.
Организовать обработку и хранение входящих данных
Другая, не менее важная часть платформы MoeVideo, — это инструменты аналитики рекламных кампаний.
В основе технологического стека аналитической платформы находятся:
- ClickHouse для сбора общей статистики;
- Redis, MongoDB, Tarantool для кэширования и работы сервисов в реальном времени;
- Kafka и RabbitMQ для обработки потоковых данных;
- PostgreSQL для обработки реляционных данных и YugaByteDB как более отказоустойчивая альтернатива PostgreSQL со встроенной репликацией и балансировкой нагрузки.
Команде MoeVideo было важно организовать хранение входящих данных при высокой нагрузке и разнородных типах запросов. При этом аналитическая система должна поддерживать горизонтальное масштабирование, быстро обрабатывать большие объемы данных и гарантировать их сохранность.
Собрали произвольные конфигурации серверов под специфические требования СУБД
Например, для ClickHouse команда MoeVideo подобрала серверы в следующей конфигурации: процессор Intel Xeon E-2236, 32GB RAM, NVMe 1TB и 4 x SATA SSD 2TB. Она показывает наибольшую производительность с точки зрения чтения, записи, пропускной способности и объема данных. Кластер ClickHouse разбит на шарды — фрагменты данных, каждый из которых дублируется на двух серверах для отказоустойчивости. Это обеспечивает горизонтальное масштабирование и защиту от сбоев без использования RAID-контроллеров.
Для PostgreSQL, где объем данных меньше, используется более простая конфигурация с аппаратной отказоустойчивостью — RAID-контроллерами. Серверы под PostgreSQL обрабатывают критичные реляционные данные и биллинг, поэтому к ним предъявляются повышенные требования к сохранности информации.
Гарантировать быстрый сетевой отклик и отказоустойчивость
Для MoeVideo критична высокая производительность и отказоустойчивость сервиса: реклама должна загружаться как можно быстрее, иначе слот займет конкурент.
Организовали геораспределенную сетевую связность
К серверам обработки трафика подключен интернет-канал со скоростью 1 Гбит/с — он обеспечивает высокую скорость передачи трафика между платформой и пользователями.
Нагрузка распределяется между серверами в нескольких дата-центрах в разных регионах. Серверы связаны локальной сетью через глобальный роутер. Геораспределенность обеспечивает отказоустойчивость инфраструктуры: в случае перегрузки или сбоя одного компонента трафик мгновенно перенаправляется на другой узел.
Результаты
-
120 Тбит/с
входящего трафика платформа MoeVideo обрабатывает ежедневно
-
80+
серверов используется для обработки входящего трафика
В Selectel всегда достаточно серверных мощностей, что позволяет нам быстро масштабировать инфраструктуру при необходимости. При этом у нас высокие требования к отказоустойчивости: остановка работы платформы несёт прямой финансовый ущерб. В Selectel мы берем ресурсы в нескольких регионах, что повышает отказоустойчивость наших систем. И особенно хочется отметить высокое качество техподдержки: все возникающие проблемы решаются оперативно, в режиме «здесь и сейчас».