SlideShare a Scribd company logo
Твиттер:
архитектура и данные
Олег Савкин Sr. Database
Developer
Twitter
Олег Савкин
Sr. Database Developer, Twitter
Опыт работы:
Кто такой Sr. Database developer
- Не совсем sysadmin
- Не совсем DBA
- Много лет работы с различными базами данных
- Опыт участия в Enterprise проектах
- Проектирование баз данных – логическое и физическое
- Использование различных языков программирования
- Общение с заказчиками и проектирование проекта
- И т.п.
Твиттер в цифрах
• 3,860 работников
• 2,000 в San Francisco
• 40% технические специалисты.
• 313 миллионов активных пользователей в месяц
• 100+ миллионов твитов в день
• 40 языков (японский, китайский, фарси, арабский, и прочие..)
• 200+ миллионов бродкастов в Перископе на март 2016
143,200 peak tweets/sec
Сегодня мы поговорим про
- Архитектуру
- Как работает Твиттер
- Данные в Твиттере
Архитектура Твиттера
Hadoop@Twitter: взаимодействие датацентров
Олег Савкин
Олег Савкин
Twitter Architecture: Microservices
13
Как работает Твиттер
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
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
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
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
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
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
Клиенты Твиттера регистрируют множество различных клиентских
событий, таких как показы и клики
«Жизнь» клиентского события
21
Данные в Твиттере
Что Твиттер хранит в MySQL:
• Твиты
• Пользователей
• Социальные графы
• Данные о доходах
• Данные внутренних сервисов
Hadoop@Twitter в цифрах
600+
Hadoop worker nodes
40
Thousand Petabytes
Storage available
(Ignoring replication)
В Твиттере одни из самых больших кластеров в мире.
Например, один из самых «горячих» и используемых
кластеров имеет 10 тысяч нод
Как используется Hadoop в Твиттере:
• Обработка большого объема данных
• Сохранение событий
• Поиск
• Эксперементирование
• Показы рекламы
• Анализ и обработка данных
• Backup и хранение данных
• И т.д..
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: Типы кластеров
Hadoop@Twitter – обзор pipelines
• Сбор логов событий с компьютеров Twitter Front End во всех
датацентрах
• Агрегирование логов по времени и категориям во всех
датацентрах
• Распределение логов по различным кластерам в
определенные директории
• Многоуровневые SLA для различных категорий задач
• Логи сохраняются в HDFS в почасовых partitions в
стандартной HDFS структуре
• Схемы файлов хранимых в HDFS определены в Thrift
Обработка данных в Твиттере
Пример аналитики в Твиттерe
@toyways
Олег Савкин Sr. Database
developer
Twitter
Вопросы?
www.facebook.com/oleg
www.linkedin.com/in/osavkinosavkin@gmail.com

More Related Content

PDF
Игорь Кашкута
PDF
Андрей Лузин
PDF
Максим Пугачев
PDF
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
PPTX
Александр Белоцерковский
PPTX
Александр Афенов
PPTX
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
PDF
Денис Трифонов
Игорь Кашкута
Андрей Лузин
Максим Пугачев
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Александр Белоцерковский
Александр Афенов
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Денис Трифонов

What's hot (19)

PDF
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
PDF
Стабы для фронтенда - Никита Мостовой (HeadHunter)
PDF
Работаем с API по-взрослому - Максим Кислов (Badoo)
PDF
Javascript-фреймворки:
 должен остаться только один
PDF
Історія декількох проектів та що в них пішло не так - UA Mobile 2019
PPTX
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...
PDF
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
PDF
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
PPTX
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
PPTX
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
PDF
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
PPTX
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
PPTX
Самодиагностика сервисов на базе платформы .NET
PDF
Макс Волошин: Php + shell = ♥
PDF
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
PPTX
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
PDF
Codefest 2016 - Go в Openprovider
PPT
Highload2009 Rybak Badoo Os
PDF
Алексей Иванкин: Highload + PHP
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Стабы для фронтенда - Никита Мостовой (HeadHunter)
Работаем с API по-взрослому - Максим Кислов (Badoo)
Javascript-фреймворки:
 должен остаться только один
Історія декількох проектів та що в них пішло не так - UA Mobile 2019
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Самодиагностика сервисов на базе платформы .NET
Макс Волошин: Php + shell = ♥
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Codefest 2016 - Go в Openprovider
Highload2009 Rybak Badoo Os
Алексей Иванкин: Highload + PHP
Ad

Similar to Олег Савкин (20)

PDF
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
PPT
Антон Зарубин
PPTX
доклад на вмк 15.10.2015
PDF
Виртуализация Данных: Введение
PPT
PPTX
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
PDF
Большие данные и бизнес-аналитика: как найти пользу?
PPT
4CIO.ppt
PPT
4CIO.ppt
PPTX
Архитектура в web, доклад на Women techmakers, Omsk, 2014
PDF
Анализ данных в MATLAB 
PPT
Hivext 04.2010
PPT
Hivext – облачная платформа для быстрой разработки интернет приложений
PDF
Экскурс в мир WEB разработки
PDF
Mail.Ru Group: Статистика Платформы@Mail.Ru: Как мы обсчитываем тысячи прилож...
PDF
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
PPT
Py con 2010_django_project_dev_full_circle
PPTX
Python-технология которую легко продавать!
PPT
Инфраструктура социального проекта
PPT
IBM ECM & Discovery Strategy
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
Антон Зарубин
доклад на вмк 15.10.2015
Виртуализация Данных: Введение
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Большие данные и бизнес-аналитика: как найти пользу?
4CIO.ppt
4CIO.ppt
Архитектура в web, доклад на Women techmakers, Omsk, 2014
Анализ данных в MATLAB 
Hivext 04.2010
Hivext – облачная платформа для быстрой разработки интернет приложений
Экскурс в мир WEB разработки
Mail.Ru Group: Статистика Платформы@Mail.Ru: Как мы обсчитываем тысячи прилож...
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Py con 2010_django_project_dev_full_circle
Python-технология которую легко продавать!
Инфраструктура социального проекта
IBM ECM & Discovery Strategy
Ad

More from CodeFest (20)

PDF
Alexander Graebe
PDF
Никита Прокопов
PPTX
Денис Баталов
PDF
Елена Гальцина
PDF
Александр Калашников
PDF
Ирина Иванова
PDF
Marko Berković
PDF
Денис Кортунов
PDF
Александр Зимин
PDF
Сергей Крапивенский
PDF
Сергей Игнатов
PDF
Николай Крапивный
PDF
Alexander Graebe
PDF
Вадим Смирнов
PDF
Константин Осипов
PDF
Raffaele Rialdi
PDF
Rene Groeschke
PDF
Иван Бондаренко
PDF
Mete Atamel
PDF
Алексей Акулович
Alexander Graebe
Никита Прокопов
Денис Баталов
Елена Гальцина
Александр Калашников
Ирина Иванова
Marko Berković
Денис Кортунов
Александр Зимин
Сергей Крапивенский
Сергей Игнатов
Николай Крапивный
Alexander Graebe
Вадим Смирнов
Константин Осипов
Raffaele Rialdi
Rene Groeschke
Иван Бондаренко
Mete Atamel
Алексей Акулович

Олег Савкин

  • 1. Твиттер: архитектура и данные Олег Савкин Sr. Database Developer Twitter
  • 2. Олег Савкин Sr. Database Developer, Twitter Опыт работы:
  • 3. Кто такой Sr. Database developer - Не совсем sysadmin - Не совсем DBA - Много лет работы с различными базами данных - Опыт участия в Enterprise проектах - Проектирование баз данных – логическое и физическое - Использование различных языков программирования - Общение с заказчиками и проектирование проекта - И т.п.
  • 5. • 3,860 работников • 2,000 в San Francisco • 40% технические специалисты. • 313 миллионов активных пользователей в месяц • 100+ миллионов твитов в день • 40 языков (японский, китайский, фарси, арабский, и прочие..) • 200+ миллионов бродкастов в Перископе на март 2016
  • 7. Сегодня мы поговорим про - Архитектуру - Как работает Твиттер - Данные в Твиттере
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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 Клиенты Твиттера регистрируют множество различных клиентских событий, таких как показы и клики
  • 22. Что Твиттер хранит в MySQL: • Твиты • Пользователей • Социальные графы • Данные о доходах • Данные внутренних сервисов
  • 23. Hadoop@Twitter в цифрах 600+ Hadoop worker nodes 40 Thousand Petabytes Storage available (Ignoring replication) В Твиттере одни из самых больших кластеров в мире. Например, один из самых «горячих» и используемых кластеров имеет 10 тысяч нод
  • 24. Как используется Hadoop в Твиттере: • Обработка большого объема данных • Сохранение событий • Поиск • Эксперементирование • Показы рекламы • Анализ и обработка данных • Backup и хранение данных • И т.д..
  • 25. 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: Типы кластеров
  • 26. Hadoop@Twitter – обзор pipelines • Сбор логов событий с компьютеров Twitter Front End во всех датацентрах • Агрегирование логов по времени и категориям во всех датацентрах • Распределение логов по различным кластерам в определенные директории • Многоуровневые SLA для различных категорий задач • Логи сохраняются в HDFS в почасовых partitions в стандартной HDFS структуре • Схемы файлов хранимых в HDFS определены в Thrift
  • 29. @toyways Олег Савкин Sr. Database developer Twitter Вопросы? www.facebook.com/oleg www.linkedin.com/in/osavkinosavkin@gmail.com