Сервисы Яндекса работают бесперебойно благодаря сетевой инфраструктуре. Десятки тысяч сетевых устройств участвуют в маршрутизации и фильтрации десятков терабит трафика в секунду. Чтобы управлять этой сетью максимально гибко, мы развиваем собственную сетевую операционную систему на базе открытого проекта SONiC — Software for Open Networking in the Cloud. SONiC — это Linux для сетевых устройств. Эта ОС позволяет нам взять «железо» у производителя и превратить его в устройство с нужными нам функциями. Мы адаптируем ядро, оптимизируем компоненты и собираем дистрибутив так, чтобы он идеально работал с нашими специфическими задачами. Мы создаём прозрачную инфраструктуру: пишем собственные демоны и утилиты, которые работают прямо на коммутаторе и позволяют нашим мониторингам и системам автоматизации эффективно управлять устройством. Мы ищем инженера, который будет развивать нашу внутреннюю сборку SONiC, чтобы сетевая ОС была надёжной. Если вам интересно заниматься сетевыми операционными системами, работать на стыке системного программирования и сетей, делать инструменты для управления и автоматизации сети Яндекса, то вам у нас понравится. Опыт с SONiC не обязателен — главное иметь сильную инженерную базу, остальному научим.

Обязанности:

Развитие собственной сборки SONiC
Вам предстоит развивать и поддерживать собственную сборку SONiC для сетевого оборудования дата-центров Яндекса: интегрировать её с новым «железом», разбираться с vendor stack / BSP и обеспечивать стабильную работу в продакшене. Отладка и разбор сложных системных проблем
Нужно будет разбираться с проблемами на стыке Linux, networking и hardware: анализировать нестандартное поведение системы, искать причины неисправностей и аккуратно внедрять изменения под нагрузкой. Интеграция с инфраструктурой Яндекса
Вы будете интегрировать сетевую ОС с внутренней экосистемой управления инфраструктурой и участвовать в развитии инструментов и автоматизации сетевой платформы. Развитие сборочной и эксплуатационной инфраструктуры
Часть задач связана с развитием инфраструктуры сборки SONiC, поддержанием стабильности сборок и улучшением внутренних инженерных процессов сетевой ОС. Работа с продакшен-инфраструктурой
Важная часть роли — развитие и эксплуатация живой сетевой инфраструктуры: безопасное внедрение изменений, повышение надёжности и сопровождение решений в продакшене. Подписывайтесь на телеграм-канал Yandex Infrastructure, чтобы узнать больше о том, как мы делаем внутреннюю инфраструктуру Яндекса.

Ключевые навыки:

  • Работали с продакшен-системами и решали сложные технические проблемы
  • Уверенно владеете Python или Go: в идеале готовы писать на обоих языках
  • Хорошо понимаете внутреннее устройство Linux: сеть, процессы, память, взаимодействие компонентов системы
  • Знаете принципы построения отказоустойчивых и распределённых систем

Дополнительные требования:

  • Работали с Linux networking stack и инструментами отладки: perf, strace, gdb и подобными
  • Работали с сетевым оборудованием, занимались его первичной настройкой и обновлением
  • Разбираетесь в устройстве компьютерных сетей и протоколах маршрутизации — в частности, BGP
  • Имеете опыт чтения или написания кода на C/C++: внутри SONiC есть низкоуровневые компоненты на этих языках
  • Понимаете принципы контейнеризации и работали с Docker: архитектура SONiC построена на контейнерах
  • Интересуетесь infrastructure / system engineering и задачами на стыке networking и backend