Системный разработчик во внутреннее облако Яндекса

Дата размещения вакансии: 02.10.2025
Работодатель: Яндекс
Уровень зарплаты:
з/п не указана
Город:
Екатеринбург
Центральный административный округ, район Хамовники, квартал Красная Роза
Требуемый опыт работы:
От 3 до 6 лет

Мы развиваем внутреннее контейнерное облако (Runtime Cloud — RTC), в котором запущены все сервисы, создаваемые тысячами разработчиков Яндекса. Наша цель — сделать удобное облако для сервисов различного масштаба (от единиц до десятков тысяч контейнеров в сервисе), при этом рационально утилизировав все имеющиеся в нашем распоряжении аппаратные ресурсы. Сейчас под управлением внутреннего облака находится более 100К железных серверов и заведено более 50К сервисов (счёт контейнеров идёт на миллионы), а также несколько HPC-кластеров с современными GPU: мы занимаем три лидирующих места среди российских суперкомпьютеров.

Мы позволяем не только настраивать и запускать сервисы, но и даём пользователю всё, что нужно, чтобы их эксплуатировать: настраиваем балансировку, предоставляем мониторинг поднятых сервисов, собираем логи, поддерживаем интеграцию с CI/CD и не только. Мы стремимся сделать из облака единую тесно интегрированную платформу (PaaS), которая обеспечит удобство и надёжность разработки и эксплуатации сервисов, позволив разработчикам использовать как стандартные API/UI-механизмы, так и подход Infrastructure as Code.

Помимо этого, мы разрабатываем внутренние инструменты — управление железом, сертификатами, доступами, чтобы минимизировать нагрузку на эксплуатацию облака и поддержку наших пользователей.

Группа системной разработки отвечает за базовый слой облачного ПО (в том числе ядро ОС — коммиты), являющийся фундаментом и основой, на которой строится внутреннее облако Яндекса.

Базовый слой состоит, среди прочего, из:

  • системы контейнеризации приложений, которая разработана и широко используется в Яндексе. У системы есть и плагины — например, для сбора контейнерных метрик для экспорта во внутреннюю систему мониторинга, shim для реализации CRI-интерфейса для работы в Kubernetes;
  • системы для эффективной передачи данных на множество серверов по протоколу, схожему с BitTorrent;
  • сервиса для активного мониторинга состояния сети всего Яндекса;
  • агента для управления на хосте BPF-программами, которые гранулярно донастраивают сетевой стек для более эффективной работы;
  • системы для clusterwide-анализа производительности приложений, схожей с Google Cloud Profiler, и многого другого. Ищем разработчика, который не побоится большого разнообразия технологий и будет участвовать в их поддержке и развитии, чтобы повысить производительность, отказоустойчивость и удобство облака для пользователей.

Какие задачи вас ждут

Поддержка и развитие существующих систем контейнеризации и доставки данных
Современное облако позволяет запускать множество сервисов на одном хосте. Важно, чтобы они не мешали друг другу и при этом получали все необходимые ресурсы для надёжной и быстрой работы. Наша система контейнеризации Porto это гарантирует, но со временем меняются как нагрузки, так и требования сервисов. Поэтому нужно уметь быстро реагировать на изменения и адаптировать систему контейнеризации под новые условия.

Сервисы в своей работе опираются на надёжную доставку данных. Передача больших объёмов информации на тысячи хостов — сложная задача, и наша система успешно с ней справляется, однако вместе с ростом компании увеличиваются и требования к скорости и масштабируемости.

Поддержка ядра Linux
Ядро Linux — фундамент операционной системы. Оно должно оставаться стабильным, безопасным и адаптированным под конкретные задачи компании. Мы поддерживаем его актуальное состояние, развиваем механизмы тестирования и автоматизированного развёртывания.

Отдельное внимание уделяется собственному набору изменений, которые не входят в upstream, но расширяют функциональность ядра. Кроме того, в инфраструктуре регулярно появляется новое оборудование, требующее актуальных драйверов. Мы занимаемся их адаптацией и бэкпортированием, а также анализируем и решаем возникающие в продакшене проблемы, связанные с ядром.

Развитие сетевого стека
Надёжный сетевой стек — основа внутреннего облака. Без стабильного и быстрого обмена данными между сервисами оно не сможет работать эффективно. Мы обеспечиваем взаимодействие тысяч контейнеров, гарантируя необходимые показатели задержек и пропускной способности.

Система должна быть не только производительной, но и предсказуемой, чтобы сервисы получали чёткие гарантии качества работы сети. С ростом требований часть прежних решений перестаёт быть актуальной, поэтому мы постоянно анализируем и оптимизируем сетевой стек, устраняем узкие места и повышаем его надёжность.

Мы ждем, что вы

  • Знаете Go, C, C++ или Python (не обязательно все языки сразу)
  • Хорошо понимаете принципы ОС Linux, контейнеризации и сети
  • Работали с кодовой базой ядра Linux

Будет плюсом, если вы

  • Имеете опыт проектирования и разработки распределённых сервисов
  • Разбираетесь в теме построения облачных сервисов
  • Занимались многопоточным и асинхронным программированием