В моем проекте будет много микросервисов, и для локальной / dev среды я хочу иметь возможность выбирать, какие микросервисы мне нужны, и автоматически извлекать / конфигурировать / докеризировать их (опционально я могу установить флаг all
чтобы получить все услуги).
Чтобы добиться того, что я хочу использовать основной репозиторий, назовем его backend-entry
, и в этом репозитории будет docker-compose
файл с изображениями, который будет использоваться всеми / большинством сервисов, таких как revers-proxy, DB(для dev env, наверное, нормально иметь единый сервис БД) и так далее.Кроме того, я хочу использовать Ansible в качестве средства выполнения задач для извлечения всех служб, имеющих основной playbook и sub playbooks для каждого дочернего репо.И папка services, где я хочу хранить все сервисы (клонированные git-репозитории).
Структура каталогов:
- backend-entry
./devops
./docker # all docker related data
docker-compose.yml
# other docker related data like docker files, configs and so on
./ansible
./development
run.yml # main playbook
./services # folder to which holds sub playbooks
service_one.yml
service_two.yml
./services
./service_one/
./service_two/
Основная книга воспроизведения run.yml
, вероятно, будет включать в себя только все вспомогательные книги воспроизведения и, возможно, запуститьвсе общие задачи.Каждая подпрограмма наподобие service_one.yml
будет иметь задачи для клонирования / извлечения собственного репозитория и запуска всех связанных с сервисом задач.
Я сделал логику выборки под-репозиториев, и вот вопрос: Должен ли я добавить папку service
в gitignore или сделать их подмодулями git?
Я не знаком с подмодулями git, но для меня преимущество в том, что он централизован.отслеживать / изменять все хранилища одновременно.Но также, насколько я понимаю, у него есть недостаток, и он заключается в том, что каждый разработчик должен всегда сохранять все сервисы на своей машине, и это может быть огромными накладными расходами.Может быть, кто-то уже работал с подобной настройкой и может поделиться своими мыслями, лучшими практиками?Спасибо!