Мульти vs монорепозиторий. Что выбрать для твоего проекта?

preview_player
Показать описание

В видео ты узнаешь, что такое монорепозиторий, что такое мультирепозитории и когда какой подход применять.

ХОТИТЕ ПОМОЧЬ РАЗВИТИЮ КАНАЛА?

КОНТАКТЫ:
Рекомендации по теме
Комментарии
Автор

Расскажи пожалуйста в следующем видео про стратегии тэгирования образов. Мне кажется всем будет интересно послушать.

dev_zloi
Автор

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

MrLuckyTomas
Автор

Привет Антон. Как ты решил когдато делать полезные видео так оно и есть. Всё что касается программирования всегда полезно, но интересного мало. Я как начинающий программист интересуюсь всем что связано с этой темой. Так как я ещё толком не работал в этой сфере, я желаю познать многие тонкости этого IT дела как программирование.
Делай полезные ролики и не думай что тебя ни кто не смотрит, я так как погружаюсь в эту профессию ещё долго буду смотреть твои ролики. Всего тебе наилучшего в работе и по жизни. Да мне иногда смешно, ты писал фичу, а её ни кто не хочет использовать. Для меня конечно multi repo очень слосно и пока я только пользуюсь mono repo (но собираюсь освоить все методы хранения repository). Спасибо видео очень полезное, по крайней мере для меня и моего друга ( у которого до сих пор нет времени посмотрет это видео).
Добавлю конечно, что стримы я не смотрю твои так как они хоть и полезные но для меня немного длинные и скучные.

linuxforbeginners
Автор

Подскажите, пожалуйста, название трека, что играет на фоне!

mrLukas-duxd
Автор

Самая жуть в мультирепах получается тогда, когда нужно выкатить стенд из всех сервисов, например для e2e тестирования. Тогда у того кто сопровождает развертывание начинает гореть...
Я не нашел ничего лучше, чем сделать отдельный репо с мета чартом включающим все чарты сервисов. Триггер этого репозитария по http приводит к выкатыванию всего проекта. Так же в запросе можно передать параметры: имя стенда и конкретные версии конкретных чартов (иначе используются дефолтные, у меня например версия 99.99.99 чарта используется как мутабельная и перезаписывается при сборке мастера каждого проекта, из веток тоже делаются мутабельные таги 0.0.номер-тикет-ветки, так что на них можно сослаться).
Кстати ограничение что монорепо долго собирается элементарно обходится использованием продвинутых тулзов для сборки контейнеров. Например werf не пересобирает (и никогда не перезаписывает) бестолку образы если видит что они уже лежат собранные в регистри. Долгие тесты со всех серсисов - тоже не проблема. Я например кеширую в простом хранилише kv (consul) хешь от дайджеста образа каждого сервиса, а так же подмешиваю дайджесты зависимостей (например ключ прохождения тестов бекендом состоит из хеша от дайджеста миграций + дайджеста бекенда), при запуске тестов проверяется наличие ключа (хеша) и выводится сообщение об успехе с описанием из value или запускаются тесты. В среднем разработчик разрабатывает свой 1 конкретный сервис, таким образом в среднем собирается 1 образ и запускаются 1ни тесты. Это быстро и не создает особой нагрузки.

Petyaumniy
Автор

Актуальная тема, но аргументов мало как в пользу моно, так и мультирепы.

domochevsky
Автор

Каждый проект держу в отдельной монорепе, но весь код всего деплоя всех проектов у меня находится в отдельной мультирепе.

eugene