Текущая настройка:
- Каждый микросервис имеет свой собственный репозиторий моделей.
- Существует «общий» репозиторий для общих элементов.
- Проблема: мы не используем управление версиями для этих библиотек моделей. Наши конвейеры CI/CD всегда используют последнюю версию. Когда модель меняется, она часто приводит к критическим изменениям в последующих службах, которые мы не улавливаем до развертывания или выполнения.
Предлагаемое решение: Я рассматриваю возможность объединения всех моделей в одну «унифицированную». Models» со структурой типа: src/service_name/models/
Идея состоит в том, чтобы иметь одну библиотеку для управления ими всеми, которую мы затем сможем правильно версионировать. Таким образом, мы управляем только одной версионной зависимостью в нашей экосистеме.
Вопросы:
- Является ли один «Monorepo» для моделей рекомендуемым шаблоном для более чем 40 сервисов или это ведет к «аду зависимостей», когда изменение модели сервиса A приводит к увеличению версии (и потенциальному повторному развертыванию) для сервиса B?
- Как мы можем реализовать управление версиями таким образом, чтобы это не было «кошмаром обслуживания»?
- Есть ли лучшие альтернативы совместному использованию контрактов.
Подробнее здесь: https://stackoverflow.com/questions/798 ... avoid-brea
Мобильная версия