19
Я.Субботник, Челябинск, 25 февраля 2012 года Руководитель группы разработки справочных сервисов Иван Бибилов Спортивные проекты Яндекса. Взгляд изнутри

Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

  • Upload
    yandex

  • View
    637

  • Download
    4

Embed Size (px)

DESCRIPTION

Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри" Я.Субботник в Челябинске в рамках конференции UWDC О докладе: Спортивные проекты имеют четкие сроки запуска, повышенные требования к нагрузкам и отказоустойчивости. Из-за этого выбор архитектуры является очень важным вопросом. В докладе будет подробно рассказано о внутреннем устройстве спортивных проектов, кешировании и высоких нагрузках.

Citation preview

Page 1: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

Я.Субботник,  Челябинск,  25  февраля  2012  года  

Руководитель  группы  разработки  справочных  сервисов    

Иван  Бибилов  

Спортивные  проекты  Яндекса.  Взгляд  изнутри  

Page 2: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

2  

•  Олимпиада  2010  в  Ванкувере  

•  Чемпионат  мира  по  футболу  2010  

•  Чемпионат  мира  по  хоккею  2010,  2011  

•  Азиада  2011  

•  Евро  2012  

•  ...  

 

Спортивные  проекты  Яндекса  

Page 3: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

3  

Page 4: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

4  

•  Четкие  сроки  запуска  и  консервирования  проекта  

•  Короткий  срок  жизни  –  1-­‐2  недели  

•  Высокая  посещаемость  за  все  время  проведения  проекта  (несколько  миллионов  уникальных  посетителей  за  время  проведения  проекта)  

•  Несколько  пиков  посещений  для  финалов,  матчей  сборной  Росcии,  Казахстана,  Украины,  Белоруссии    и  т.д.  

•  Взаимодействие  с  большим  количеством  поставщиков  данных  и  сервисов  внутри  Яндекса  

 

Особенности  

Page 5: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

5  

•  Турнирные  сетки,  результаты  матчей  и  соревнований.  

•  Текстовые,  аудио-­‐,  видеотрансляции,  видеонарезки.  

•  Программа  ТВ.  

•  Новости,  Фото.  

•  Подписка  на  SMS,  сообщения  в  Твиттер.  

•  Инфографика.  

•  Ссылки  по  теме.  

 

Традиционные  информационные  блоки  

Page 6: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

6  

Page 7: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

7  

Eurosport.ru,  Sportbox.ru,  Sports.ru,  Газета.ру,  Первый  канал,  Советский  спорт,  Спорт-­‐Экспресс,  Чемпионат.ру,  РИА  Новости,  Livesport.ru  

 

Наши  партнеры  (на  примере  ЧМ  по  Хоккею  в  2011)  

Page 8: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

8  

 

 

Немного  конкретики  

 

 

•  Проект  разделен  на  фронтенд  (XScript)  и  бэкенд  (Django).  

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

•  Страница  сервиса  просто  собирает  некоторые  блоки  вместе  

•  Вид  страницы  можно  настраивать  –  менять  блоки  местами,  включать  и  выключать  блоки  

•  Все  блоки  генерируются  из  xml  (одной  или  нескольких)  

•  Генерированием  блоков  занимается  XScript-­‐кластер  

 

Page 9: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

9  

 

 

XScript  

 

 

Можно  считать,  что  Xscript  –  это  шаблонизатор,  позволяющий  управлять  данными  из  xml  и  вставлять  их  в  верстку  

 

Картинка с сайта http://joystore.ru/product/magnitiki/

Page 10: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

10  

 

 

XScript  

 

 

Page 11: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

11  

 

 

Данные  

 

 

•  XML-­‐данные  поступают  в  Xscript-­‐кластер  от  бэкенда  

•  Бэкенд  написан  на  Python+Django  

•  Бэкенд  с  какой-­‐то  периодичность  выкладывает  (обновляет)  в  статику  xml-­‐файлы  для  построения  блоков  

•  Динамическая  часть  бэкенда  обслуживает  пользовательские  реакции  

Page 12: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

12  

 

 

Бэкенд  

 

 

Картинка с сайта http://shauryaonsoftware.wordpress.com/2010/05/18/to-learn-a-new-programming-language-part-1/

Почти не ограничивает нас в выборе языка программирования

Page 13: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

13  

Бэкенд  Адаптирует xml от поставщиков под нужны фронтенда

•  Дополняет  данными  

•  Преобразует  xml  в  более  удобный  для  использования  вид  

•  Раскладывает  по  каталогам  в  зависимости  от  типа  данных,  языка,  других  параметров  

•  Копирует  media  (картинки)  на  сервера  Яндекса,  заменяя  ссылки  в  исходных  файлах  

 

Page 14: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

14  

Бэкенд  Позволяет контент-менеджерам управлять данными

Page 15: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

15  

 

 

Нагрузки  на  Олимпиаде  2011  

 

  •  Рекорд  –  1  700  000  посетителей  в  сутки  

•  Примерно  40-­‐50  хитов  на  формирование  блоков  от  посетителя  

•  Пиковая  нагрузка  4200  rps  на  Xscript-­‐кластер  

 

Page 16: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

16  

 

 

Кэш  –  не  хак  

 

 

•  Результаты  генерации  блоков  кешируются  в  памяти  

•  Кэш  на  фронтенде  обновляется  событийно,  когда  данные  обновляет  бэкенд  

•  Бэкенд  по  расписанию  (раз  в  минуту,  5  минут,  10  минут  для  разных  блоков)  опрашивает  поставщиков.  Если  есть  обновления,  он  их  загружает  

•  Параметров  кэша  не  так  и  много,  почти  весь  проект  можно  держать  в  оперативной  памяти  

 

Page 17: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

17  

Схема  имеет  и  недостатки  

Для  «быстрых»  видов  спорта,  например,  для  баскетбола  и  

настольного  тенниса,  можно  перейти  к  событийной  схеме  

работы  бэкенда,  когда  поставщик  данных  уведомляет  о  том,  

что  информация  изменилась  и  ее  надо  обновить.  

Page 18: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

18  

 

 

 

 

Спорт  делает  тебя  быстрее,  выше,  сильнее  и  чуть-­‐чуть  смешнее.  

Фото  с  сайта  Sovsport.  Фотограф  –  Игорь  Уткин  

Page 19: Иван Бибилов "Спортивные проекты Яндекса. Взгляд изнутри"

Руководитель  группы  разработки  справочных  сервисов  

bibilov@yandex-­‐team.ru  

 

Иван  Бибилов