Monorepo

Monorepo - это общая инфраструктура (soft&hard) для разработки и тестирования в ЛК. Она включает решения для написания кода, его сборки, тестирования и мониторинга - иными словами, пронизывает все процессы разработки в компании.

Для чего нужна Monorepo

Monorepo — это амбициозная цель, которая подразумевает не только единый репозиторий, но и: унифицированные подходы к разработке, инфраструктуру сборки/тестирования, общие инструменты разработки. Другими словами, мы делаем жизнь разработчиков наших продуктов более комфортной и эффективной.

Чем занимается наша команда

Мы разрабатываем свою инфраструктуру — это позволяет более быстро и гибко подстраиваться под новые требования, что затруднительно если бы мы бы использовали сторонние решения для CI/CD. Кроме того, когда более 1000 разработчиков используют один общий инструмент на всех, то потратиться на разработку своей инфры и доделывать ее под себя кажется разумным решением, нежели чем обкладывать костылями сторонние решения.

Мы хотим чтобы trunk репозитория был «зеленым». Для этого перед каждым коммитом запускается проверка в виде валидационного билда: он выполняет сборку и тестирование изменившихся на коммите продуктов. Если сборка успешна разработчик получает «зеленый свет» и может закоммитить свои изменения. Для работы разработчика необходимо чтобы эти проверки были быстрыми и надежными, что делает роль разработчика инфраструктуры значимой и ответственной.

Необходимые навыки и знания

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

Полезная, но необязательная литература

- Операционная система UNIX: Ольга Стесик, Сергей Немнюгин, Андрей Робачевский
- Алгоритмы. Построение и анализ: Кормен Томас Х., Лейзерсон Чарльз И.
- Распределенные системы. Паттерны проектирования: Брендан Бёрнс
- Внутреннее устройство Windows: Руссинович Марк, Соломон Дэвид

Делимся экспертизой

DevTools Party - первый митап из новой серии об инфраструктуре разработки.

Нас с вами ждёт: 
- Спокойствие разработчика в условиях монорепозитория - Алина Власова, Лаборатория Касперского. 
- Просто о сложном: как устроен гетерогенный кластер выполнения задач в Яндексе Кардаманов Константин, Яндекс.
- Как обновить 100 библиотек в 1000 сервисов и делать это регулярно - Агалецкий Павел, Авито.
Подробнее

Как монорепозиторий изменил жизнь разработчиков «Лаборатории Касперского»?

Некоторое время назад «Лаборатория Касперского» решила перенести свои проекты по разработке в монорепозиторий с общей инфраструктурой. Мы решили поделиться опытом и рассказать, с какими проблемами сталкиваются разработчики в выбранном подходе, и как мы научились их решать.
Подробнее