darakanoit
@darakanoit

Как организовать docker-compose для микросервисов на локальной машине для разработки?

Добрый день, раньше всегда работал с монолитами на локалке и поднимал один docker-compose backend + frontend и какие-то сервисы в догонку.
Теперь настал черёд организации микросервисов, что могли бы общаться между собой по http.
Но не могу уложить картину в голове, как это должно выглядеть.
Например 1 docker-compose в корне с проектами и его стартовать? или? Как это организовать "правильно"?
  • Вопрос задан
  • 392 просмотра
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker
Программист, энтузиаст
Основное отличие микросервисов от монолита в том, что они более автономны и изолированны друг от друга. Общаться между собой они, кстати, могут не только по http, чаще это происходит через очереди RMQ или кафку какую-нибудь.
Если несколько микросервисов у вас будут хранить данные в одной БД или вообще в одной таблице, то это несколько ухудгает изоляцию и ваша микросервисаня архитектура снова начинает пахнуть монолитом, только затейливым таким монолитом, поскольку, возможно, вы на следующих этапах захотите вынести общий код из микросервисов в какие-то библиотеки, начнете импортировать одни и те же модели разными "микросервисами". И получите в итоге тот же монолит со всеми его недостатками, а достоинства микросервисной архитектуры потеряете, приобретя при этом её недостатки.

Кроме того, простые по своему устройству микросервисы положено при необходимости масштабировать горизонтально, с чем будут проблемы у докера с его компоузом.
амое правильное развёртывать микросервсиную архитектуру в кубернете.
При этом очень часто, если конечно вы не живёте в монорепозитории, конфигурация развёртывания настраивается вообще в отдельном проекте.

Для разработки и отладки вы обычно изолированы в своём микросервисе, вам может быть достаточно для девелоперских нужд докер-компоуза, который поднимет вам БД, nginx, очереди и что вам там еще надо для нужд локальной отладки и тестирования.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы