Как устроена BigData в Sports.ru и Tribuna.com?

в 8:23, , рубрики: Без рубрики

Год назад мы отказались от всех публичных счетчиков в пользу закрытых сервисов и собственной инфраструктуры обработки данных. Собирая на Олимпиаде по 10 млн. хитов в сутки, мы нащупали предел доброты Google Analytics, за которым бесплатное обслуживание уже не возможно. Но теперь у нас есть свой лунапарк со сверткой и графиками, поэтому мы можем легко снизить интенсивность использования GA, сохранив за ним только аудиторские функции. О том, как мы собираем данные и как используем их в своей работе – в простыне с веселыми картинками внутри.

У нас нет такого помещения с мониторами и славными бородатыми парнями. Эта картинка найдена в Интернете и сделана в NOC Wallmart. Парни могут себе позволить )

«Я вообще не замечаю код. Я вижу блондинок, брюнеток, рыженьких. Кстати, ты… выпить хочешь?»

Нельзя сказать, что мы знали, что делаем в начале пути. Мы предполагали, что данные добавят нашему интуитивному творчеству чуть больше смысла. И нам очень хотелось много красивых графиков и больше понимания, чем живут наши пользователи. Мы совсем не ожидали, что за год построим систему полного цикла обработки данных, а компания начнет дышать в ритме Data Driven.

И нам действительно было где развернуться: каждый день на сайтах Sports.ru и Tribuna.com появляется 700 новостей и 500 текстов (из которых 97% — пользовательские), а под ними возникает 30 тысяч комментариев, 120 тысяч оценок и 2 тысячи статусов. Весь этот вал контента оседает не только на сайтах с их 750 тысячами уников и 5 миллионами хитов в сутки, но и разлетается через 100 тысяч тегов по 160 мобильным приложениям (где 200 тысяч уников совершают 8 миллионов хитов за сутки) и по 1200 тематическим группам в соцсетях.

Простите, не мог удержаться, но валить цифрами — мой конек!

Простите, не мог удержаться, но валить цифрами — мой конек!

Так вот, это наши нормальные цифры. Паранормальными цифры становятся в плотные дни спортивных событий, как сейчас происходят в Сочи. Каждый олимпийский день мы пробиваем отметку в 1 миллион уников. Мгновенный трафик может подскакивать в 10 раз, а итоговый объем хитов за день вырастает в 1,5-2 раза.

Мы знали, что данных обрабатывать придется много: за первые месяцы эксплуатации инфраструктуры обработки данных у нас накопилось 500 гигабайт сырого материала и агрегатов. Но сразу вписываться в свой Hadoop-кластер или вычислительный комбайн было бы слишком рисковано, да у нас и не было такой возможности — так что мы выкручивались.

Бирюзовым обозначены компоненты в нашей собственной ИТ-инфраструктуре, оранжевым - все то, что мы используем как внешний сервис

В начале прошлого года мы не знали и половины слов на этой схеме

Мы сделали все просто: данные о показах страниц собираются с помощью опенсорсного счетчика Piwik, точнее с помощью его фронтендовой части — на бэкенде у нас кластер nginx, ноды которых ведут access.log обращений от этого счетчика. Сырые данные из логов пакетами загружаются через Amazon S3 в Amazon Redshift, где из хитов ClickStream вычисляются клиентские сессии. Дополнительно в Redshift выгружаются данные из SQL-хранилища сайта, необходимые для обогощения создаваемых структур. Над созданными структурами разработан план SQL-запросов, который используется для формирования графиков и отчетов в Chart.io, а так же для Adhoc-анализа данных.

Кроме того, мы регистрируем отдельные действия пользователей в NoSQL-хранилище для быстрого расчета матрицы рекомендаций для наших пользователей, обрабатываем access.log обращений к страницам сайта с помощью агентов Okmeter, их же используем для анализа пользовательского контента из SQL-хранилищ. В итоге, всю сложную часть BigData (хранение данных, сложные вычисления, построение графиков и отчетов) мы не стали делать в виде собственной фермы оборудования и коллекции ПО, а полностью вынесли ее в SaaS. Себе мы оставили только сбор сырых данных и конечное потребление агрегатов.

Кому тут кипяточку?

Кому тут кипяточку?

Детали технической реализации всей аналитической инфраструктуры мы надеемся рассказать в отдельном посте, сейчас же мы хотим поделиться с вами, как нам удалось улучшить свой продукт и бизнес, добавив лишь небольшую порцию данных.

Рекомендации для пользователей

Пользуясь случаем, передаем этой иллюстрацией привет перфекционистам
Мы знаем теперь очень многое о наших читателях и не только то, что они нам рассказывают при регистрации—какие команды и спортсмены нравятся или не нравятся — но и то, что мы узнаем о них из поведенческого профиля: с каких фанатских сайтов или поисковых запросов пользователи приходят на Sports.ru и Tribuna.com, новости с какими тегами читают и комментируют, какие посты и комментарии плюсуют, а какие — минусуют, что интересно друзьям. Формируя матрицу предпочтений каждого посетителя, мы накладываем на нее матрицу рекомендаций и даем каждому релевантные подсказки.

Мониторинг бизнес-метрик

Когда нам все-таки надоедает смотреть за тем, как горит огонь, течет вода и работают коллеги— мы наблюдаем за этими графиками

Сделать большой ЦУП с мониторами, графиками и славными бородатыми парнями — самое очевидное, что приходит в голову после запуска инфраструктуры обработки данных. Графики мы сделали, а вот мониторы и бородачей привлекать не стали: группы оперативного реагирования на инциденты нам точно не требуются.

Но мы повесили на некоторые бизнес-метрики алерты с помощью Okmeter. Хоть этот сервис предназачен в большей степени для мониторинга технических метрик (аптайм, трафик, системные показатели и т.п.), его функциональность позволяет строить метрики из любых данных из любого SQL-хранилища. За полгода эксплуатации сервис дважды оповещал нас о том, что на сайте перестали появляться комментарии: в новогоднюю ночь и когда на сайте появился кривой баннер, блокирующий Javascript на страницах.

Но самое крутое в Okmeter — это режим Play, в котором можно работать с графиком (добавлять метрики, функции над данными, менять параметры отображения) в режиме реального времени.

Рисуем скорость количества комментариев на сайте в режиме реального времени

Сервис делают отличные парни из России, пока что он закрыт для регистрации, но инвайт можно попросить на сайте okmetric.com

Дистрибуция и производство контента

Непонятные графики

Непонятные таблицы

Еще одни непонятные таблицы

Мы, конечно же, подглядываем за тем, что пишут наши пользователи, как они реагируют на материалы, новости, ищем популярные комментарии и фотографии, а самое лучшее — забираем в работу редакции. Сообщество пользователей, в каком-то смысле, является чашкой Петри, в которой зарождаются крутые шутки и хлесткие реплики (мы замечаем эти факты по резкому всплеску плюсов или минусов), там же мы проверяем свои редакционные и социальные гипотезы, а самое лучшее распространяем по всем нашим каналам: приложениям, соцсетям, теговым потокам.

На первый взгляд, эта деятельность похожа на наглую эксплуатацию населения и непрекрытый краудсорсинг, и это действительно так. Но! Этот же механизм позволяет молодым и неизвестным авторам Трибуны становится популярными. Мы замечаем действительно ярких персонажей и берем их в оборот в социальной редакции: выносим посты на главную, раскидываем ссылки по потокам, даем им советы по оформлению и подаче.

Adhoc-анализ

Веселых картинок про аналитику у нас не очень немного, поэтому мы начинаем постить котов

Веселых картинок про аналитику у нас не очень немного, поэтому мы начинаем постить котов

С инфраструктурой BigData у нас наконец-то появился инструмент, с помощью которого мы можем достоверно отвечать на вопросы: “Почему произошло именно так?”, “Как можно улучшить продукт?”, “Какого цвета кнопка здесь лучше всего работает?” и т.п. Каждый день мы используем магию чисел для оценок, поиска зависимостей и корреляций.

Например, мы недавно запустили персонализированное принуждение к регистрации: разными способами мы узнаем о том, какой командой интересуется посетитель, выбираем из этой команды популярного игрока, вешаем фотку этого спортсмена на приглашение о регистрации и показываем этому посетителю специальный блок. Мы уже выяснили, что такое персонализированное обращение работает в разы эффективнее, чем милые котики или Гус Хиддинк. А вот выбрать текст для такого приглашения, мы решили простым ABCD-тестом. Так выглядят варианты теста на подопытном Александре Амисулашвили из “Крыльев Советов”:
image

Попробуйте сами угадать лучший вариант и сравните его с нашими результатами (делалась выборка на 100 000 показов).

Результаты CTR им. А. Амисулашвили

Результаты CTR им. А. Амисулашвили

Почтовые рассылки

Для подобных рассылок раз в неделю никакая BigData, конечно, не нужна

Мерять эффективность email-рассылок можно и без специальных навыков и средств. Мы же используем инфраструктуру данных для кампейнинга: выборке пользователей для отправки им персонализированных сообщений. Мы выявляем пользователей, которые не заходили несколько недель на сайт, чтобы рассказать им через email, что интересного у нас появилось, пока их не было. Мы напоминаем игрокам об их Fantasy-команде или турнире прогнозов, которые они забросили. Мы приглашаем болельщиков в тематические форумы по интересам.

Бизнес-аналитика

Как устроена BigData в Sports.ru и Tribuna.com?

Подглядеть в полный недельный отчет Sports.ru

Ха-ха!

Раз в неделю руководители всех отделов Sports.ru и Tribuna.com собираются для ретроспективы прошедшей недели и обсуждении планов на текущую. Каждый участник рассказывает о своей области деятельности, опираясь на данные в отчете, который формируется еженедельно из данных, собранных в нашей инфраструктуре. Мы обсуждаем структуру трафика, продажи, конкурентов и рынок в целом, деятельность редакции и SMM, разработку, продукт, финансы, ИТ. Ценность этих встреч исключительно в синхронизации знаний и приоритетов на уровне всей компании — никакой бюрократической отчетности под козырек.


… И это лишь малая часть того, что у нас уже есть в BigData. Мы показали вам нашу инфраструктуру сквозь замочную скважину с одной только целью — вдохновить вас на обработку данных в своем проекте. Это действительно не так страшно и дорого, как кажется на первый взгляд: мы обошлись без капитальных затрат в оборудование на старте, хоть и потратили 4 человеко-месяца разработки. На аренду серверов и оплату внешних сервисов мы тратим не более 60 тыс. рублей в месяц. И мы уверяем вас — прозрение стоит того.

Пффф! Пост про BigData и ни одного упоминания MapReduce или хотя бы слова петабайт. Коты сваливают отсюда

Уиииии

Дерзайте!

Автор: subz

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js