Upload
net-user-group-dnipro
View
634
Download
1
Embed Size (px)
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: стоимость, публичный доступ к файлу
Практические советы• Проанализируй оси развития системы.• Разделяй по компонентам с учетом осей.• Избегай глобальной координации. • Масштабируй конфигурирование системы.• Стоимость с учетом масштаба.• Планируй обновление “железа” на этапе
проектирования.• Масштабируемость сети.