Как хранить исходный код микросервисов?

Вольный вопрос - поделитесь опытом и мнением:
Как хранить исходный код большого кол-ва микросервисов, написанных для одного проекта? Каждому микросервису по репозиторию или все в одном?

  • Имеется проект по интеграции большого кол-ва сторонних сервисов.
  • В архитектуре проекта заложен удобный механизм создания микросервиса на каждый сторонний проект, с которым мы интегрируемся.
  • На данный момент имеется 20 микросервисов
  • Планируемое кол-во микросервисов к концу года - 100
  • Создание микросервиса на каждую интеграцию оправдано
  • Исходный код каждого микросервиса хранится в отдельном GIT репозитории
  • Есть несколько микрсервисов, которые являются вспомогательными для всей системы (нормализаторы, поисковый механизм, веб морда, etc)
  • Каждый микросервис для интеграции с внешней системой является частью нашего проекта и не может функционировать вне проекта


Лично мне кажется, что необходимо хранить код всех микросервисов в одном репозитории проекта, но хотелось бы узнать ваше мнение
  • Вопрос задан
  • 3170 просмотров
Пригласить эксперта
Ответы на вопрос 2
index0h
@index0h
PHP, Golang. https://github.com/index0h
Лично мне кажется, что необходимо хранить код всех микросервисов в одном репозитории проекта, но хотелось бы узнать ваше мнение

Для малого количества - вполне ок, но вы сами сказали, что их будет много. По этому лучше все же в отдельных.
Одна из основных целей микросервисов - обеспечение жесткого интерфейса между ними на уровне транспотра. В случае одного репозитория - рано, или поздно вы получите очень связанную систему и понятие микросервисов будет не применимо.
Ответ написан
sim3x
@sim3x
разнести по разным репам
использовать штатные механизмы ЯП для установки и работы с кодом (pip, rvm, composer, ...)

свои тесты и билд процедуры на CI сервере
В жтом случае необходимо будет для каждого микросервиса прописывать зависимости от других микросервисов, которые необхоимы для тестирования текушего.
пока количество связей не гигантское ~100 - изолировать комбинации сервисов и тестировать отдельно.
Когда перевалит за сотню - стоит взять пару QA и поручить им приемочное (функциональное) тестирование всего комплекса
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы