немного опробовал его, и не нашел service discovery, так как вручную нужно после запуска каждого сервиса прописывать его в конфиге
Фактически, consul является единой точкой входа. Упадет он, упадет все.
Сейчас через nginx проксирую запросы с поддоменов на конкретные порты.
Скорее, Consul это не совсем то, что мне нужно.
сейчас не совсем ясно преимущество Consul перед Swarm. Работали ли вы с Docker swarm ?
Незавидная судьба Docker'а была приближена ростом Kubernetes. Docker не сделал никаких подвижек в сторону поддержки Kubernetes, облюбованного сообществом свободного ПО инструмента контейнерной оркестрации. Всё внимание компании было отдано конкурирующему продукту — Docker Swarm. Это решение было принято несмотря на то, что Kubernetes как раз ставил во главу угла контейнеры именно на основе Docker. Кстати сказать, Docker Captains в начале года подтвердили, что обсуждения Kubernetes в статьях, на митапах и конференциях компанией не одобрялись.
И на dockercon17 повторялась эта анти-Kubernetes мантра. А потом, внезапно, на dockercon EU 17 Docker решили поставить всё на Kubernetes. Внезапная перемена настроения, очевидно была связана с уверенным ростом господства Kubernetes. И ситуация эта подкрепилась ещё тем, что Docker стал спонсором и участником на KubeCon + CloudNativeCon North America 2017
Хотелось бы автоматизировать именно процесс выбора порта в Docker Compose и автоматически расшаривать их.
почему же? На одном проекте у нас все в AWS ECS, там конечно без него. Конфигурирую сейчас проект для себя, и флоу с деплоем вместе с Compose выглядит менее удручающим, чем каждый сервис отдельно (сервис - контейнер, а так в каждом микросервисе свои контейнеры - фронт, бэк и т.д.)
Во многих источниках на первом месте по популярности стоит Docker. В общем много противоречий.
Вы используете только Consul? Есть ли где-то примеры минимально сконфигурированных микросервисов ?
у вас, случаем, на фронтенде не только ли статика?
ну хз, есть несколько статей "Docker Compose in production".
как-то ненадежно, когда конфигурация ддля дева и прода сильно отличается
Коцепция в том, что пока работает сервис, пока пользователю и будет предоставляться статика. Какой смысл в клиентской части, когда бэк упал? И как деплоить вместе клиент и бэк, чтобы арантировать их конистентность?
А пока настройка конфигураций и деплоя занимает уйму времени
ладно, есть примеры микросервисов на Terraform? Простые примеры, без лишних overhead
то есть Swarm вы не рассматриваете как более простую алтернатику Kubernetes ?
можно считать, что один, так как интересуюсь этим как для общего развития, так и с перспективой масштабрования своего проекта
Service Discovery with Consul
- nomad plan jobs/consul.nomad
- nomad run jobs/consul.nomad
- nomad status consul
- consul join nc-1 nc-2 nc-3 nc-4 nc-5
- consul members
Масштабирование != микросервисы.
Вы вполне можете и монолит запускать в нескольких экземплярах.
Микросервисы - слишком много накладных расходов на разработку и поддержку для одного.
Поддерживать разрастающийся монолит - боль. Чем дальше, тем больнее
Но все же важна слабая связность и возможность взаимодействия и развертывания разных окружений, чтобы работая над одним не сломать другое
В микросервисах такой возможности нет физически.
Стоит ли огород городить или может самодисциплины достаточно?
вы на практике пробовали SOLID ? И сранивали ресурсозатратность при соблюдении SOLID и жестком разграничении ответственности по сервисам?
я имею в виду человеческие ресурсы. По моему, все движется к тому, что легче докупить железа, чем нанять/доучить разработчика