Как подключить разрабатываемый локальный сервис к размещенной сервисной сети?
В настоящее время у меня есть размещенная (GCP) среда микросервисов, которая находится в стадии разработки. Когда я работаю над сервисом, я запускаю среду локально. Я запускаю все службы, с которыми служба, над которой я работаю, должна общаться.
Это создает неудобства для разработчиков, потому что:
- Я должен раскрутить каждую услугу; может быть много
- запуск такого количества сервисов может использовать много моих системных ресурсов
- Если какой-либо из этих служб нужна БД, я тоже должен ее настроить.
Я ищу к этому прибавку. В идеале я буду запускать только одну службу локально и подключаться к остальным службам в размещенной среде.
Предлагает ли какая-либо из популярных сервисных сетей это в качестве опции? В первую очередь я смотрю на Istio и Kuma. Есть ли какие-нибудь альтернативные решения, которые приходят в голову?
1 ответ
Для удаленной разработки / отладки я бы посоветовал взглянуть на Telepresence.
Это даже рекомендуется в документации Kubernetes:
Использование телеприсутствия позволяет использовать настраиваемые инструменты, такие как отладчик и IDE, для локальной службы и предоставляет службе полный доступ к ConfigMap, секретам и службам, работающим в удаленном кластере.
https://kubernetes.io/docs/tasks/debug-application-cluster/local-debugging/
Istio, с другой стороны, позволяет выполнять теневое развертывание и развертывание канареечного или сине-зеленого цвета. Вы можете, например, запустить службу и отправить определенному пользователю (на основе заголовка) новую версию. Вы можете зеркально отображать трафик на службу или поэтапно менять трафик от 0 до 100 %. Я бы сказал, что это больше для тестирования вашего нового сервиса под нагрузкой или постепенного выпуска новой версии.