Работали ли вы с HAProxy
Что проверяют
Настраивали ли вы балансировщик руками и понимаете ли, что он делает с трафиком. HAProxy стоит на входе, поэтому ошибка в его конфигурации это не медленный сервис, а лежащий сервис, и интервьюер ищет следы эксплуатационного опыта, а не пересказ документации.
Как отвечать
Разложите ответ по тому, что реально настраивается.
- режим:
tcpдля простого проксирования,httpдля разбора запросов и маршрутизации по пути или заголовку; - балансировка:
roundrobinдля однородных запросов,leastconnдля долгих и неравномерных, привязка клиента по адресу или через куку, когда без неё нельзя; - проверки:
option httpchkпо служебному адресу приложения, параметрыinter,fall,rise, чтобы сервер не мигал в ротации; - таймауты:
connect,client,serverвыставляются осознанно под профиль сервиса; - эксплуатация: страница статистики, управляющий сокет для перевода сервера в режим слива без перезапуска, мягкая перезагрузка конфигурации, логи с временем ответа бэкенда.
Хорошо назвать задачу: выкладка без разрыва соединений, ограничение частоты запросов через таблицы состояний, терминирование TLS, разведение трафика по нескольким группам серверов.
Где спотыкаются
Оставляют таймауты по умолчанию или не задают вовсе. Зависшие соединения копятся, упираются в предел одновременных подключений, и балансировщик перестаёт принимать новых клиентов, хотя серверы за ним свободны.
Проверяют только живой порт. Процесс поднялся, порт слушает, а запросы отдают пятисотые ответы, и трафик продолжает на него литься. Проверка должна дёргать адрес, который отвечает успешно только при работоспособном приложении вместе с его зависимостями.
Выкладывают конфигурацию полным перезапуском. Активные соединения рвутся, клиенты получают ошибки на ровном месте. Правильный путь это перевод сервера в режим слива и мягкая перезагрузка, при которой старый процесс дорабатывает уже принятые запросы.