+ Функционал разных решений для балансировки.
+ Виды балансировщиков (DNS, hardware, software, облачные решения).
+ Поведение при скачках трафика и возможности скалирования сервиса.
+ Специфика трафика RTB в контексте балансировки.
+ Проблемы, которые возникали у нас, и как мы их решали.
3. IPONWEB
• Вся инфраструктура в облаках (AWS и GCE)
• Миллионы HTTP-запросов в секунду
• Короткие ответы
• Кэширование не актуально
• Суточные и событийные колебания
5. IPONWEB и RTB
• Вся инфраструктура в облаках (AWS и GCE)
• Миллионы HTTP-запросов в секунду
• Короткие ответы
• Кэширование не актуально
• Суточные и событийные колебания
• Разброс пользователей по всему миру
• Серверный и пользовательский трафик
20. google.com. A 173.194.122.194
google.com. A 173.194.122.201
google.com. A 173.194.122.199
google.com. A 173.194.122.195
google.com. A 173.194.122.196
google.com. A 173.194.122.193
google.com. A 173.194.122.197
google.com. A 173.194.122.200
google.com. A 173.194.122.198
google.com. A 173.194.122.192
google.com. A 173.194.122.206
}Round-robin DNS pool
21. Проблемы Round-Robin DNS
• Нет status checks
• Нет понимания гео-локации клиента
• Распределение не идеально для серверного трафика
37. nginx + Lua
• Lua
• Sticky
• Hash Ring
• Fallback
upstream backend-1 {
server backend-1.local max_fails=x fail_timeout=y;
server unix:/var/run/nginx_fallback.sock backup;
}
upstream backend-2 {
server backend-2.local max_fails=x fail_timeout=y;
server unix:/var/run/nginx_fallback.sock backup;
}
38. Облака vs свои решения
• Vendor lock
• Проблемы с отладкой
• Всегда хочется больше возможностей
• Поддержка
• Стоимость серверов vs стоимость трафика
39. Какие ещё решения бывают?
• Hardware балансировщики
• lighttpd, haproxy, проприетарные приложения etc.
40. Выводы
• Облачные балансировщики - это удобно, но есть минусы
• Всегда смотрите на требования
• Периодически пересматривайте решения