top big data architecture patterns by igor chub
DESCRIPTION
presentation from the .Net User Group Dnipro Meeting (24 th of January 2013)TRANSCRIPT
Шаблоны проектирования масштабируемых
систем.
Январь 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: стоимость, публичный доступ к файлу
Практические советы• Проанализируй оси развития системы.• Разделяй по компонентам с учетом осей.• Избегай глобальной координации. • Масштабируй конфигурирование системы.• Стоимость с учетом масштаба.• Планируй обновление “железа” на этапе
проектирования.• Масштабируемость сети.