Переключение между AWS и локальным стеком на уровне сети

Может кто-нибудь сказать мне, пожалуйста, есть ли какое-нибудь решение с минимальным воздействием для переключения между AWS- и localalstack env? Может ли это быть безсерверный локальный стэк?

У меня есть ряд сервисов node.js- java-ee- и spring-boot, которые развернуты в виде docker-контейнеров (AWS ecs) и взаимосвязаны через AWS sqs и другие сервисы AWS.

Я предполагал, что использование localstack было похоже на картинку из localstack.cloud, и я бы переключил реальную среду AWS с помощью среды localstack без необходимости изменять код приложения и, что еще лучше, docker-container. Приведенная ниже схема подтолкнула меня к тому, что она действительно может быть такой простой:

Я бы просто изменил некоторые параметры в файле docker-compose-file или, например, манипулировал файлом /etc/hosts, где я заменял набор "настоящих" AWS-URL-адресов на localhost:3456. И это все.

Есть ли что-то подобное? Мне действительно нужно менять каждый микросервис?

Когда я начинаю погружаться глубже, я все больше и больше путаюсь:

  • Большинство уроков никогда не описывают уровень приложения, но показывают некоторые вызовы с помощью "aws --endpoint-url ...". Это хорошо, но я думаю, мой нод- или java-сервис не будет вызывать команду оболочки aws, верно?

  • На уровне приложения это означало бы, что мне нужно изменить код для разных сред, заменить bean-компоненты профилем в java и импортировать разные, не так ли? Для Java это будет означать: .withEndpointConfiguration(новая EndpointConfiguration (" http://localhost:4575/", "eu-west-1"). Для sqs-потребителя node.js-module я видел похожие решения...

    Эти изменения URL можно было бы сделать на более абстрактном уровне, не так ли?

  • https://github.com/temyers/serverless-localstack звучит как воображаемое решение, но изменений, похоже, не так много, и есть серьезное WIP-предупреждение. Есть опыт с этим?

Итак, еще раз - может кто-нибудь сказать мне, есть ли какое-нибудь простое решение с минимальным воздействием для переключения между AWS- и localstack env, вроде какого-то "перенаправления"?

Заранее большое спасибо!

0 ответов

Спустя полтора года, думаю, я знаю ответ. Это kubernetes и minikube вместо AWS и localstack.

За некоторыми небольшими исключениями существует правило: "Узел - это узел - это узел", независимо от того, развертываете ли вы его на своем локальном миникубе или на каком-то удаленном облачном кластере.

Во время разработки я выполняю e2e-тесты на моем локальном мини-кубе, тогда как Jenkins выполняет те же самые e2e-тесты на каком-то специальном тестовом кластере, и вы даже можете запускать те же тесты удаленно на производственном кластере - и все это делается одним и тем же Kubernetes клиент ".

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