Группа развития экосистемы сборки и тестирования

Язык буткемпа: Python

Наша команда развивает экосистему вокруг системы сборки и пакетирования. Мы работаем над переходом от отдельных процессов и технологий к единой и хорошо связанной экосистеме внутри инфраструктуры Яндекса с различными точками входа (браузер, laptop, виртуалка, мобильное устройство, etc). Развитие экосистемы сборки и пакетирования позволяет не только повышать эффективность в различных сценариях, но и предоставлять новые возможности для разработчиков.

На текущий момент в зону ответственности нашей группы входят:

  • serverless функции, обеспечивающие проверку pull request-ов. Более подробно про систему проверяющую pull request-ы мы рассказывали тут - https://youtu.be/p1C0P508Tm8;
  • сервисы, повышающие эффективность сборки и пакетирования (например, распределенный кэш сборки);
  • сервисы, предоставляющие более глубокий взгляд на кодовую базу (например, единый индекс кодовой базы под разные ЯП);
  • сервисы, повышающие контроль качества кода в репозитории (например, code coverage - вычисление покрытия кода тестами).

Нашими сервисами пользуются почти все разработчики Яндекса. Развитие экосистемы сборки и пакетирования влияет на эффективность как разработчиков, так и сервисов.

Стек

Python 3 Основной язык программирования
Python 2 Все ещё встречается в некоторых местах, постепенно переписываем на Python 3
Ya Test Инструменты сборки и тестирования, включая систему сборки ya make и сервис распределенной сборки DistBuild. Это те базовые технологии, вокруг которых мы строим экосистему.
Sandbox Внутренняя система выполнения задач общего назначения. Используется нами для serverless вычислений
YTsaurus https://ytsaurus.tech Используется нами для хранения и обработки данных с помощью map reduce вычислений
ClickHouse https://clickhouse.com/. Используется нами для аналитики, а также для построения метрик и алертов.

Команда

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

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

Особенности

  • Широкий спектр решаемых задач — от повышения эффективности имеющихся решений до решения сложных архитектурно-технических задач.
  • Большая зона влияния — как на продуктивность разработки так и на эффективность систем и процессов.
  • Широкий спектр разрабатываемых сервисов и систем — можно найти то, что интересно.
  • Участие не только в разработке, но и в принятии продуктовых решений.
  • Быстрая выкатка фичей/оптимизаций/багфиксов вследствие умелого использования развиваемой нами экосистемой.

Что нужно принять во внимание

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

Вызовы

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

Дополнительные материалы

  • https://habr.com/ru/companies/yandex/articles/565568/ Сборка и тестирование в монорепозитории: кластер распределённой сборки DistBuild.
  • Сборка и тестирование в монорепозитории: система сборки ya make.

Предыдущая
Следующая