🗊Презентация Проектирование высоко-нагруженных систем. Лекция №3

Нажмите для полного просмотра!
Проектирование высоко-нагруженных систем. Лекция №3, слайд №1Проектирование высоко-нагруженных систем. Лекция №3, слайд №2Проектирование высоко-нагруженных систем. Лекция №3, слайд №3Проектирование высоко-нагруженных систем. Лекция №3, слайд №4Проектирование высоко-нагруженных систем. Лекция №3, слайд №5Проектирование высоко-нагруженных систем. Лекция №3, слайд №6Проектирование высоко-нагруженных систем. Лекция №3, слайд №7Проектирование высоко-нагруженных систем. Лекция №3, слайд №8Проектирование высоко-нагруженных систем. Лекция №3, слайд №9Проектирование высоко-нагруженных систем. Лекция №3, слайд №10Проектирование высоко-нагруженных систем. Лекция №3, слайд №11Проектирование высоко-нагруженных систем. Лекция №3, слайд №12Проектирование высоко-нагруженных систем. Лекция №3, слайд №13Проектирование высоко-нагруженных систем. Лекция №3, слайд №14Проектирование высоко-нагруженных систем. Лекция №3, слайд №15Проектирование высоко-нагруженных систем. Лекция №3, слайд №16Проектирование высоко-нагруженных систем. Лекция №3, слайд №17Проектирование высоко-нагруженных систем. Лекция №3, слайд №18Проектирование высоко-нагруженных систем. Лекция №3, слайд №19Проектирование высоко-нагруженных систем. Лекция №3, слайд №20Проектирование высоко-нагруженных систем. Лекция №3, слайд №21Проектирование высоко-нагруженных систем. Лекция №3, слайд №22Проектирование высоко-нагруженных систем. Лекция №3, слайд №23Проектирование высоко-нагруженных систем. Лекция №3, слайд №24Проектирование высоко-нагруженных систем. Лекция №3, слайд №25Проектирование высоко-нагруженных систем. Лекция №3, слайд №26Проектирование высоко-нагруженных систем. Лекция №3, слайд №27Проектирование высоко-нагруженных систем. Лекция №3, слайд №28Проектирование высоко-нагруженных систем. Лекция №3, слайд №29Проектирование высоко-нагруженных систем. Лекция №3, слайд №30Проектирование высоко-нагруженных систем. Лекция №3, слайд №31Проектирование высоко-нагруженных систем. Лекция №3, слайд №32Проектирование высоко-нагруженных систем. Лекция №3, слайд №33Проектирование высоко-нагруженных систем. Лекция №3, слайд №34Проектирование высоко-нагруженных систем. Лекция №3, слайд №35Проектирование высоко-нагруженных систем. Лекция №3, слайд №36Проектирование высоко-нагруженных систем. Лекция №3, слайд №37Проектирование высоко-нагруженных систем. Лекция №3, слайд №38Проектирование высоко-нагруженных систем. Лекция №3, слайд №39Проектирование высоко-нагруженных систем. Лекция №3, слайд №40Проектирование высоко-нагруженных систем. Лекция №3, слайд №41Проектирование высоко-нагруженных систем. Лекция №3, слайд №42Проектирование высоко-нагруженных систем. Лекция №3, слайд №43Проектирование высоко-нагруженных систем. Лекция №3, слайд №44Проектирование высоко-нагруженных систем. Лекция №3, слайд №45Проектирование высоко-нагруженных систем. Лекция №3, слайд №46Проектирование высоко-нагруженных систем. Лекция №3, слайд №47Проектирование высоко-нагруженных систем. Лекция №3, слайд №48Проектирование высоко-нагруженных систем. Лекция №3, слайд №49Проектирование высоко-нагруженных систем. Лекция №3, слайд №50Проектирование высоко-нагруженных систем. Лекция №3, слайд №51

Содержание

Вы можете ознакомиться и скачать презентацию на тему Проектирование высоко-нагруженных систем. Лекция №3. Доклад-сообщение содержит 51 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Проектирование высоконагруженных систем

Лекция №3
Быков Александр
Описание слайда:
Проектирование высоконагруженных систем Лекция №3 Быков Александр

Слайд 2





HighLoad. Лекция №3
Масштабируемость (англ. scalability) – способность системы справляться с увеличением рабочей нагрузки, при добавлении ресурсов, как правило аппаратных.

Количественно можно оценить как отношение полученного роста производительности к увеличению кол-ва используемых ресурсов. Если отношение близко к единице то масштабирование называют линейным.
Описание слайда:
HighLoad. Лекция №3 Масштабируемость (англ. scalability) – способность системы справляться с увеличением рабочей нагрузки, при добавлении ресурсов, как правило аппаратных. Количественно можно оценить как отношение полученного роста производительности к увеличению кол-ва используемых ресурсов. Если отношение близко к единице то масштабирование называют линейным.

Слайд 3





HighLoad. Лекция №3
Распределение нагрузки на множество серверов бесполезно без возможности распределять нагрузку в нужных пропорциях (балансировать).
Если из-за дисбаланса вся нагрузка попадает на один сервер то никакой масштабируемости быть не может.
Описание слайда:
HighLoad. Лекция №3 Распределение нагрузки на множество серверов бесполезно без возможности распределять нагрузку в нужных пропорциях (балансировать). Если из-за дисбаланса вся нагрузка попадает на один сервер то никакой масштабируемости быть не может.

Слайд 4





HighLoad. Лекция №3
Доставить процессоров, памяти, дисков
Купить более мощный сервер
Купить еще более мощный сервер (очень дорого)
Соотношение роста производительности на вложенные деньги стремительно падает с выходом за пределы массовых конфигураций
Наступит момент когда все равно не хватит
Описание слайда:
HighLoad. Лекция №3 Доставить процессоров, памяти, дисков Купить более мощный сервер Купить еще более мощный сервер (очень дорого) Соотношение роста производительности на вложенные деньги стремительно падает с выходом за пределы массовых конфигураций Наступит момент когда все равно не хватит

Слайд 5





HighLoad. Лекция №3
Разнести нагрузку на несколько серверов
Возможно там где нет/мало общих ресурсов
Часто требует изменений в системе
Возрастает сложность поддержки
На больших масштабах дает снижение TCO*
*TCO – Total Cost of Ownership
(совокупная стоимость владения)
Описание слайда:
HighLoad. Лекция №3 Разнести нагрузку на несколько серверов Возможно там где нет/мало общих ресурсов Часто требует изменений в системе Возрастает сложность поддержки На больших масштабах дает снижение TCO* *TCO – Total Cost of Ownership (совокупная стоимость владения)

Слайд 6





HighLoad. Лекция №3
Балансировка нагрузки
Описание слайда:
HighLoad. Лекция №3 Балансировка нагрузки

Слайд 7





HighLoad. Лекция №3
Алгоритмы балансировки
Описание слайда:
HighLoad. Лекция №3 Алгоритмы балансировки

Слайд 8





HighLoad. Лекция №3
Бекенды получают запросы по очереди в одном и том же порядке (циклическое расписание).

Веса:
A – 10
B – 10
C – 10

“ABC” – расписание запросов
Описание слайда:
HighLoad. Лекция №3 Бекенды получают запросы по очереди в одном и том же порядке (циклическое расписание). Веса: A – 10 B – 10 C – 10 “ABC” – расписание запросов

Слайд 9





HighLoad. Лекция №3
Бекенды получают запросы пропорционально весам согласно расписанию.

Веса:
A – 50%
B – 20%
C – 10%

“AAAAABBC” – расписание с пиками
“ABAABAAC” – расписание равномерное
Описание слайда:
HighLoad. Лекция №3 Бекенды получают запросы пропорционально весам согласно расписанию. Веса: A – 50% B – 20% C – 10% “AAAAABBC” – расписание с пиками “ABAABAAC” – расписание равномерное

Слайд 10





HighLoad. Лекция №3
Достоинства:
Равномерный RPS на бекендах
Подходит:
Запросы одинаковой стоимости
Запросы небольшой стоимости
Описание слайда:
HighLoad. Лекция №3 Достоинства: Равномерный RPS на бекендах Подходит: Запросы одинаковой стоимости Запросы небольшой стоимости

Слайд 11





HighLoad. Лекция №3
Формула:
N (номер сервера) = Hash(IP) % M (количество бекендов)
Возможные варианты:
HASH (src ip)
HASH (src ip + src port)
HASH (src ip + src port + dst ip + dst port) *
* Можно предсоздать много бакетов и балансировать RR
Описание слайда:
HighLoad. Лекция №3 Формула: N (номер сервера) = Hash(IP) % M (количество бекендов) Возможные варианты: HASH (src ip) HASH (src ip + src port) HASH (src ip + src port + dst ip + dst port) * * Можно предсоздать много бакетов и балансировать RR

Слайд 12





HighLoad. Лекция №3
Достоинства:
Отсутствие состояния на балансировщике
Запросы одного пользователя попадают на один бекенд
Недостатки:
Дисбаланс
Перераспределение пользователей при смене
Описание слайда:
HighLoad. Лекция №3 Достоинства: Отсутствие состояния на балансировщике Запросы одного пользователя попадают на один бекенд Недостатки: Дисбаланс Перераспределение пользователей при смене

Слайд 13





HighLoad. Лекция №3
При изменении состава бекендов мигрирует минимально-возможное количество пользователей.
Пример:
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash
Описание слайда:
HighLoad. Лекция №3 При изменении состава бекендов мигрирует минимально-возможное количество пользователей. Пример: http://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash

Слайд 14





HighLoad. Лекция №3
DNS
Routing
L4 (IP)
L7 (HTTP)
Описание слайда:
HighLoad. Лекция №3 DNS Routing L4 (IP) L7 (HTTP)

Слайд 15





HighLoad. Лекция №3
GSLB – Global Scale Load Balancing
LSLB – Local Scale Load Balancing
Описание слайда:
HighLoad. Лекция №3 GSLB – Global Scale Load Balancing LSLB – Local Scale Load Balancing

Слайд 16





HighLoad. Лекция №3
DNS сервер отвечает несколькими адресами
При следующем ответе сдвигает список на 1 позицию
Клиенты обычно берут первый адрес из списка
Windows Vista когда появилась брала «ближайший»
Короткий TTL чтобы отключать упавшие сервера
Описание слайда:
HighLoad. Лекция №3 DNS сервер отвечает несколькими адресами При следующем ответе сдвигает список на 1 позицию Клиенты обычно берут первый адрес из списка Windows Vista когда появилась брала «ближайший» Короткий TTL чтобы отключать упавшие сервера

Слайд 17





HighLoad. Лекция №3
Достоинства:
Простота и дешевизна
Минимальная нагрузка на DNS сервер
Отсутствие одной точки входа
Небольшое добавление отказоустойчивости
Описание слайда:
HighLoad. Лекция №3 Достоинства: Простота и дешевизна Минимальная нагрузка на DNS сервер Отсутствие одной точки входа Небольшое добавление отказоустойчивости

Слайд 18





HighLoad. Лекция №3
Недостатки:
Ограниченное кол-во серверов в UDP-ответе
Игнорирование TTL на кеширующих серверах
Долгое отключение упавшего сервера
Сильный дисбаланс между серверами
Windows Vista берет «ближайший» адрес а не первый
Невозможен взвешенный Round-Robin
Описание слайда:
HighLoad. Лекция №3 Недостатки: Ограниченное кол-во серверов в UDP-ответе Игнорирование TTL на кеширующих серверах Долгое отключение упавшего сервера Сильный дисбаланс между серверами Windows Vista берет «ближайший» адрес а не первый Невозможен взвешенный Round-Robin

Слайд 19





HighLoad. Лекция №3
mail.ru
Описание слайда:
HighLoad. Лекция №3 mail.ru

Слайд 20





HighLoad. Лекция №3
vk.com
Описание слайда:
HighLoad. Лекция №3 vk.com

Слайд 21





HighLoad. Лекция №3
www.yandex.ru
Описание слайда:
HighLoad. Лекция №3 www.yandex.ru

Слайд 22





HighLoad. Лекция №3
google.com
Описание слайда:
HighLoad. Лекция №3 google.com

Слайд 23





HighLoad. Лекция №3
Выдает один случайный адрес в ответе
Взвешенный Round-Robin
Описание слайда:
HighLoad. Лекция №3 Выдает один случайный адрес в ответе Взвешенный Round-Robin

Слайд 24





HighLoad. Лекция №3
Сервер выдает адрес ближайшего к пользователю ДЦ
Сервер видит адрес Resolver а не конечного клиента
Возможные пути решения проблемы:
DNS сервер 8.8.8.8 от Google
Google предлагает добавить в DNS-запрос IP клиента
Описание слайда:
HighLoad. Лекция №3 Сервер выдает адрес ближайшего к пользователю ДЦ Сервер видит адрес Resolver а не конечного клиента Возможные пути решения проблемы: DNS сервер 8.8.8.8 от Google Google предлагает добавить в DNS-запрос IP клиента

Слайд 25





HighLoad. Лекция №3
Сервер выдает адрес ближайшего к пользователю ДЦ c с минимальным RTT 
Сервер видит адрес Resolver а не конечного клиента
Пример: AWS Route 53
Описание слайда:
HighLoad. Лекция №3 Сервер выдает адрес ближайшего к пользователю ДЦ c с минимальным RTT Сервер видит адрес Resolver а не конечного клиента Пример: AWS Route 53

Слайд 26





HighLoad. Лекция №3
BGP Anycast
Описание слайда:
HighLoad. Лекция №3 BGP Anycast

Слайд 27





HighLoad. Лекция №3
Недостатки:
Сложность конфигурации и поддержки
Поломка соединений при перескоке трафика между ДЦ
Необходима своя AS и сеть /24*
Описание слайда:
HighLoad. Лекция №3 Недостатки: Сложность конфигурации и поддержки Поломка соединений при перескоке трафика между ДЦ Необходима своя AS и сеть /24*

Слайд 28





HighLoad. Лекция №3
Cisco CSS (L4)
Cisco ACE (L7)
F5 BIG-IP
Citrix NetScaler
Radware ADC
Описание слайда:
HighLoad. Лекция №3 Cisco CSS (L4) Cisco ACE (L7) F5 BIG-IP Citrix NetScaler Radware ADC

Слайд 29





HighLoad. Лекция №3
LVS (Linux Virtual Server)
Nginx
HAProxy
ATS
Описание слайда:
HighLoad. Лекция №3 LVS (Linux Virtual Server) Nginx HAProxy ATS

Слайд 30





HighLoad. Лекция №3
Virtual Server via NAT
Virtual Server via IP Tunneling
Virtual Server via Direct Routing
Описание слайда:
HighLoad. Лекция №3 Virtual Server via NAT Virtual Server via IP Tunneling Virtual Server via Direct Routing

Слайд 31





HighLoad. Лекция №3
Layer 4: Virtual Server via NAT
Описание слайда:
HighLoad. Лекция №3 Layer 4: Virtual Server via NAT

Слайд 32





HighLoad. Лекция №3
Плюсы:
Сервера могут быть в разных физических сетях
Минусы:
Большая нагрузка на процессор
Весь обратный трафик идет через балансер
Описание слайда:
HighLoad. Лекция №3 Плюсы: Сервера могут быть в разных физических сетях Минусы: Большая нагрузка на процессор Весь обратный трафик идет через балансер

Слайд 33





HighLoad. Лекция №3
Layer 4: Virtual Server via IP Tunneling
Описание слайда:
HighLoad. Лекция №3 Layer 4: Virtual Server via IP Tunneling

Слайд 34





HighLoad. Лекция №3
Плюсы:
Сервера могут быть в разных физических сетях
Высокая производительность
Минусы:
Дополнительная нагрузка на процессор
Сложная настройка инкапсуляции
Описание слайда:
HighLoad. Лекция №3 Плюсы: Сервера могут быть в разных физических сетях Высокая производительность Минусы: Дополнительная нагрузка на процессор Сложная настройка инкапсуляции

Слайд 35





HighLoad. Лекция №3
Layer 3: Virtual Server via Direct Routing
Описание слайда:
HighLoad. Лекция №3 Layer 3: Virtual Server via Direct Routing

Слайд 36





HighLoad. Лекция №3
Плюсы:
Высокая производительность
Минусы:
Сервера должны быть в одной физической сети
Описание слайда:
HighLoad. Лекция №3 Плюсы: Высокая производительность Минусы: Сервера должны быть в одной физической сети

Слайд 37





HighLoad. Лекция №3
Программный монитор доступности нод
Сигнализирует балансеру при падении/подъемы ноды
Умеет VRRP/CARP резервирование нод между собой
Описание слайда:
HighLoad. Лекция №3 Программный монитор доступности нод Сигнализирует балансеру при падении/подъемы ноды Умеет VRRP/CARP резервирование нод между собой

Слайд 38





HighLoad. Лекция №3
Отвечает на PING
Принимает соединение на порт
Отвечает на простой HEAD или GET запрос
Отвечает на специальный запрос (cgi-bin/ping)
Описание слайда:
HighLoad. Лекция №3 Отвечает на PING Принимает соединение на порт Отвечает на простой HEAD или GET запрос Отвечает на специальный запрос (cgi-bin/ping)

Слайд 39





HighLoad. Лекция №3

То же самое что для для балансинга между ДЦ
Требует настройки на сетевом оборудовании
Требует специального размещения оборудования
Описание слайда:
HighLoad. Лекция №3 То же самое что для для балансинга между ДЦ Требует настройки на сетевом оборудовании Требует специального размещения оборудования

Слайд 40





HighLoad. Лекция №3
HTTP Reverse Proxy:
TCP multiplexing
Persistence / Sticky sessions / Client affinity
Кеширование
SSL Termination
Gzip
Гибкие настройки для учета бизнес-логики
Описание слайда:
HighLoad. Лекция №3 HTTP Reverse Proxy: TCP multiplexing Persistence / Sticky sessions / Client affinity Кеширование SSL Termination Gzip Гибкие настройки для учета бизнес-логики

Слайд 41





HighLoad. Лекция №3
Плюсы:
Высокая гибкость конфигурации
Надежное резервирование
Равномерное распределение нагрузки
Решение проблемы медленных клиентов
Минусы:
Относительно низкая производительность
Необходима модификация ПО для приема X-Real-IP
Описание слайда:
HighLoad. Лекция №3 Плюсы: Высокая гибкость конфигурации Надежное резервирование Равномерное распределение нагрузки Решение проблемы медленных клиентов Минусы: Относительно низкая производительность Необходима модификация ПО для приема X-Real-IP

Слайд 42





HighLoad. Лекция №3
(Оптимизационная задача)
Проблемы:
Небольшой timeout: обрежем долгие живые запросы
Большой timeout: затормозим обычные запросы
Идеи:
Использование квантилей для выбора значения
Разные настройки для разных типов запросов
Описание слайда:
HighLoad. Лекция №3 (Оптимизационная задача) Проблемы: Небольшой timeout: обрежем долгие живые запросы Большой timeout: затормозим обычные запросы Идеи: Использование квантилей для выбора значения Разные настройки для разных типов запросов

Слайд 43





HighLoad. Лекция №3
Алгоритм выбора другого (следующего) бекенда в случае отказа текущего в процессе обработки запроса
На примере nginx:
proxy_next_upstream <список ситуаций>
proxy_next_upstream_timeout
proxy_next_upstream_tries
Описание слайда:
HighLoad. Лекция №3 Алгоритм выбора другого (следующего) бекенда в случае отказа текущего в процессе обработки запроса На примере nginx: proxy_next_upstream <список ситуаций> proxy_next_upstream_timeout proxy_next_upstream_tries

Слайд 44





HighLoad. Лекция №3
Варианты:
DNS
L4
L7 на отдельных серверах
L7 локальный на клиенте (aka sidecar proxy)
Описание слайда:
HighLoad. Лекция №3 Варианты: DNS L4 L7 на отдельных серверах L7 локальный на клиенте (aka sidecar proxy)

Слайд 45





HighLoad. Лекция №3
Session cache – работает в пределах одного IP
Session tickets – поддерживают не все браузеры
Perfect Forward Secrecy (PFS)
Application Transport Security (ATS) в iOS 9
Let’s Encrypt – бесплатные SSL-сертификаты
Описание слайда:
HighLoad. Лекция №3 Session cache – работает в пределах одного IP Session tickets – поддерживают не все браузеры Perfect Forward Secrecy (PFS) Application Transport Security (ATS) в iOS 9 Let’s Encrypt – бесплатные SSL-сертификаты

Слайд 46





HighLoad. Лекция №3
Почти также дешев как DNS
Увеличивает задержку на каждый запрос
Имеет единую точку отказа
Хорош для выдачи ближайшего к пользователю сервера
Описание слайда:
HighLoad. Лекция №3 Почти также дешев как DNS Увеличивает задержку на каждый запрос Имеет единую точку отказа Хорош для выдачи ближайшего к пользователю сервера

Слайд 47





HighLoad. Лекция №3
Выдаем в приложении прямые ссылки на сервера
Обеспечиваем балансировку и отказоустойчивость
При хорошей реализации одно из самых эффективных решений
Минусы:
Неудобно программировать
Раскрываем внутреннее устройство проекта
Описание слайда:
HighLoad. Лекция №3 Выдаем в приложении прямые ссылки на сервера Обеспечиваем балансировку и отказоустойчивость При хорошей реализации одно из самых эффективных решений Минусы: Неудобно программировать Раскрываем внутреннее устройство проекта

Слайд 48





HighLoad. Лекция №3
Выбор сервера в коде страницы в браузере
Легко обеспечить отказоустойчивость запросив другой сервер
Минусы:
Плохо совместим с AJAX из-за crossdomain policy
Описание слайда:
HighLoad. Лекция №3 Выбор сервера в коде страницы в браузере Легко обеспечить отказоустойчивость запросив другой сервер Минусы: Плохо совместим с AJAX из-за crossdomain policy

Слайд 49





HighLoad. Лекция №3
Уносим форум на отдельный домен
Уносим статику на отдельный домен
И так далее…
Минусы:
Сложно администрировать
Легко попасть на неделимый кусок сайта
Описание слайда:
HighLoad. Лекция №3 Уносим форум на отдельный домен Уносим статику на отдельный домен И так далее… Минусы: Сложно администрировать Легко попасть на неделимый кусок сайта

Слайд 50





HighLoad. Лекция №3
Домашнее задание №2
Описание слайда:
HighLoad. Лекция №3 Домашнее задание №2

Слайд 51





СПАСИБО ЗА ВНИМАНИЕ
Быков Александр
bykov@corp.mail.ru
Описание слайда:
СПАСИБО ЗА ВНИМАНИЕ Быков Александр bykov@corp.mail.ru



Похожие презентации
Mypresentation.ru
Загрузить презентацию