SlideShare a Scribd company logo
1 of 70
Умная балансировка
нагрузки на базе Nginx и
Lua
Андрей Кононов, Solution architect at EPAM systems
О себе
Disclaimer
Чем больше мы познаём неизменные законы природы,
тем всё более невероятными становятся для нас чудеса.
Чарльз Дарвин.
Все используемые технологии – опенсорс
Все совпадения с реальными компаниями и
брендами случайны.
Какая балансировка бывает
• L7 (DNS, http)
• L4 (TCP)
• L3 (BGP)
TCP/HTTP
VRRP
DNS
BGP
Стартовая позиция
• Нет балансировки
• Всё работает
• Фичи пилятся
Надо быть защищёнными, но…
1. Поддержки SSl нет
2. Надо разработать
Надо быть защищёнными, но…
1. Поддержки SSl нет
2. Надо разработать
Надо что-то придумать
Появился Nginx
Надо что-то придумать
Появился Nginx
Ничто не предвещало…
НО пришла корпорация добра!
TIME
RESPONSE TIME, MS
Надо что-то придумать
• DNS балансировка
Надо что-то придумать
• DNS балансировка
Надо что-то придумать
• DNS балансировка
0
500
1000
1500
2000
2500
3000
3500
requests
time
requests/server
app1 app2
Жизнь продолжается
• DNS балансировка
Балансировка курильщика
• DNS балансировка
0
1000
2000
3000
4000
5000
6000
7000
8000
Requests /server
app1 app2 app3 app4 app5
Основные проблемы с DNS балансировкой
• Постоянные выигрыши в лотерею
Основные проблемы с DNS балансировкой
• Постоянные выигрыши в лотерею
• UDP не безграничен (512 bytes)
Основные проблемы с DNS балансировкой
• Постоянные выигрыши в лотерею
• UDP не безграничен (512 bytes)
• Само по себе распределение не ровное
Основные проблемы с DNS балансировкой
• Постоянные выигрыши в лотерею
• UDP не безграничен (512 bytes)
• Само по себе распределение не ровное
• Нужен другой балансировщик
Вендорский Балансировщик!
Балансировка нормального человека
2200
2300
2400
2500
2600
2700
2800
2900
3000
3100
requests/server
app1 app2 app3 app4 app5
НО Вендоры не без греха!
• Vendor lock
НО Вендоры не без греха!
• Vendor lock
• ELB на L4 не отправляет клиенту нотификации
о разрыве соединения
НО Вендоры не без греха!
• Vendor lock
• ELB на L4 не отправляет клиенту нотификации
о разрыве соединения
• Нет поддержки SNI (один сертификат - один IP)
НО Вендоры не без греха!
• Vendor lock
• ELB на L4 не отправляет клиенту нотификации
о разрыве соединения
• Нет поддержки SNI (один сертификат - один IP)
• На L7 нет возможности реализовать хотелки
НО Вендоры не без греха!
• Vendor lock
• ELB на L4 не отправляет клиенту нотификации
о разрыве соединения
• Нет поддержки SNI (один сертификат - один IP)
• На L7 нет возможности реализовать хотелки
• Не нулевая вероятность получить на свои
сервера чужой трафик.
Подоспели новые требования.
• Новое требование от бизнеса –
всегда показывать пиксел
Подоспели новые требования.
• Новое требование от бизнеса –
всегда показывать пиксел
Подоспели новые требования.
• Новое требование от бизнеса –
всегда показывать пиксел
• Появился полноценный
балансировщик
Подоспели новые требования.
• Новое требование от бизнеса –
всегда показывать пиксел
• Появился полноценный
балансировщик
• Нужно быть ближе к пользователю
• КАК бы CDN
GDNSD
• DNS балансировщик
• 100% opensource
• Авторитативный днс сервер
• Геобазы нескольких провайдеров
• Встроенные проверки состояния приложения
Никто не ждал но…..
• Взрыв мониторинга.
Никто не ждал но…..
• Взрыв мониторинга.
• 100 gb за 2 часа error log
• LA > 8 (8 cores instance)
used space
Никто не ждал но…..
• Взрыв мониторинга.
• 100 gb за 2 часа error log
• LA > 8 (8 cores instance)
main.all.http_1xx = 0
main.all.http_2xx = 480
main.all.http_3xx = 11
main.all.http_4xx = 3
main.all.http_5xx = 0
Продолжаем развиваться !
• Бизнес хочет странного, а именно - что то типа сессий
Продолжаем развиваться !
• Бизнес хочет странного, а именно - что то типа сессий
Продолжаем развиваться !
• Бизнес хочет странного, а именно - что то типа сессий
Продолжаем развиваться !
• Бизнес хочет странного, а именно - что то типа сессий
• Ограничения – никакого сессионного хранилища
• Минимальное перераспределение пользователей
при добавление ноды.
Продолжаем развиваться !
• Бизнес хочет странного, а именно - что то типа сессий
• Ограничения – никакого сессионного хранилища
• Минимальное перераспределение пользователей
при добавление ноды.
Включаем Ip_hash method в nginx
Продолжаем развиваться !
• Бизнес хочет странного, а именно - что то типа сессий.
• Ограничения – никакого сессионного хранилища.
• Минимальное перераспределение пользователей
при добавление ноды.
Включаем Ip_hash method в nginx
0
1000
2000
3000
4000
5000
6000
7000
8000
app1 app2 app3 app4 app5
Балансировка - не только балансировка
SSL offload
Балансировка - не только балансировка
SSL offload
Pixel
Балансировка - не только балансировка
SSL offload
Pixel
Redundancy
Балансировка - не только балансировка
SSL offload
Pixel
Redundancy
Geo distribution
Балансировка - не только балансировка
SSL offload
Pixel
Redundancy
Geo distribution
Easy configuration
Балансировка - не только балансировка
SSL offload
Pixel
Redundancy
Geo distribution
Easy configuration
Automatic add/remove nodes
Балансировка - не только балансировка
SSL offload
Pixel
Redundancy
Geo distribution
Easy configuration
Automatic add/remove nodes
oStickiness
• Consistent Hash !
https://en.wikipedia.org/wiki/Consistent_hashing
David Karger
Мозговой штурм, выбор не велик
• 1. Компилируемый модуль
Мозговой штурм, выбор не велик
• 1. Компилируемый модуль
2. Логика на LUA
Мозговой штурм, выбор не велик
• 1. Компилируемый модуль
2. Логика на LUA
Забег по граблям
• Генерили много точек по умолчанию - начала кончаться память
Забег по граблям
• Генерили много точек по умолчанию - начала кончаться память
Решение – динамическая генерация количества точек
Забег по граблям
• Генерили много точек по умолчанию - начала кончаться память
Решение – динамическая генерация количества точек
• 1 worker отказ в обслуживании при добавлении
Забег по граблям
• Генерили много точек по умолчанию - начала кончаться память
Решение – динамическая генерация количества точек
• 1 worker отказ в обслуживании при добавлении
Решение “cpu_count-2” workers на балансировщик
Продолжаем бежать
• Fallback не фолбечит
Продолжаем бежать
• Fallback не фолбечит
Решение – перенос в отдельный процесс нджинкс
Продолжаем бежать
• Внутренний хелфчек не способен
добавить много хостов (массовый
деплой например), полная
деградация целиком сервиса
запросы становятся в очередь, вот
это всё
Продолжаем бежать
• Внутренний хелфчек не способен
добавить много хостов (массовый
деплой например), полная
деградация целиком сервиса
запросы становятся в очередь, вот
это всё
Решение – инкрементальный
пересчёт consistent hash
Пример конфигурации nginx
location / {
...
proxy_pass http://$best_upstream;
...
}
upstream app1 {
…
server app1 max_fails=n fail_timeout=k;
server unix:/var/run/nginx_fallback.sock backup;
}
upstream app2 {
…
server app2 max_fails=n fail_timeout=k;
server unix:/var/run/nginx_fallback.sock backup;
}
Итоговая архитектура.
Выводы
• Хорошая балансировка всегда знает о приложении довольно
много
• Нагрузочное тестирование
• Ну и конечно здравый смысл
Links
1. http://luajit.org
2. http://nginx.org
3. https://github.com/openresty/lua-nginx-module
4. https://github.com/openresty/lua-upstream-nginx-module
5. https://github.com/goldenclone/nginx-sla
6. http://gdnsd.org
GDNSD
Всем Спасибо!
akononov.job@gmail.com
https://www.linkedin.com/in/andkononov

More Related Content

What's hot

Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
Ontico
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Ontico
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 

What's hot (20)

Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 

Viewers also liked

Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
Ontico
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...
Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...
Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...
Ontico
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Ontico
 
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Ontico
 

Viewers also liked (20)

Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
 
Использование haproxy/iptables+etcd+confd для автоматического service discove...
Использование haproxy/iptables+etcd+confd для автоматического service discove...Использование haproxy/iptables+etcd+confd для автоматического service discove...
Использование haproxy/iptables+etcd+confd для автоматического service discove...
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
 
IPONWEB: Темная сторона силы: разработка устойчивой серверной архитектуры
IPONWEB: Темная сторона силы: разработка устойчивой серверной архитектурыIPONWEB: Темная сторона силы: разработка устойчивой серверной архитектуры
IPONWEB: Темная сторона силы: разработка устойчивой серверной архитектуры
 
Continuous Integration and DevOps with Open Build Service(OBS)
Continuous Integration and DevOps with Open Build Service(OBS)Continuous Integration and DevOps with Open Build Service(OBS)
Continuous Integration and DevOps with Open Build Service(OBS)
 
Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...
Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...
Воспитать в себе обезьяну. О том, как все успеть, не превращаясь в биоробота ...
 
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
 
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
 
Мифы, которые мешают бизнесу расти / Дмитрий Калаев (ФРИИ)
Мифы, которые мешают бизнесу расти / Дмитрий Калаев (ФРИИ)Мифы, которые мешают бизнесу расти / Дмитрий Калаев (ФРИИ)
Мифы, которые мешают бизнесу расти / Дмитрий Калаев (ФРИИ)
 
Event-based self-healing monitoring / Кирилл Сотников (Cognician)
Event-based self-healing monitoring / Кирилл Сотников (Cognician)Event-based self-healing monitoring / Кирилл Сотников (Cognician)
Event-based self-healing monitoring / Кирилл Сотников (Cognician)
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
 
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
 
Архитектура поиска в Avito / Андрей Смирнов (Avito)
Архитектура поиска в Avito / Андрей Смирнов (Avito)Архитектура поиска в Avito / Андрей Смирнов (Avito)
Архитектура поиска в Avito / Андрей Смирнов (Avito)
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
 

Similar to smart balancing with nginx+lua / Андрей Кононов (IPONWEB)

Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Ontico
 
Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)
Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)
Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)
Ontico
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
Sergey Xek
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
Ontico
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
Leonid Yuriev
 
Учет и управление IP-ресурсами сети
Учет и управление IP-ресурсами сетиУчет и управление IP-ресурсами сети
Учет и управление IP-ресурсами сети
Cisco Russia
 

Similar to smart balancing with nginx+lua / Андрей Кононов (IPONWEB) (20)

A popular DNS security overview
A popular DNS security overviewA popular DNS security overview
A popular DNS security overview
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Nikolay
NikolayNikolay
Nikolay
 
Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)
Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)
Percona XtraDB Cluster, Galera под капотом / Николай Ихалайнен (Percona)
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Sun Microsystems открытые системы хранения данных
Sun Microsystems открытые системы хранения данныхSun Microsystems открытые системы хранения данных
Sun Microsystems открытые системы хранения данных
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Sivko
SivkoSivko
Sivko
 
Разбор реального кейса построения гибридного облака.
Разбор реального кейса построения гибридного облака.Разбор реального кейса построения гибридного облака.
Разбор реального кейса построения гибридного облака.
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 
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
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStack
 
Учет и управление IP-ресурсами сети
Учет и управление IP-ресурсами сетиУчет и управление IP-ресурсами сети
Учет и управление IP-ресурсами сети
 

More from Ontico

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

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя 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...
 
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)
 

smart balancing with nginx+lua / Андрей Кононов (IPONWEB)