анатомия баннерной системы

36
Анатомия баннерной системы Артем Вольфтруб

Transcript of анатомия баннерной системы

Page 1: анатомия баннерной системы

Анатомия баннерной системы

Артем Вольфтруб

Page 2: анатомия баннерной системы

• 50 млн. показов в день• Система на базе Dart Enterprise• Расширенная статистика

• 700 млн. показов в день• Собственное решение• Модель ориентированная на

продажи

Page 3: анатомия баннерной системы

С чего начинается баннерка

Page 4: анатомия баннерной системы
Page 5: анатомия баннерной системы

На чем зарабатываем?• На трафике• На интересе• На продажах

Page 6: анатомия баннерной системы

Ориентируемся на трафик• Нагрузка на баннерные сервера• Простая логика показов• Простая статистика

Page 7: анатомия баннерной системы

Ориентируемся на интерес• Сложный таргетинг• Борьба с накрутками• Сложная статистика• Уникальные пользователи

Page 8: анатомия баннерной системы

Ориентируемся на продажи• Мониторинг продаж• Интеграция с рекламодателями• Сложный биллинг

Page 9: анатомия баннерной системы

• Mission critical компонент в любой баннерке• Наиболее нагруженный компонент

Баннерный сервер

• Простота• Слабая связанность• Независимость• Масштабируемость• Принцип «не молчать»

Page 10: анатомия баннерной системы

Стратегии обновления. Pull• Убирает одно звено в цепи обновления• Упрощает добавление нового сервера• Позволяет иметь разные по содержимому

сервера

• Усложняет код баннерного сервера• Не позволяет обновить все сразу• Не информирует о падении сервера• Увеличивает неконсистентность данных

Page 11: анатомия баннерной системы

Стратегии обновления. Push• Единая точка мониторинга• Возможность обновить все сразу• Обновления по расписанию

• Нужно регистрировать новый сервер• Создается точка отказа• Сложно поддерживать разный контент на

баннерных серверах

Page 12: анатомия баннерной системы

СинхронизацияИнкрементальная• Экономия трафика• Уменьшение задержки обновления

Полная• Одномоментное переключение версии данных• Простота реализации• Необходима в любом случае

Page 13: анатомия баннерной системы

Хранение медиа данных• Файловая система баннерных серверов• Отдельное хранилище• Распределенное хранилище (CDN, облако)

Page 14: анатомия баннерной системы

Лимиты

Типы лимитов• По рекламной кампании• По пользователю

• Одна из самых важных для бизнеса фич• Бережливые менеджер и расточительные разработчики

Page 15: анатомия баннерной системы

Решение. Обновление статистики• Упрощает работу баннерного сервера• Уменьшает время ответа

• Нельзя сделать без задержки, будут перекрутки.• Требуется очень быстрая обработка статистики• Сложно считать показы уникальным пользователям

Page 16: анатомия баннерной системы

Решение. Общий кеш• Актуальные данные• Отсутствие перекруток

• Дополнительная точка отказа• Нужно синхронизировать со статистикой• Данные могут вымываться

Page 17: анатомия баннерной системы

Лимиты• Не используйте без нужды• По возможности используйте статистику• Готовьтесь к падению кеша• Разные стратегии для разных типов лимита

Page 18: анатомия баннерной системы

Таргетинг• Занимает большую часть времени обработки запроса• Откуда взять значение параметров?

Page 19: анатомия баннерной системы

Регистрация событий• Память -> Файл -> Ротация• Никакой предварительной обработки.

Page 20: анатомия баннерной системы

Стратегии показов• Равномерное распределение по времени суток• Динамический выбор лучшего баннера• Принудительная открутка

Page 21: анатомия баннерной системы

СтатистикаДва основных типа данных• Общая статистика• Статистика по уникальным пользователям

Page 22: анатомия баннерной системы

Соотношение объемов данных

Page 23: анатомия баннерной системы

Ежедневное увеличение данныхДля 50 млн. показов в день• Группировка по рекламным местам – 30-40 тыс. записей• Группировка по пользователям 6-8 млн. записей

Page 24: анатомия баннерной системы

Что получаем взамен?• Частотная характеристика• Анализ пересечения аудитории• Анализ параметров таргеинга• Post-click анализ

Page 25: анатомия баннерной системы

Обработка статистики• Отдельный компонент системы• Узел суммирования и фильтрации данных• Быстрая загрузка • Разделение баз данных• Денормализация данных

Page 26: анатомия баннерной системы

Данные по уникальным• Расчет статистики в фоновом режиме• Очередь отчетов• Сохранение результатов на диск

Page 27: анатомия баннерной системы

Мониторинг

Page 28: анатомия баннерной системы

Что дает мониторинг?• Прогнозирование нагрузки• Диагностика проблем на ранней стадии• Выявление типовых проблем -> разработка универсальных решений

Page 29: анатомия баннерной системы

Виды мониторинга• Физический уровень • Уровень приложения • Бизнес уровень

Page 30: анатомия баннерной системы

Мониторинг на физическом уровне• Сеть• Доступность сервера• CPU• Память• IO• Свободное место на дисках

Page 31: анатомия баннерной системы

Мониторинг на уровне приложения• HTTP Errors• Response Time• Актуальность баннеров• Актуальность статистики• Размер очередей

Page 32: анатомия баннерной системы

Мониторинг на бизнес уровне• Число зарегистрированных событий за период• Динамика рекламных кампаний• Количество отфильтрованных данных

Page 33: анатомия баннерной системы

Чем измеряем• Критериальная система Nagios• Тренды Cacti• Журналы Tenshi

Page 34: анатомия баннерной системы

System administratorsMonitoring

Logs and

performance data

System operators

Network devices

Logs and

perform

ance

data

Events Events

Production machines

Система мониторинга

Page 35: анатомия баннерной системы

Поддержка системы• Налаженная система мониторинга• Наличие готовых лекарств• Простота архитектуры• Отлаженная процедура обновлений

Page 36: анатомия баннерной системы

Вопросы?

[email protected]