30
Шаблоны проектирования масштабируемых систем. Январь 2013 Игорь Чуб Архитектор, компания Максимайзер

Top big data architecture patterns by Igor Chub

Embed Size (px)

DESCRIPTION

presentation from the .Net User Group Dnipro Meeting (24 th of January 2013)

Citation preview

Page 1: Top big data architecture patterns  by Igor Chub

Шаблоны проектирования масштабируемых

систем.

Январь 2013Игорь ЧубАрхитектор, компания Максимайзер

Page 2: Top big data architecture patterns  by Igor Chub

Факты о Максимайзере MVT, персонализация, сегментация,

Web аналитика.

1-е место в Великобритании.

7 миллиардов HTTP запросов в месяц.

500 миллионов уникальных пользователей в месяц.

Page 3: Top big data architecture patterns  by Igor Chub

Факты о Максимайзере

Экспоненциальный рост числа клиентов и объемов данных.

300 ms SLA на время ответа HTTP сервера.

Десятки серверов по всему миру.

Интерактивные Ad-Hoc репорты.

Page 4: Top big data architecture patterns  by Igor Chub

План доклада

• Что такое Big Data?• Big Data: типы нагрузок.• Big Data: архитектурные

шаблоны.• Практические советы.

Page 5: Top big data architecture patterns  by Igor Chub

Что такое Big Data?

90% всех данных создано в 2011-12гг

2,200,000 TB создается ежедневно

К 2015 будет создано 8,000,000,000 TB = 8 ZB =

18,000,000 Библиотек Конгресса США

Увеличение IP трафика в 4 раза

Page 6: Top big data architecture patterns  by Igor Chub

Что такое Big Data?

Page 7: Top big data architecture patterns  by Igor Chub

Что такое Big Data?

Page 8: Top big data architecture patterns  by Igor Chub

Что такое Big Data Уровень развития различных

технологий Big Data представлены в отчете Gartner “Hype Cycle for Big Data 2012” http://whatsthebigdata.com/2012/08/16/gartners-hype-cycle-for-big-data/

Page 9: Top big data architecture patterns  by Igor Chub

Big Data: slashdot эффект Топ 1000 сайтов по объему трафика

http://www.google.com/adplanner/static/top1000/#

#1 Facebook – 380,000 rps #2 Youtube – 38,000 rps #29 LinkedIn – 965 rps #84 Odnoklassniki.ru – 5000 rps Будьте готовы к Slashdot/хабра

эффекту!

Page 10: Top big data architecture patterns  by Igor Chub

Big Data: типы нагрузок

Запрос-ответ

Page 11: Top big data architecture patterns  by Igor Chub

Big Data: типы нагрузок Обработка потоков событий в реальном

времени

Page 12: Top big data architecture patterns  by Igor Chub

Big Data: типы нагрузок Работа с графами

Page 13: Top big data architecture patterns  by Igor Chub

Big Data: типы нагрузок

Иголка в стоге сена

Page 14: Top big data architecture patterns  by Igor Chub

Bid Data: типы нагрузок Индексирование текста

Page 15: Top big data architecture patterns  by Igor Chub

Big Data: типы нагрузок

Аналитические отчеты

Page 16: Top big data architecture patterns  by Igor Chub

Big Data: типы нагрузок Неструктурированные данные

Page 17: Top big data architecture patterns  by Igor Chub

Big Data: типы нагрузок

Запрос-ответ

Обработка потоков данных

Обработка графов

Иголка в стоге сена

Индексирование текста

Аналитические отчеты

Неструктурированные данные

Page 18: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Как хранить МНОГО данных? Как их обрабатывать БЫСТРО? Что ДЕЛАТЬ с собранными

данными?

Page 19: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Распределенное хранение Параллельная обработка Асинхронность Offline обработка Кеширование

Page 20: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны. LB+Shared Nothing Nodes

Примеры: stateless Web farms, parallel processing, distributed databases and caches, DFSs, CDN.

Плюсы: простота реализации, клиенты знают только о LB, ноды независимы.

Минусы: LB – узкое место и точка отказа, привязка пользователя к ноде с данными.

Page 21: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны. LB + Stateless Nodes +

Scalable Storage Examples: Web farms,

parallel processing. Pros: бизнес логика

масштабируется отдельно от данных, минимум точек отказа

Cons: сессия пользователя должна храниться в хранилище.

Page 22: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны. P2P

Examples: Torrent, Cassandra, Skype, WCF P2P.

Pros: масштабируемость, отказоустойчивость, автоконфигурирование

Cons: безопасность, сетевые штормы, сложный мониторинг, нестабильная производительность, сложный алгоритм роутинга.

Page 23: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Очередь сообщений Пример: Twitter. Pros: масштабируемость

приложений, ускорение синхронных запросов, QoS, сглаживание пиков, гибкие коммуникационные шаблоны, слабая связанность приложений.

Cons: центральный брокер, сообщения нетипизированы

Page 24: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Page 25: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Data Distribution Service Mission-critical, ultra low

latency, high bandwidth. Pros: те же что у

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

Cons: специализированные сетевые протоколы

Page 26: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Map Reduce Используется на

большинстве крупных сайтов для офлайн обработки.

Pros: масштабируемость

Cons: латентность, сложность алгоритмов, поддержка кода

Page 27: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

In memory обработка потока данных

CEP, ESP – MS StreamInsight, NEsper, Storm.

Pros: Mapreduce в реальном времени, выявление патернов

Cons: ограниченное временное окно

Page 28: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Распределенный кеш Memcache, Redis,

AppFabric, NCache. Pros: разгрузка DB,

быстрый ответ Cons: инвалидация

кеша, consistency!

Page 29: Top big data architecture patterns  by Igor Chub

Big Data: архитектурные шаблоны.

Content Delivery Network (CDN)

Pros: разгрузка файл-серверов, быстрый ответ в любом регионе

Cons: стоимость, публичный доступ к файлу

Page 30: Top big data architecture patterns  by Igor Chub

Практические советы• Проанализируй оси развития системы.• Разделяй по компонентам с учетом осей.• Избегай глобальной координации. • Масштабируй конфигурирование системы.• Стоимость с учетом масштаба.• Планируй обновление “железа” на этапе

проектирования.• Масштабируемость сети.