Top big data architecture patterns by Igor Chub

Preview:

DESCRIPTION

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

Citation preview

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

систем.

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

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

Web аналитика.

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

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

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

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

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

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

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

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

План доклада

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

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

Что такое Big Data?

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

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

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

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

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

Что такое Big Data?

Что такое Big Data?

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

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

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/хабра

эффекту!

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

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

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

времени

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

данными?

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

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

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

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

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

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

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

Scalable Storage Examples: Web farms,

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

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

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

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

Examples: Torrent, Cassandra, Skype, WCF P2P.

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

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

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

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

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

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

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

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

Data Distribution Service Mission-critical, ultra low

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

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

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

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

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

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

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

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

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

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

CEP, ESP – MS StreamInsight, NEsper, Storm.

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

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

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

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

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

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

кеша, consistency!

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

Content Delivery Network (CDN)

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

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

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

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

Recommended