GitFarm: Git-операции по сети вместо клона монорепозитория
GitFarm — внутренний сервис Uber, который выполняет команды Git за другие сервисы: не система контроля версий, а централизованный Git-клиент. Клиент не держит копию репозитория, а шлёт запрос по gRPC, и команда отрабатывает в одноразовой песочнице на готовом чекауте.
Зачем: автоматика Uber дёргает Git миллионы раз в сутки, и раньше каждому сервису был нужен полный чекаут. Клон Go-монорепозитория занимает 15 минут, шесть ядер, 32 ГБ памяти и больше 40 ГБ диска. GitFarm отдаёт чекаут меньше чем за 500 мс, а расход ресурсов на стороне клиентов упал более чем на 80%.
Наружу GitFarm не выложен, но схема понятна: bare-клоны, которые сервис держит в синхроне с апстримом, плюс пулы прогретых чекаутов и песочниц. Если ваши CI-джобы стартуют с полного клона большого репозитория, повторить можно и у себя. Разбор в InfoQ.
#инструменты
Post #2946
1.17K
