Лучшие практики управления общими моделями в более чем 40 микросервисах, чтобы избежать критических измененийJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Лучшие практики управления общими моделями в более чем 40 микросервисах, чтобы избежать критических изменений

Сообщение Anonymous »

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


Подробнее здесь: https://stackoverflow.com/questions/798 ... avoid-brea
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»