Разработчик балансера в Поиск

Балансер (балансирующий нагрузку обратный прокси-сервер) терминирует протоколы прикладного уровня и перенаправляет запросы пользователей в сервисы. Подавляющее большинство сервисов Яндекса используют балансер для распределения трафика по дата-центрам и для защиты от DDoS-атак. Балансер является точкой отказа сервиса, открытой для внешних угроз, поэтому к его надёжности, отказоустойчивости и скорости работы предъявляются исключительно высокие требования. Например, инсталляция балансера yandex.tld должна быть готова обработать миллионы запросов в секунду.

Примеры конкретных задач, которые мы решаем:

  • налаживание фаззинг-тестирования протокола HTTP/2;
  • уменьшение потребления памяти неактивными HTTP/2-соединениями;
  • поддержание протокола 0-RTT Handshake с клиентом;
  • динамический подбор размера TLS-записи.

Tasks that await you

  • поддерживать новые протоколы (gRPC, QUIC);
  • мониторить и минимизировать видимые пользователю задержки (сюда входит оптимизация работы с сетевыми протоколами и использование возможностей Prefetch);
  • уменьшать задержки обработки запросов в балансере (наиболее перспективное направление тут — написать многопоточный планировщик корутин);
  • оптимизировать потребление CPU и памяти;
  • улучшать точность и информативность нагрузочного тестирования;
  • оптимизировать алгоритмы динамической балансировки и улучшать методики их тестирования.

We expect that you

  • хорошо знаете C++;
  • хорошо знаете TCP/IP и HTTP/1.x;
  • понимаете, как устроена сетевая подсистема ядра Linux или другой операционной системы.

It'd be a plus if you

  • разрабатывали многопоточные и асинхронные приложения;
  • разрабатывали приложения, активно работающие с сетью;
  • понимаете работу TLS, HTTP/2, gRPC, QUIC.
Thank you for your apply!

We will contact you within a week.

Mon Feb 12 2024 19:00:36 GMT+0300 (Moscow Standard Time)