Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
51 слайд
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
1.08 MB
Просмотров:
158
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Проектирование](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img0.jpg)
Содержание слайда: Проектирование высоконагруженных систем
Лекция №3
Быков Александр
№2 слайд![HighLoad. Лекция](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img1.jpg)
Содержание слайда: HighLoad. Лекция №3
Масштабируемость (англ. scalability) – способность системы справляться с увеличением рабочей нагрузки, при добавлении ресурсов, как правило аппаратных.
Количественно можно оценить как отношение полученного роста производительности к увеличению кол-ва используемых ресурсов. Если отношение близко к единице то масштабирование называют линейным.
№3 слайд![HighLoad. Лекция](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img2.jpg)
Содержание слайда: HighLoad. Лекция №3
Распределение нагрузки на множество серверов бесполезно без возможности распределять нагрузку в нужных пропорциях (балансировать).
Если из-за дисбаланса вся нагрузка попадает на один сервер то никакой масштабируемости быть не может.
№4 слайд![HighLoad. Лекция Доставить](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img3.jpg)
Содержание слайда: HighLoad. Лекция №3
Доставить процессоров, памяти, дисков
Купить более мощный сервер
Купить еще более мощный сервер (очень дорого)
Соотношение роста производительности на вложенные деньги стремительно падает с выходом за пределы массовых конфигураций
Наступит момент когда все равно не хватит
№5 слайд![HighLoad. Лекция Разнести](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img4.jpg)
Содержание слайда: HighLoad. Лекция №3
Разнести нагрузку на несколько серверов
Возможно там где нет/мало общих ресурсов
Часто требует изменений в системе
Возрастает сложность поддержки
На больших масштабах дает снижение TCO*
*TCO – Total Cost of Ownership
(совокупная стоимость владения)
№6 слайд![HighLoad. Лекция Балансировка](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img5.jpg)
Содержание слайда: HighLoad. Лекция №3
Балансировка нагрузки
№7 слайд![HighLoad. Лекция Алгоритмы](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img6.jpg)
Содержание слайда: HighLoad. Лекция №3
Алгоритмы балансировки
№8 слайд![HighLoad. Лекция Бекенды](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img7.jpg)
Содержание слайда: HighLoad. Лекция №3
Бекенды получают запросы по очереди в одном и том же порядке (циклическое расписание).
Веса:
A – 10
B – 10
C – 10
“ABC” – расписание запросов
№9 слайд![HighLoad. Лекция Бекенды](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img8.jpg)
Содержание слайда: HighLoad. Лекция №3
Бекенды получают запросы пропорционально весам согласно расписанию.
Веса:
A – 50%
B – 20%
C – 10%
“AAAAABBC” – расписание с пиками
“ABAABAAC” – расписание равномерное
№10 слайд![HighLoad. Лекция Достоинства](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img9.jpg)
Содержание слайда: HighLoad. Лекция №3
Достоинства:
Равномерный RPS на бекендах
Подходит:
Запросы одинаковой стоимости
Запросы небольшой стоимости
№11 слайд![HighLoad. Лекция Формула N](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img10.jpg)
Содержание слайда: 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. Лекция Достоинства](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img11.jpg)
Содержание слайда: HighLoad. Лекция №3
Достоинства:
Отсутствие состояния на балансировщике
Запросы одного пользователя попадают на один бекенд
Недостатки:
Дисбаланс
Перераспределение пользователей при смене
№13 слайд![HighLoad. Лекция При](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img12.jpg)
Содержание слайда: HighLoad. Лекция №3
При изменении состава бекендов мигрирует минимально-возможное количество пользователей.
Пример:
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash
№14 слайд![HighLoad. Лекция DNS Routing](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img13.jpg)
Содержание слайда: HighLoad. Лекция №3
DNS
Routing
L4 (IP)
L7 (HTTP)
№15 слайд![HighLoad. Лекция GSLB Global](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img14.jpg)
Содержание слайда: HighLoad. Лекция №3
GSLB – Global Scale Load Balancing
LSLB – Local Scale Load Balancing
№16 слайд![HighLoad. Лекция DNS сервер](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img15.jpg)
Содержание слайда: HighLoad. Лекция №3
DNS сервер отвечает несколькими адресами
При следующем ответе сдвигает список на 1 позицию
Клиенты обычно берут первый адрес из списка
Windows Vista когда появилась брала «ближайший»
Короткий TTL чтобы отключать упавшие сервера
№17 слайд![HighLoad. Лекция Достоинства](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img16.jpg)
Содержание слайда: HighLoad. Лекция №3
Достоинства:
Простота и дешевизна
Минимальная нагрузка на DNS сервер
Отсутствие одной точки входа
Небольшое добавление отказоустойчивости
№18 слайд![HighLoad. Лекция Недостатки](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img17.jpg)
Содержание слайда: HighLoad. Лекция №3
Недостатки:
Ограниченное кол-во серверов в UDP-ответе
Игнорирование TTL на кеширующих серверах
Долгое отключение упавшего сервера
Сильный дисбаланс между серверами
Windows Vista берет «ближайший» адрес а не первый
Невозможен взвешенный Round-Robin
№19 слайд![HighLoad. Лекция mail.ru](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img18.jpg)
Содержание слайда: HighLoad. Лекция №3
mail.ru
№20 слайд![HighLoad. Лекция vk.com](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img19.jpg)
Содержание слайда: HighLoad. Лекция №3
vk.com
№21 слайд![HighLoad. Лекция www.yandex.ru](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img20.jpg)
Содержание слайда: HighLoad. Лекция №3
www.yandex.ru
№22 слайд![HighLoad. Лекция google.com](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img21.jpg)
Содержание слайда: HighLoad. Лекция №3
google.com
№23 слайд![HighLoad. Лекция Выдает один](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img22.jpg)
Содержание слайда: HighLoad. Лекция №3
Выдает один случайный адрес в ответе
Взвешенный Round-Robin
№24 слайд![HighLoad. Лекция Сервер](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img23.jpg)
Содержание слайда: HighLoad. Лекция №3
Сервер выдает адрес ближайшего к пользователю ДЦ
Сервер видит адрес Resolver а не конечного клиента
Возможные пути решения проблемы:
DNS сервер 8.8.8.8 от Google
Google предлагает добавить в DNS-запрос IP клиента
№25 слайд![HighLoad. Лекция Сервер](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img24.jpg)
Содержание слайда: HighLoad. Лекция №3
Сервер выдает адрес ближайшего к пользователю ДЦ c с минимальным RTT
Сервер видит адрес Resolver а не конечного клиента
Пример: AWS Route 53
№26 слайд![HighLoad. Лекция BGP Anycast](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img25.jpg)
Содержание слайда: HighLoad. Лекция №3
BGP Anycast
№27 слайд![HighLoad. Лекция Недостатки](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img26.jpg)
Содержание слайда: HighLoad. Лекция №3
Недостатки:
Сложность конфигурации и поддержки
Поломка соединений при перескоке трафика между ДЦ
Необходима своя AS и сеть /24*
№28 слайд![HighLoad. Лекция Cisco CSS L](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img27.jpg)
Содержание слайда: HighLoad. Лекция №3
Cisco CSS (L4)
Cisco ACE (L7)
F5 BIG-IP
Citrix NetScaler
Radware ADC
№29 слайд![HighLoad. Лекция LVS Linux](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img28.jpg)
Содержание слайда: HighLoad. Лекция №3
LVS (Linux Virtual Server)
Nginx
HAProxy
ATS
№30 слайд![HighLoad. Лекция Virtual](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img29.jpg)
Содержание слайда: HighLoad. Лекция №3
Virtual Server via NAT
Virtual Server via IP Tunneling
Virtual Server via Direct Routing
№31 слайд![HighLoad. Лекция Layer](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img30.jpg)
Содержание слайда: HighLoad. Лекция №3
Layer 4: Virtual Server via NAT
№32 слайд![HighLoad. Лекция Плюсы](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img31.jpg)
Содержание слайда: HighLoad. Лекция №3
Плюсы:
Сервера могут быть в разных физических сетях
Минусы:
Большая нагрузка на процессор
Весь обратный трафик идет через балансер
№33 слайд![HighLoad. Лекция Layer](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img32.jpg)
Содержание слайда: HighLoad. Лекция №3
Layer 4: Virtual Server via IP Tunneling
№34 слайд![HighLoad. Лекция Плюсы](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img33.jpg)
Содержание слайда: HighLoad. Лекция №3
Плюсы:
Сервера могут быть в разных физических сетях
Высокая производительность
Минусы:
Дополнительная нагрузка на процессор
Сложная настройка инкапсуляции
№35 слайд![HighLoad. Лекция Layer](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img34.jpg)
Содержание слайда: HighLoad. Лекция №3
Layer 3: Virtual Server via Direct Routing
№36 слайд![HighLoad. Лекция Плюсы](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img35.jpg)
Содержание слайда: HighLoad. Лекция №3
Плюсы:
Высокая производительность
Минусы:
Сервера должны быть в одной физической сети
№37 слайд![HighLoad. Лекция Программный](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img36.jpg)
Содержание слайда: HighLoad. Лекция №3
Программный монитор доступности нод
Сигнализирует балансеру при падении/подъемы ноды
Умеет VRRP/CARP резервирование нод между собой
№38 слайд![HighLoad. Лекция Отвечает на](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img37.jpg)
Содержание слайда: HighLoad. Лекция №3
Отвечает на PING
Принимает соединение на порт
Отвечает на простой HEAD или GET запрос
Отвечает на специальный запрос (cgi-bin/ping)
№39 слайд![HighLoad. Лекция То же самое](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img38.jpg)
Содержание слайда: HighLoad. Лекция №3
То же самое что для для балансинга между ДЦ
Требует настройки на сетевом оборудовании
Требует специального размещения оборудования
№40 слайд![HighLoad. Лекция HTTP Reverse](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img39.jpg)
Содержание слайда: HighLoad. Лекция №3
HTTP Reverse Proxy:
TCP multiplexing
Persistence / Sticky sessions / Client affinity
Кеширование
SSL Termination
Gzip
Гибкие настройки для учета бизнес-логики
№41 слайд![HighLoad. Лекция Плюсы](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img40.jpg)
Содержание слайда: HighLoad. Лекция №3
Плюсы:
Высокая гибкость конфигурации
Надежное резервирование
Равномерное распределение нагрузки
Решение проблемы медленных клиентов
Минусы:
Относительно низкая производительность
Необходима модификация ПО для приема X-Real-IP
№42 слайд![HighLoad. Лекция](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img41.jpg)
Содержание слайда: HighLoad. Лекция №3
(Оптимизационная задача)
Проблемы:
Небольшой timeout: обрежем долгие живые запросы
Большой timeout: затормозим обычные запросы
Идеи:
Использование квантилей для выбора значения
Разные настройки для разных типов запросов
№43 слайд![HighLoad. Лекция Алгоритм](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img42.jpg)
Содержание слайда: HighLoad. Лекция №3
Алгоритм выбора другого (следующего) бекенда в случае отказа текущего в процессе обработки запроса
На примере nginx:
proxy_next_upstream <список ситуаций>
proxy_next_upstream_timeout
proxy_next_upstream_tries
№44 слайд![HighLoad. Лекция Варианты DNS](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img43.jpg)
Содержание слайда: HighLoad. Лекция №3
Варианты:
DNS
L4
L7 на отдельных серверах
L7 локальный на клиенте (aka sidecar proxy)
№45 слайд![HighLoad. Лекция Session](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img44.jpg)
Содержание слайда: HighLoad. Лекция №3
Session cache – работает в пределах одного IP
Session tickets – поддерживают не все браузеры
Perfect Forward Secrecy (PFS)
Application Transport Security (ATS) в iOS 9
Let’s Encrypt – бесплатные SSL-сертификаты
№46 слайд![HighLoad. Лекция Почти также](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img45.jpg)
Содержание слайда: HighLoad. Лекция №3
Почти также дешев как DNS
Увеличивает задержку на каждый запрос
Имеет единую точку отказа
Хорош для выдачи ближайшего к пользователю сервера
№47 слайд![HighLoad. Лекция Выдаем в](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img46.jpg)
Содержание слайда: HighLoad. Лекция №3
Выдаем в приложении прямые ссылки на сервера
Обеспечиваем балансировку и отказоустойчивость
При хорошей реализации одно из самых эффективных решений
Минусы:
Неудобно программировать
Раскрываем внутреннее устройство проекта
№48 слайд![HighLoad. Лекция Выбор](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img47.jpg)
Содержание слайда: HighLoad. Лекция №3
Выбор сервера в коде страницы в браузере
Легко обеспечить отказоустойчивость запросив другой сервер
Минусы:
Плохо совместим с AJAX из-за crossdomain policy
№49 слайд![HighLoad. Лекция Уносим форум](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img48.jpg)
Содержание слайда: HighLoad. Лекция №3
Уносим форум на отдельный домен
Уносим статику на отдельный домен
И так далее…
Минусы:
Сложно администрировать
Легко попасть на неделимый кусок сайта
№50 слайд![HighLoad. Лекция Домашнее](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img49.jpg)
Содержание слайда: HighLoad. Лекция №3
Домашнее задание №2
№51 слайд![СПАСИБО ЗА ВНИМАНИЕ Быков](/documents_6/3a9a80acbc568c610a7fb8c8eec6c051/img50.jpg)
Содержание слайда: СПАСИБО ЗА ВНИМАНИЕ
Быков Александр
bykov@corp.mail.ru