Содержание
- 2. HighLoad. Лекция №3 Масштабируемость (англ. scalability) – способность системы справляться с увеличением рабочей нагрузки, при добавлении
- 3. HighLoad. Лекция №3 Распределение нагрузки на множество серверов бесполезно без возможности распределять нагрузку в нужных пропорциях
- 4. HighLoad. Лекция №3 Доставить процессоров, памяти, дисков Купить более мощный сервер Купить еще более мощный сервер
- 5. HighLoad. Лекция №3 Разнести нагрузку на несколько серверов Возможно там где нет/мало общих ресурсов Часто требует
- 6. HighLoad. Лекция №3 Балансировка нагрузки
- 7. HighLoad. Лекция №3 Алгоритмы балансировки
- 8. HighLoad. Лекция №3 Бекенды получают запросы по очереди в одном и том же порядке (циклическое расписание).
- 9. HighLoad. Лекция №3 Бекенды получают запросы пропорционально весам согласно расписанию. Веса: A – 50% B –
- 10. HighLoad. Лекция №3 Достоинства: Равномерный RPS на бекендах Подходит: Запросы одинаковой стоимости Запросы небольшой стоимости Weighted
- 11. HighLoad. Лекция №3 Формула: N (номер сервера) = Hash(IP) % M (количество бекендов) Возможные варианты: HASH
- 12. HighLoad. Лекция №3 Достоинства: Отсутствие состояния на балансировщике Запросы одного пользователя попадают на один бекенд Недостатки:
- 13. HighLoad. Лекция №3 При изменении состава бекендов мигрирует минимально-возможное количество пользователей. Пример: http://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash Consistent Hash
- 14. HighLoad. Лекция №3 DNS Routing L4 (IP) L7 (HTTP) Уровни балансировки
- 15. HighLoad. Лекция №3 GSLB – Global Scale Load Balancing LSLB – Local Scale Load Balancing Классификация
- 16. HighLoad. Лекция №3 DNS сервер отвечает несколькими адресами При следующем ответе сдвигает список на 1 позицию
- 17. HighLoad. Лекция №3 Достоинства: Простота и дешевизна Минимальная нагрузка на DNS сервер Отсутствие одной точки входа
- 18. HighLoad. Лекция №3 Недостатки: Ограниченное кол-во серверов в UDP-ответе Игнорирование TTL на кеширующих серверах Долгое отключение
- 19. HighLoad. Лекция №3 mail.ru $ host mail.ru mail.ru has address 94.100.191.209 mail.ru has address 94.100.191.210 mail.ru
- 20. HighLoad. Лекция №3 vk.com $ host vk.com vk.com has address 87.240.131.100 vk.com has address 87.240.131.101 vk.com
- 21. HighLoad. Лекция №3 www.yandex.ru $ host www.yandex.ru www.yandex.ru has address 87.250.250.203 www.yandex.ru has address 87.250.251.3 www.yandex.ru
- 22. HighLoad. Лекция №3 google.com $ host google.com google.com has address 173.194.32.227 google.com has address 173.194.32.228 google.com
- 23. HighLoad. Лекция №3 Выдает один случайный адрес в ответе Взвешенный Round-Robin Xixi DNS
- 24. HighLoad. Лекция №3 Сервер выдает адрес ближайшего к пользователю ДЦ Сервер видит адрес Resolver а не
- 25. HighLoad. Лекция №3 Сервер выдает адрес ближайшего к пользователю ДЦ c с минимальным RTT Сервер видит
- 26. HighLoad. Лекция №3 BGP Anycast
- 27. HighLoad. Лекция №3 Недостатки: Сложность конфигурации и поддержки Поломка соединений при перескоке трафика между ДЦ Необходима
- 28. HighLoad. Лекция №3 Cisco CSS (L4) Cisco ACE (L7) F5 BIG-IP Citrix NetScaler Radware ADC Hardware
- 29. HighLoad. Лекция №3 LVS (Linux Virtual Server) Nginx HAProxy ATS Software Load Balancers
- 30. HighLoad. Лекция №3 Virtual Server via NAT Virtual Server via IP Tunneling Virtual Server via Direct
- 31. HighLoad. Лекция №3 Layer 4: Virtual Server via NAT
- 32. HighLoad. Лекция №3 Плюсы: Сервера могут быть в разных физических сетях Минусы: Большая нагрузка на процессор
- 33. HighLoad. Лекция №3 Layer 4: Virtual Server via IP Tunneling IP Encapsulation
- 34. HighLoad. Лекция №3 Плюсы: Сервера могут быть в разных физических сетях Высокая производительность Минусы: Дополнительная нагрузка
- 35. HighLoad. Лекция №3 Layer 3: Virtual Server via Direct Routing Dst MAC Address Change
- 36. HighLoad. Лекция №3 Плюсы: Высокая производительность Минусы: Сервера должны быть в одной физической сети Layer 3:
- 37. HighLoad. Лекция №3 Программный монитор доступности нод Сигнализирует балансеру при падении/подъемы ноды Умеет VRRP/CARP резервирование нод
- 38. HighLoad. Лекция №3 Отвечает на PING Принимает соединение на порт Отвечает на простой HEAD или GET
- 39. HighLoad. Лекция №3 То же самое что для для балансинга между ДЦ Требует настройки на сетевом
- 40. HighLoad. Лекция №3 HTTP Reverse Proxy: TCP multiplexing Persistence / Sticky sessions / Client affinity Кеширование
- 41. HighLoad. Лекция №3 Плюсы: Высокая гибкость конфигурации Надежное резервирование Равномерное распределение нагрузки Решение проблемы медленных клиентов
- 42. HighLoad. Лекция №3 (Оптимизационная задача) Проблемы: Небольшой timeout: обрежем долгие живые запросы Большой timeout: затормозим обычные
- 43. HighLoad. Лекция №3 Алгоритм выбора другого (следующего) бекенда в случае отказа текущего в процессе обработки запроса
- 44. HighLoad. Лекция №3 Варианты: DNS L4 L7 на отдельных серверах L7 локальный на клиенте (aka sidecar
- 45. HighLoad. Лекция №3 Session cache – работает в пределах одного IP Session tickets – поддерживают не
- 46. HighLoad. Лекция №3 Почти также дешев как DNS Увеличивает задержку на каждый запрос Имеет единую точку
- 47. HighLoad. Лекция №3 Выдаем в приложении прямые ссылки на сервера Обеспечиваем балансировку и отказоустойчивость При хорошей
- 48. HighLoad. Лекция №3 Выбор сервера в коде страницы в браузере Легко обеспечить отказоустойчивость запросив другой сервер
- 49. HighLoad. Лекция №3 Уносим форум на отдельный домен Уносим статику на отдельный домен И так далее…
- 50. HighLoad. Лекция №3 Домашнее задание №2 Собрать Load Balancer в облачном сервисе на выбор (AWS, DigitalOcean,
- 52. Скачать презентацию