Разработчик бэкенда в DistBuild
DistBuild — это сервис распределённой сборки и тестирования в экосистеме инструментов разработки Яндекса. Каждый день на DistBuild выполняются сотни миллионов автоматических тестов, проверяющих десятки тысяч пул-реквестов в нашем монорепозитории — Аркадии. Также сервис используется для ускорения локальной сборки больших проектов и подготовки релиз-кандидатов в CI/CD-пайплайнах.
В кластерах DistBuild сосредоточено 250К CPU и петабайт оперативной памяти. Наш сервис распределённой сборки отличается прогнозированием потребления вычислительных ресурсов, многоуровневым кешированием результатов, справедливым квотированием вычислительных ресурсов и качественным уровнем изоляции запускаемых задач. От эффективности DistBuild зависит как продуктивность наших коллег, так и time to market большинства сервисов Яндекса.
Задачи и обязанности
Повышение эффективности кластера
Мы боремся за Throughput всей системы: дорогое железо должно приносить как можно больше пользы для компании. При этом надо не забывать про Latency: это напрямую влияет на пользовательский опыт разработчиков.
Повышение стабильности
При разработке сервиса многие вещи сознательно были упрощены, кое-где были срезаны углы. Мы активно работаем над надёжностью сервиса и стремимся улучшить качество жизни разработчиков, повышая нашу стабильность.
Крупные вызовы
Сейчас почти вся нагрузка на Distbuild — это автоматически запускаемые проверки в пул-реквестах или после коммитов. Есть необходимость в ускорении локальных сборок за счёт вычислительных мощностей кластера Distbuild.
Больше о бэкенде в Яндексе — в канале Yandex for Backend
Требования
- Разрабатываете на С++
- Хорошо знаете Linux
- Способны самостоятельно спроектировать фичу, видеть плюсы и возможные минусы принятого дизайна
Дополнительные требования
- Разрабатывали высоконагруженные распределённые системы
- Работали с фреймворком gRPC
- Знаете YDB