Codenv
Язык буткемпа: Go
Когда разработчик приходит в новый проект, будь то новая компания или соседняя команда, ему нужно не только погрузиться в кодовую базу, но и настроить себе полноценное рабочее окружение от VCS и до IDE. Иногда этот процесс занимает довольно продолжительное время, которое особенно хочется сэкономить на масштабах большой компании — в Яндексе работают тысячи разработчиков. Для решения этой задачи мы сделали Codenv — это сервис «IDE по кнопке», который создаёт полностью готовое к работе удалённое окружение для разработки за пару минут. Помимо быстрого старта мы также обеспечиваем разработчиков быстрым железом, чтобы сборка и тесты занимали минимум времени и не загружали ноутбук в процессе.
Наш сервис написан на Go с использованием микросервисной архитектуры. Мы глубоко погружаемся в технологии виртуализации и контенеризации и Linux-сервисы.
Стек
Golang + go-swagger и немного bash для CI.
Команда
У нас распределённая команда из четырёх разработчиков и менеджера: Москва (1), Санкт-Петербург (1), Белград (1) и удалёнка (2). Мы уже давно работаем в распределённом и удалённом режиме, поэтому хорошо научились с этим справляться: у нас есть стендапы через день и созвоны по необходимости.
Особенности
- Remote IDE — это будущее разработки в Яндексе и один из флагманских проектов YPE (Yandex Platform Engineering).
- Мы хотим повысить эффективность каждого разработчика в компании — и у вас будет возможность непосредственно влиять на это.
- Мы каждый день пользуемся сервисом, который разрабатываем и гордимся им.
- Cloud IDE — популярная и всё более востребованная во всём мире тема.
- У вас будет возможность расширить кругозор большим количеством смежных технологий и потрогать не только сервер-сайд разработку, но cli, Linux и виртуализацию.
Что нужно принять во внимание
Codenv — это молодой проект, который пока работает в режиме стартапа: у вас будет возможность значительно влиять на развитие продукта, но вы должны быть готовы экспериментировать и гибко менять планы.
Вызовы
- Remote IDE — новая тема в инфраструктуре разработки, поэтому многие решения нужно самостоятельно придумывать с нуля.
- Разработчики достаточно консервативны в выборе инструментов и нужно прилагать усилия к популяризации сервиса.
- Наша задача — сделать масштабный, высоконагруженный и надёжный сервис, не пытаясь при этом просто «залить железом» все проблемы.
- Тысячи внутренних разработчиков имеют свои и зачастую противоположные запросы к сервису. Наша задача — услышать всех и найти оптимальное решение.
Дополнительные материалы
Итоги опроса разработчиков про разработку на удалённых машинах от JetBrains
Как используют remote development в Uber
Рассказ про устройство нашего внутреннего монорепозитория