Slide 1

Slide 1 text

Твиттер: архитектура и данные Олег Савкин Sr. Database Developer Twitter

Slide 2

Slide 2 text

Олег Савкин Sr. Database Developer, Twitter Опыт работы:

Slide 3

Slide 3 text

Кто такой Sr. Database developer - Не совсем sysadmin - Не совсем DBA - Много лет работы с различными базами данных - Опыт участия в Enterprise проектах - Проектирование баз данных – логическое и физическое - Использование различных языков программирования - Общение с заказчиками и проектирование проекта - И т.п.

Slide 4

Slide 4 text

Твиттер в цифрах

Slide 5

Slide 5 text

• 3,860 работников • 2,000 в San Francisco • 40% технические специалисты. • 313 миллионов активных пользователей в месяц • 100+ миллионов твитов в день • 40 языков (японский, китайский, фарси, арабский, и прочие..) • 200+ миллионов бродкастов в Перископе на март 2016

Slide 6

Slide 6 text

143,200 peak tweets/sec

Slide 7

Slide 7 text

Сегодня мы поговорим про - Архитектуру - Как работает Твиттер - Данные в Твиттере

Slide 8

Slide 8 text

Архитектура Твиттера

Slide 9

Slide 9 text

Hadoop@Twitter: взаимодействие датацентров

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Twitter Architecture: Microservices

Slide 13

Slide 13 text

13 Как работает Твиттер

Slide 14

Slide 14 text

Twitter Clients clients routing logic storage Manhattan (Distributed DB) Gizmoduck (User Service) Web API Tweetypie (Tweet Service) Timeline Service Social Graph Service TBird (Tweet Store) Tweets API Search Service Direct Messages Service Users API Search API Messages API Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) TFE (Twitter Front End) HTTPS TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients Manhattan (Distributed DB) API Timeline API

Slide 15

Slide 15 text

Twitter Front End (TFE) clients routing logic storage Manhattan (Distributed DB) Gizmoduck (User Service) TFE (Twitter Front End) Tweetypie (Tweet Service) Timeline Service Social Graph Service TBird (Tweet Store) Search Service Direct Messages Service Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) HTTPS HTTP TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients Manhattan (Distributed DB) API Web API Tweets API Users API Search API Messages API Timeline API

Slide 16

Slide 16 text

Presentation Layer Services clients routing logic storage Manhattan (Distributed DB) Gizmoduck (User Service) Tweetypie (Tweet Service) Timeline Service Social Graph Service TBird (Tweet Store) Search Service Direct Messages Service Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) HTTP TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients HTTPS Web API Tweets API Users API Search API Messages API TFE (Twitter Front End) Thrift Manhattan (Distributed DB) API Timeline API

Slide 17

Slide 17 text

Application Logic Services clients routing logic storage Manhattan (Distributed DB) TBird (Tweet Store) Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) HTTP TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients HTTPS TFE (Twitter Front End) Thrift Web API Tweets API Users API Search API Messages API Gizmoduck (User Service) Tweetypie (Tweet Service) Timeline Service Social Graph Service Search Service Direct Messages Service Manhattan (Distributed DB) API Timeline API

Slide 18

Slide 18 text

Storage Services clients routing logic storage HTTP TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients HTTPS TFE (Twitter Front End) Thrift Gizmoduck (User Service) Tweetypie (Tweet Service) Timeline Service Social Graph Service Search Service Direct Messages Service Manhattan (Distributed DB) Tbird (Tweet Store) Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) Manhattan (Distributed DB) API Web API Tweets API Users API Search API Messages API Timeline API

Slide 19

Slide 19 text

Analytics example: Logging User Events clients routing logic storage Scribe Aggregator Web API TFE (Twitter Front End) Tweetypie (Tweet Service) TBird (Tweet Store) Rufous Twitter for Android Hadoop (HDFS) … … … … twitter.com API Клиенты Твиттера регистрируют множество различных клиентских событий, таких как показы и клики

Slide 20

Slide 20 text

«Жизнь» клиентского события

Slide 21

Slide 21 text

21 Данные в Твиттере

Slide 22

Slide 22 text

Что Твиттер хранит в MySQL: • Твиты • Пользователей • Социальные графы • Данные о доходах • Данные внутренних сервисов

Slide 23

Slide 23 text

Hadoop@Twitter в цифрах 600+ Hadoop worker nodes 40 Thousand Petabytes Storage available (Ignoring replication) В Твиттере одни из самых больших кластеров в мире. Например, один из самых «горячих» и используемых кластеров имеет 10 тысяч нод

Slide 24

Slide 24 text

Как используется Hadoop в Твиттере: • Обработка большого объема данных • Сохранение событий • Поиск • Эксперементирование • Показы рекламы • Анализ и обработка данных • Backup и хранение данных • И т.д..

Slide 25

Slide 25 text

Testing Development / testing of new jobs and data sets Bleeding edge release, no sla, business hours Ad-hoc One off / ad-hoc queries and analysis Next stable release, restarted regularly, business hours Processing Regularly scheduled production jobs with dedicated capacity Stable release, 24x7 support Cold (backups) Dense storage clusters, not for compute Stable release, 24x7 support Real-time Critical performance production jobs with dedicated capacity Stable release, 24x7 support Hadoop@Twitter: Типы кластеров

Slide 26

Slide 26 text

Hadoop@Twitter – обзор pipelines • Сбор логов событий с компьютеров Twitter Front End во всех датацентрах • Агрегирование логов по времени и категориям во всех датацентрах • Распределение логов по различным кластерам в определенные директории • Многоуровневые SLA для различных категорий задач • Логи сохраняются в HDFS в почасовых partitions в стандартной HDFS структуре • Схемы файлов хранимых в HDFS определены в Thrift

Slide 27

Slide 27 text

Обработка данных в Твиттере

Slide 28

Slide 28 text

Пример аналитики в Твиттерe

Slide 29

Slide 29 text

@toyways Олег Савкин Sr. Database developer Twitter Вопросы? www.facebook.com/oleg www.linkedin.com/in/osavkin [email protected]