Обзор клиента
Наш клиент — высоконагруженный провайдер в сфере цифровых медиа и AdTech, предоставляющий новостной и рекламный контент для ведущих веб-площадок. Компания работала в условиях, где производительность и масштабируемость напрямую влияли на вовлеченность пользователей и рекламную выручку, поэтому платформа должна была обрабатывать огромные объемы трафика с минимальной задержкой.
Поскольку клиент использовал инфраструктуру частного облака с жесткими ограничениями on-premise, он не мог применять стандартные механизмы автоскейлинга публичных облаков или управляемые CDN-сервисы. Это потребовало создания полностью автономной экосистемы доставки контента, способной поддерживать программматик-рекламу, проведение аукционов в реальном времени, точный учет показов и работу с различными мультимедийными форматами в масштабах высокой нагрузки — задача, требующая глубокой экспертизы в разработке AdTech-решений.
Задача
Клиенту требовалось создать платформу, способную конкурировать с глобальными CDN и AdTech-экосистемами, но без доступа к стандартным инструментам публичных облаков. В связи с этим ключевые вызовы проекта включали:
- Работу в условиях частного облака без нативного автоскейлинга, как в AWS или Azure.
- Достижение задержки на уровне миллисекунд при обработке более 100 миллионов запросов в сутки.
- Поддержку различных форматов контента, включая видеофрагменты, интерактивный HTML, слайдеры, анимации и медиа-насыщенные макеты.
- Отслеживание показов, просмотров и кликов практически в реальном времени для точного биллинга и аналитики.
- Создание полноценной платформы «из коробки» (а не набора отдельных компонентов), включая административные панели, отчеты почти в реальном времени, процессы импорта/экспорта и ядро системы для учета показов и кликов.
Основные цели проекта
Чтобы соответствовать всем требованиям проекта, мы сформулировали следующие ключевые цели:
- Обеспечить интеграцию между пользовательскими данными (DMP) и аукционами рекламы в реальном времени (DSP).
- Реализовать собственную CDN и слой кэширования для обеспечения высокой производительности сайтов в условиях частной инфраструктуры.
- Использовать готовую систему рекомендаций для повышения удержания пользователей и CTR, основанную на алгоритмах разреженных матриц для миллионов пользователей в день.
- Разработать систему, способную автоматически восстанавливаться после сбоев на уровне оборудования без ручного вмешательства.
Краткое описание проекта
Мы разработали кастомную высоконагруженную платформу доставки контента и AdTech на базе .NET, используя кластер MS SQL Always-On в качестве основной базы данных и Redis как высокопроизводительный слой для счетчиков в реальном времени и кэширования.
Платформа включала специализированную сеть доставки контента, способную распространять различные форматы данных, а также масштабируемую логику доставки медиа — изображений и видеофрагментов. Для обеспечения стабильности мы также реализовали собственные инструменты мониторинга, которые предоставили командам DevOps полную видимость использования Redis, работы сети доставки и длительных вычислений системы рекомендаций.
Кроме того, была внедрена система аварийного восстановления как на уровне инфраструктуры, так и на уровне приложения, что позволило платформе автоматически переключаться на резервные ресурсы и восстанавливать сервисы даже при сбоях оборудования.
Решение
RNetPlus стал примером высочайшего уровня кастомной инженерии систем. В то время как большинство современных AdTech- и контентных платформ опираются на публичные облачные сервисы, RNetPlus был разработан для частной инфраструктуры, где каждая единица производительности требовала ручной оптимизации.
Платформа управляла полным жизненным циклом показа контента — от начала до конца. Она идентифицировала пользователя с помощью механизма «цифрового портрета», запускала высокоскоростной DSP-аукцион для выбора наиболее релевантного предложения и доставляла итоговый контент — будь то новостной блок, видеофрагмент или сложный HTML5-слайдер с интерактивными элементами. Все это выполнялось с точностью до миллисекунд даже при огромных объемах трафика (порядка ~100 млн просмотров в день).
Ключевые возможности
- Кастомная CDN и слой кэширования, разработанные специально для частного облака.
- Аналитический движок в реальном времени на базе Redis для мгновенного подсчета просмотров и кликов.
- Доставка контента с миллисекундной задержкой при нагрузке более 100 млн запросов в сутки.
- Поддержка различных форматов контента: текст, изображения, видеофрагменты, HTML-виджеты, слайдеры и анимационные интерфейсы.
- Аукционы рекламы в реальном времени с продвинутыми алгоритмами ранжирования на основе релевантности, популярности и истории кликов, исключающие повторяющиеся показы.
- Интеграция с DMP для построения «цифрового портрета» пользователя и таргетированной доставки рекламы на основе категорий кампаний.
- Встроенная система рекомендаций для повышения вовлеченности и релевантности контента.
- Кастомные дашборды мониторинга для отслеживания использования ресурсов, состояния сети доставки и производительности вычислительных модулей.
- Автоматическое аварийное восстановление с механизмами failover, рассчитанными на сбои на уровне оборудования.
Технологический стек
Для обеспечения экстремальных требований к производительности был выбран следующий технологический стек:
- Основной фреймворк: .NET.
- Основная база данных: MS SQL Server (кластер Always-On).
- Кэширование и счетчики в реальном времени: Redis (высокопроизводительная конфигурация).
- Инфраструктура: Частное облако (виртуальные машины).
- Оркестрация и мониторинг: Кастомная логика мониторинга и масштабирования.
- AdTech-компоненты: Собственная реализация DSP-аукционов и интеграция с DMP, обеспечивающие полностью кастомную логику торгов и таргетированной доставки рекламы.
- Слой доставки: Кастомная CDN и сеть кэширования.
Результат
RNetPlus стал полноценной высоконагруженной экосистемой уровня production, способной поддерживать работу ведущих издателей и AdTech-процессов без зависимости от публичных облачных сервисов.
- Создав собственную сеть доставки и кэширования, компания избежала зависимости от дорогостоящих облачных провайдеров.
- Миллисекундные задержки на топовых сайтах повысили вовлеченность пользователей и эффективность рекламы.
- Точный учет показов и DSP-аукционы обеспечили максимальную монетизацию каждого показа.
- «Непробиваемая» система аварийного восстановления гарантировала стабильную работу даже при сбоях оборудования. В одном из реальных случаев платформа восстановилась после сбоя кластера MS SQL Always-On в ночь на Рождество с минимальными задержками в отчетности.