SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Как балансировать на
сетевом канате под куполом
тяжелой нагрузки?
Сравнительный анализ
методов балансировки
трафика
Сергей Зубов
Что такое балансировка и
зачем она вообще нужна?
Что такое балансировка и
зачем она вообще нужна?
Что такое балансировка и
зачем она вообще нужна?
Какие цели преследует
балансировка?
• Основные цели:
– Распределение нагрузки между серверами
– Повышение отказоустойчивости
– Защита от некоторых видов атак
• Предъявляемые требования к системе балансировки:
– Справедливость
– Эффективность
– Сокращение времени выполнения запроса
– Сокращение времени отклика
– Предсказуемость
– Равномерная загрузка ресурсов системы
– Масштабируемость
Методы локальной
балансировки
• На канальном уровне:
– C применением отдельного
балансировщика
– C разделяемым адресом
• На сетевом уровне
• На транспортном уровне
– Equal Cost Multiple Paths
Балансировка на канальном
уровне
Балансировка на канальном
уровне (shared address)
Балансировка на канальном
уровне
• Плюсы:
– Не зависит от протоколов вышележащих уровней
– Сокращение расходов за счет отказа от выделенного
балансировщика
– Обратный трафик в сторону клиента не нагружает
балансировщик
– Используется только один публичный адрес
– Быстрое добавление и отключение сервера в кластере
• Минусы:
– Необходимо размещать сервера в одном сегменте
– Ограничение по входящей полосе (в случае с shared
address входящий трафик попадает на все сервера
одновременно)
• Решения: Linux Virtual Server
Балансировка на сетевом
уровне
Балансировка на сетевом
уровне
• Преимущества:
– Не зависит от протоколов высокого уровня
– Полная прозрачность работы для серверов
– Один публичный адрес
• Недостатки:
– Повышенная нагрузка на балансировщик за счет
обратного трафика
• Решения: Linux Virtual Server, различные аппаратные
реализации
Балансировка на
транспортном уровне (ECMP)
Балансировка на
транспортном уровне
• Преимущества:
– Не зависит от протоколов высокого уровня
– Один публичный адрес
– Отсутствие необходимости приобретать дополнительное
оборудование
• Недостатки:
– Необходимо ставить на сервера дополнительный софт
– Отсутствует server-affinity (все соединения разрываются
при добавлении/исключении сервера)
– Ограничения количества ECMP на роутерах
– Равномерность распределения нагрузки накладывает
требование к выравниванию производительности
серверов
– Таймауты BGP приводят к распределению нагрузки на
недоступный сервер
• Решения: Сisco 3750X, 4500-X, 6500+Sup2T
Методы глобальной
балансировки
• DNS балансировка
– DNS Round Robin
• Балансировка на прикладном
уровне:
– Проксирование (Full Proxy)
– Redirect запросов
• Балансировка на сетевом уровне:
– Anycast
DNS Round Robin
DNS Round Robin
• Сильные стороны:
– Абсолютная независимость от протокола высокого уровня
– Независимость от нагрузки сервера благодаря
кэширующим DNS-серверам
– Универсальность (как локальная, так и глобальная
балансировки)
– Очень низкая стоимость решения и быстрый старт
• Слабые стороны:
– Сложно отключать сервера (необходимо доп.
резервирование по типу CARP)
– Сложно распределять нагрузку в нужной пропорции
– Ограниченность IP-адресов (т.к. каждый сервер должен
иметь свой глобальный IP)
– Необходимость держать двойной запас серверной
мощности
• Решения: любой DNS сервер (например, Named)
Full proxy
Full proxy
• Плюсы:
– Server-affinity (по определенной настройке cookie)
– Распределение разных типов запросов к разным серверам
– Возможность анализировать и модифицировать запросы
– Фильтрация запросов по URL (защита от разных атак)
– Самостоятельно определяют работоспособность каждого
узла
• Минусы:
– Необходимо балансировать нагрузку на сами
балансировщики
– Дополнительная точка отказа
– Большое потребление ресурсов
– Свой прокси для каждого протокола
• Решения: HAProxy, nginx
Redirect запросов (http)
Redirect запросов
• Плюсы:
– Распределение запросов по разным серверам за счет
анализа запроса
• Минусы:
– Достаточно малая применимость к протоколам высокого
уровня
– Увеличение времени отклика за счет обращения к
редиректору
– Два запроса к сервису на каждый запрос клиента
• Решения: nginx
Балансировка на базе Anycast
Балансировка на базе Anycast
• Плюсы:
– Минимальные задержки при обработке запросов
– Доставка трафика через немагистральные каналы
(удешевление)
– Распределением нагрузки занимается сама сеть
– Высокая отказоустойчивость
– Легко добавлять и выводить из работы сервера
• Минусы:
– Возможность перестроения маршрутов (критично для
TCP-сессий)
– Отсутствует возможность проконтролировать, с какого
узла обслуживается пользователь (этим рулит сеть)
– Дорогое оборудование
– Интересы ISP
Алгоритмы распределения
нагрузки
• Weighted Round Robin
• Least Connections
• Destination Hash Scheduling и Source
Hash Scheduling
• Sticky Sessions
Очень кратко о решениях
интеграторов
• Cisco ACE
• F5 BigIP
• Alteon NG
• Cisco CSS
Совмещаем методы и
перенаправляем запросы
Балансировка – это просто!
Благодарю за внимание!
Ваши вопросы???
Сергей Зубов
s.zubov@cdnvideo.com

Mais conteúdo relacionado

Mais procurados

Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
Ontico
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Ontico
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Ontico
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
Vadim Madison
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Ontico
 
RootConf 2015
RootConf 2015RootConf 2015
RootConf 2015
Evgeny Uskov
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Ontico
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Ontico
 

Mais procurados (20)

Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
 
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
 
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
 
RootConf 2015
RootConf 2015RootConf 2015
RootConf 2015
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдераHighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
 
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
 

Destaque

Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Ontico
 
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Ontico
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Ontico
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
Ontico
 
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Ontico
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Ontico
 
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Ontico
 

Destaque (14)

Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
 
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
 
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
 
Как устроен поиск / Андрей Аксенов (Sphinx)
Как устроен поиск / Андрей Аксенов (Sphinx)Как устроен поиск / Андрей Аксенов (Sphinx)
Как устроен поиск / Андрей Аксенов (Sphinx)
 
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
 
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
 
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
 

Semelhante a Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей Зубов (CDNvideo)

Alexey Bazhin Balancing
Alexey Bazhin BalancingAlexey Bazhin Balancing
Alexey Bazhin Balancing
rit2010
 
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Dmitry Lazarenko
 
Реализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых системРеализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых систем
Ruslan Safin
 
Разработка веб-сервисов осень 2013 лекция 6
Разработка веб-сервисов осень 2013 лекция 6Разработка веб-сервисов осень 2013 лекция 6
Разработка веб-сервисов осень 2013 лекция 6
Technopark
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Ontico
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование
Iosif Itkin
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Sergey Xek
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
Ontico
 
Web application scalability
Web application scalabilityWeb application scalability
Web application scalability
Oleg Alistratov
 
masterhost.ru Выбор хостинг-платформы для размещения сайта
masterhost.ru Выбор хостинг-платформы для размещения сайтаmasterhost.ru Выбор хостинг-платформы для размещения сайта
masterhost.ru Выбор хостинг-платформы для размещения сайта
webhostingguy
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
Ontico
 

Semelhante a Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей Зубов (CDNvideo) (20)

Alexey Bazhin Balancing
Alexey Bazhin BalancingAlexey Bazhin Balancing
Alexey Bazhin Balancing
 
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
 
Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debugging
 
Реализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых системРеализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых систем
 
Разработка веб-сервисов осень 2013 лекция 6
Разработка веб-сервисов осень 2013 лекция 6Разработка веб-сервисов осень 2013 лекция 6
Разработка веб-сервисов осень 2013 лекция 6
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Балансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверовБалансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверов
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
 
Web application scalability
Web application scalabilityWeb application scalability
Web application scalability
 
Мониторинг проектов: сравнительный анализ существующих решений
Мониторинг проектов:  сравнительный анализ существующих решенийМониторинг проектов:  сравнительный анализ существующих решений
Мониторинг проектов: сравнительный анализ существующих решений
 
masterhost.ru Выбор хостинг-платформы для размещения сайта
masterhost.ru Выбор хостинг-платформы для размещения сайтаmasterhost.ru Выбор хостинг-платформы для размещения сайта
masterhost.ru Выбор хостинг-платформы для размещения сайта
 
Sql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migrationSql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migration
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
 

Mais de Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Mais de Ontico (20)

Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 

Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей Зубов (CDNvideo)

  • 1. Как балансировать на сетевом канате под куполом тяжелой нагрузки? Сравнительный анализ методов балансировки трафика Сергей Зубов
  • 2. Что такое балансировка и зачем она вообще нужна?
  • 3. Что такое балансировка и зачем она вообще нужна?
  • 4. Что такое балансировка и зачем она вообще нужна?
  • 5. Какие цели преследует балансировка? • Основные цели: – Распределение нагрузки между серверами – Повышение отказоустойчивости – Защита от некоторых видов атак • Предъявляемые требования к системе балансировки: – Справедливость – Эффективность – Сокращение времени выполнения запроса – Сокращение времени отклика – Предсказуемость – Равномерная загрузка ресурсов системы – Масштабируемость
  • 6. Методы локальной балансировки • На канальном уровне: – C применением отдельного балансировщика – C разделяемым адресом • На сетевом уровне • На транспортном уровне – Equal Cost Multiple Paths
  • 9. Балансировка на канальном уровне • Плюсы: – Не зависит от протоколов вышележащих уровней – Сокращение расходов за счет отказа от выделенного балансировщика – Обратный трафик в сторону клиента не нагружает балансировщик – Используется только один публичный адрес – Быстрое добавление и отключение сервера в кластере • Минусы: – Необходимо размещать сервера в одном сегменте – Ограничение по входящей полосе (в случае с shared address входящий трафик попадает на все сервера одновременно) • Решения: Linux Virtual Server
  • 11. Балансировка на сетевом уровне • Преимущества: – Не зависит от протоколов высокого уровня – Полная прозрачность работы для серверов – Один публичный адрес • Недостатки: – Повышенная нагрузка на балансировщик за счет обратного трафика • Решения: Linux Virtual Server, различные аппаратные реализации
  • 13. Балансировка на транспортном уровне • Преимущества: – Не зависит от протоколов высокого уровня – Один публичный адрес – Отсутствие необходимости приобретать дополнительное оборудование • Недостатки: – Необходимо ставить на сервера дополнительный софт – Отсутствует server-affinity (все соединения разрываются при добавлении/исключении сервера) – Ограничения количества ECMP на роутерах – Равномерность распределения нагрузки накладывает требование к выравниванию производительности серверов – Таймауты BGP приводят к распределению нагрузки на недоступный сервер • Решения: Сisco 3750X, 4500-X, 6500+Sup2T
  • 14. Методы глобальной балансировки • DNS балансировка – DNS Round Robin • Балансировка на прикладном уровне: – Проксирование (Full Proxy) – Redirect запросов • Балансировка на сетевом уровне: – Anycast
  • 16. DNS Round Robin • Сильные стороны: – Абсолютная независимость от протокола высокого уровня – Независимость от нагрузки сервера благодаря кэширующим DNS-серверам – Универсальность (как локальная, так и глобальная балансировки) – Очень низкая стоимость решения и быстрый старт • Слабые стороны: – Сложно отключать сервера (необходимо доп. резервирование по типу CARP) – Сложно распределять нагрузку в нужной пропорции – Ограниченность IP-адресов (т.к. каждый сервер должен иметь свой глобальный IP) – Необходимость держать двойной запас серверной мощности • Решения: любой DNS сервер (например, Named)
  • 18. Full proxy • Плюсы: – Server-affinity (по определенной настройке cookie) – Распределение разных типов запросов к разным серверам – Возможность анализировать и модифицировать запросы – Фильтрация запросов по URL (защита от разных атак) – Самостоятельно определяют работоспособность каждого узла • Минусы: – Необходимо балансировать нагрузку на сами балансировщики – Дополнительная точка отказа – Большое потребление ресурсов – Свой прокси для каждого протокола • Решения: HAProxy, nginx
  • 20. Redirect запросов • Плюсы: – Распределение запросов по разным серверам за счет анализа запроса • Минусы: – Достаточно малая применимость к протоколам высокого уровня – Увеличение времени отклика за счет обращения к редиректору – Два запроса к сервису на каждый запрос клиента • Решения: nginx
  • 22. Балансировка на базе Anycast • Плюсы: – Минимальные задержки при обработке запросов – Доставка трафика через немагистральные каналы (удешевление) – Распределением нагрузки занимается сама сеть – Высокая отказоустойчивость – Легко добавлять и выводить из работы сервера • Минусы: – Возможность перестроения маршрутов (критично для TCP-сессий) – Отсутствует возможность проконтролировать, с какого узла обслуживается пользователь (этим рулит сеть) – Дорогое оборудование – Интересы ISP
  • 23. Алгоритмы распределения нагрузки • Weighted Round Robin • Least Connections • Destination Hash Scheduling и Source Hash Scheduling • Sticky Sessions
  • 24. Очень кратко о решениях интеграторов • Cisco ACE • F5 BigIP • Alteon NG • Cisco CSS
  • 27. Благодарю за внимание! Ваши вопросы??? Сергей Зубов s.zubov@cdnvideo.com