Как подключить разрабатываемый локальный сервис к размещенной сервисной сети?

В настоящее время у меня есть размещенная (GCP) среда микросервисов, которая находится в стадии разработки. Когда я работаю над сервисом, я запускаю среду локально. Я запускаю все службы, с которыми служба, над которой я работаю, должна общаться.

Это создает неудобства для разработчиков, потому что:

  • Я должен раскрутить каждую услугу; может быть много
  • запуск такого количества сервисов может использовать много моих системных ресурсов
  • Если какой-либо из этих служб нужна БД, я тоже должен ее настроить.

Я ищу к этому прибавку. В идеале я буду запускать только одну службу локально и подключаться к остальным службам в размещенной среде.

Предлагает ли какая-либо из популярных сервисных сетей это в качестве опции? В первую очередь я смотрю на Istio и Kuma. Есть ли какие-нибудь альтернативные решения, которые приходят в голову?

1 ответ

Решение

Для удаленной разработки / отладки я бы посоветовал взглянуть на Telepresence.

https://www.telepresence.io/

Это даже рекомендуется в документации Kubernetes:

Использование телеприсутствия позволяет использовать настраиваемые инструменты, такие как отладчик и IDE, для локальной службы и предоставляет службе полный доступ к ConfigMap, секретам и службам, работающим в удаленном кластере.

https://kubernetes.io/docs/tasks/debug-application-cluster/local-debugging/

Istio, с другой стороны, позволяет выполнять теневое развертывание и развертывание канареечного или сине-зеленого цвета. Вы можете, например, запустить службу и отправить определенному пользователю (на основе заголовка) новую версию. Вы можете зеркально отображать трафик на службу или поэтапно менять трафик от 0 до 100 %. Я бы сказал, что это больше для тестирования вашего нового сервиса под нагрузкой или постепенного выпуска новой версии.

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