Как создать оптимизированную среду разработки для микро-услуг

Я размышлял об архитектуре микросервисов и задавался вопросом, есть ли у людей хорошая передовая практика для сред разработки.

Мое рабочее предположение состоит в том, что каждый микро сервис будет жить в своем собственном git-репозитории для изоляции и простоты развертывания. Я также предполагаю, что каждый разработчик создаст форк любого репо, над которым он работает.

Проблема, которую я рассматриваю, возникает, когда вы работаете над проблемой, которая связана с несколькими микро-сервисами. Например, существует дефект, который влияет на один микро-сервис и то, как он соответствующим образом потребляет другой микро-сервис.

Предполагая, что в этом дефекте участвуют n проектов, вам придется проверить n git-репозиториев и настроить их для совместной работы. Если у каждого из них есть Vagratefile и Dockerfile, вы в конечном итоге запускаете n виртуальных машин. В идеале у вас должна быть только 1 Vagrant VM, и каждая служба будет просто новым экземпляром Docker в той же самой VM.

Мастер репо / проект с подмодулями git может работать. Проблема в том, что если мы создадим универсальное главное репо / проект, то субмодуль будет указывать на восходящий поток, а не на развилку для разработчика.

В настоящее время я думаю, что мастер-проект, в котором были некоторые конфиги, vagrant и fig, мог бы сработать. В настоящее время я рассматриваю два метода реализации этого подхода.

  1. Укажите конфигурацию с некоторыми значениями по умолчанию, т. Е. Project_1 должен быть расположен в../project_id и т. Д.
  2. Предоставьте сценарий, который будет создавать подмодули на основе учетной записи пользователя github, при этом будет создан пульт дистанционного управления для пользовательского форка, а также удаленный для вышестоящего проекта.

Кто-нибудь еще решил эту проблему или имеет хороший рабочий процесс?

1 ответ

Решение

Я решил пойти с рис.

Если микросервис зависит от другого микросервиса, то фиг будет ссылаться на этот сервис, используя../

Это предполагает, что все услуги проверены как братья и сестры. Это также может быть легко выполнено с помощью вложенных деревьев git.

В моем репозитории dev_ops содержится мой Vagrant-файл для boot2docker и т. Д.

Другие вопросы по тегам