Группа развития экосистемы сборки и тестирования
Язык буткемпа: 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.