РАЗРАБОТКА

Block внедрил монорепозиторий для 450 JVM-базовых репозиториев — улучшение CI до 10 минут

Block объединил 450 JVM-репозиториев в монорепозиторий, улучшив CI до 10 минут и упростив управление зависимостями.

✍️ Редакция iTech News | 07.11.2025 | ⏱ 2 мин | Источник: InfoQ
💻

Компания Block объединила 450 репозиториев JVM в монорепозиторий, что позволило сократить время непрерывной интеграции (CI) до 10 минут. Это важный шаг для простоты разработки и управления зависимостями в масштабируемых системах, таких как Cash App и Square.

Контекст перехода к монорепозиторию

Ранее Block использовал полирепозиторный подход, при котором каждый сервис и библиотека хранились в отдельных репозиториях. Несмотря на независимость команд, это приводило к усложнению координации и управлению зависимостями. В результате возникали проблемы с несовпадением версий зависимостей и требования к повторным усилиям при обновлении библиотек, что отрицательно сказывалось на общей производительности.

Детали миграции и её результаты

Теперь блок поддерживает около 8,800 сборок в неделю, а основной ветка CI показывает 90-й процент времени выполнения в 10 минут. По словам Габора Папа, старшего менеджера по инженерии Block, переход к монорепозиторию привел к значительному улучшению условий работы разработчиков. Теперь изменения между сервисами могут вписываться в одном коммите, что упрощает развертывание и управление зависимостями напрямую из исходного кода, а не через версии библиотек.

Для поддержки перехода был разработан специальный плагин для IntelliJ, который загружает только необходимые проекту части. Также была внедрена новая система очередей для слияния, что помогло удерживать стабильность основной ветки при высоком объеме коммитов. Совместные Gradle-плагины и оптимизация производительности git также способствовали эффективной работе системы.

Значение для разработчиков

Для разработки в российском контексте этот переход – важный урок. Миграция к монорепозиторию может значительно сократить время на координацию и управление зависимостями, что особенно полезно для компаний, работающих в условиях динамично меняющегося рынка IT. Если ваша команда сталкивается с подобными проблемами зависимости, возможно, стоит рассмотреть возможность перехода на монорепозиторий или другие альтернативные подходы.

Следующий шаг для Block — продолжение улучшения инструментов разработки и интеграции, что обещает новые улучшения эффективности команд.

Поделиться: Telegram X LinkedIn