Скачать презентацию Масштабируемость Интернет-ресурсов Игорь Лобанов Центр Финансовых Технологий Скачать презентацию Масштабируемость Интернет-ресурсов Игорь Лобанов Центр Финансовых Технологий

6625f503707adcbf91669c83669f15a7.ppt

  • Количество слайдов: 25

Масштабируемость Интернет-ресурсов Игорь Лобанов Центр Финансовых Технологий Масштабируемость Интернет-ресурсов Игорь Лобанов Центр Финансовых Технологий

Некоторые определения • Атрибут качества – описание реакции системы на некоторый вид стумулов ▫ Некоторые определения • Атрибут качества – описание реакции системы на некоторый вид стумулов ▫ производительность ▫ масштабируемость ▫ безопасность • Архитектура – сумма ограничений реализации, призванная обеспечить выполнение атрибутов качества • Архитектор – ответственный за установку и соблюдение ограничений

Slashdot-эффект • Сотни новых посетителей в минуту в течение 20 часов • Мгновенный рост Slashdot-эффект • Сотни новых посетителей в минуту в течение 20 часов • Мгновенный рост нагрузки на два порядка • Уникальная возможность и большая опасность

Атрибуты качества • Масштабируемость ▫ рост числа клиентов – нет деградации качества • Производительность Атрибуты качества • Масштабируемость ▫ рост числа клиентов – нет деградации качества • Производительность ▫ любой запрос клиента – время отклика • Отказоустойчивость ▫ выход из строя узла – сохранение доступности

Звенья информационной системы Звенья информационной системы

Профилирование Профилирование

Кривые масштабирования CPU/число клиентов IOWait/число клиентов Кривые масштабирования CPU/число клиентов IOWait/число клиентов

Риски нагрузочного тестирования • Неадекватный профиль нагрузки ▫ берём исторические данные • Искажение результатов Риски нагрузочного тестирования • Неадекватный профиль нагрузки ▫ берём исторические данные • Искажение результатов эксперимента ▫ контролируем способ измерения • Неадекватный инструмент ▫ контролируем реальный профиль нагрузки

Повышение масштабируемости • Оптимизация ▫ в идеале – избавление от работы вообще • Вертикальное Повышение масштабируемости • Оптимизация ▫ в идеале – избавление от работы вообще • Вертикальное масштабирование ▫ более производительное оборудование • Горизонтальное масштабирование ▫ кластеризация – распределение нагрузки

Content Delivery Network Content Delivery Network

Оптимизация прикладной логики • Алгоритмические оптимизации • Прикладное кэширование ▫ что? страницы фрагменты страниц Оптимизация прикладной логики • Алгоритмические оптимизации • Прикладное кэширование ▫ что? страницы фрагменты страниц результаты запросов к базе данных ▫ hit ratio ▫ инвалидация • Асинхронная обработка запросов

Оптимизация доступа к данным • • Постоянные соединения Индексирование Денормализация схемы данных Преагрегация данных Оптимизация доступа к данным • • Постоянные соединения Индексирование Денормализация схемы данных Преагрегация данных

Денормализация схемы данных Денормализация схемы данных

Преагрегация данных Преагрегация данных

Оптимизация СУБД • Тюнинг ▫ обмениваем скорость на потребление памяти • Блочный кэш ▫ Оптимизация СУБД • Тюнинг ▫ обмениваем скорость на потребление памяти • Блочный кэш ▫ уменьшение физических дисковых чтений • Кэш запросов ▫ результаты часто повторяющихся запросов

Вертикальное масштабирование За Против • Код и архитектура не требуют доработки • Оборудование со Вертикальное масштабирование За Против • Код и архитектура не требуют доработки • Оборудование со временем становится быстрее и дешевле • Цена на старшие модели растёт быстрее, чем их относительная производительность ▫ бюджет кончится раньше!

Масштабирование кластера Масштабирование кластера

Распределение нагрузки Распределение нагрузки

Общее состояние: каждый за себя • Локальные сессионные данные в узле • Локальный кэш Общее состояние: каждый за себя • Локальные сессионные данные в узле • Локальный кэш в узле • Инвалидация кэша?

Общее состояние: на клиенте • Все сессионные данные присутствуют в каждом запросе • Кэш? Общее состояние: на клиенте • Все сессионные данные присутствуют в каждом запросе • Кэш? • Требования безопасности?

Общее состояние: в базе данных • Вся сессионная информация в базе данных, узлы в Общее состояние: в базе данных • Вся сессионная информация в базе данных, узлы в кластере прикладной логики «обезличены» • Дополнительная нагрузка на базу данных • Кэш?

Общее состояние: кластерный кэш • «Общая память» подходит и для сессионных данных, и для Общее состояние: кластерный кэш • «Общая память» подходит и для сессионных данных, и для кэша • Нет проблем с инвалидацией кэша • Требуется переработка системы

Репликация данных • Синхронная ▫ изменения во всех узлах кластера БД • Асинхронная ▫ Репликация данных • Синхронная ▫ изменения во всех узлах кластера БД • Асинхронная ▫ мастер-ведомый ▫ мультимастер

Шардинг данных Шардинг данных

Fresh meat • Cloud computing ▫ Amazon Elastic Compute Cloud (EC 2) • Infrastructure Fresh meat • Cloud computing ▫ Amazon Elastic Compute Cloud (EC 2) • Infrastructure as a Service (Iaa. S) ▫ ▫ ▫ Amazon Simple Storage Service (S 3) Amazon Simple. DB Google App. Engine Google Big. Table Engine. Yard