think - O principal evento global de Cloud Híbrida e IA - 11/05 | Américas e 12/05 | APAC e EMEA Inscrição Gratuita

Desenvolvendo uma malha de serviço Istio para um aplicativo de microsserviços implementado no Kubernetes

Resumo

Este code pattern se concentra na implementação de um aplicativo de microsserviços de reserva de viagens no Kubernetes e na criação de uma malha de serviço com Istio. O Kubernetes permite a conteinerização do aplicativo, e o Istio oferece uma forma de conectar, controlar e monitorar as interações dos microsserviços entre os contêineres.

Descrição

Bee Travels é um aplicativo web conceitual de reserva de viagens, criado para demonstrar uma arquitetura de microsserviços. Com os microsserviços, é possível dividir um aplicativo em serviços menores e independentes que podem ser desenvolvidos, implementados e mantidos individualmente. Essa separação apresenta muitas vantagens, como escalabilidade direcionada, melhor isolamento de falhas e uso de um conjunto de tecnologia personalizável. No entanto, pode ser difícil gerenciar os microsserviços sem uma malha de serviço.

Istio é uma plataforma open-source de malha de serviço que oferece uma forma de conectar, controlar e monitorar interações dos microsserviços. A malha de serviço cuida do gerenciamento de tráfego depois que as regras são configuradas e oferece capacidade de observação da malha por meio da telemetria coletada.

Este code pattern se concentra neste cinco microsserviços do aplicativo Bee Travels:

  • Interface do usuário
  • Destino
  • Hotel
  • Locação de automóveis
  • Conversão de moedas

No momento, o aplicativo tem três versões. A versão 1 armazena dados de destinos, hotéis e locações de automóveis localmente em arquivos JSON. A versão 2 armazena dados em uma implementação MongoDB no cluster. A versão 3 se conecta ao serviço IBM Cloud Databases for MongoDB. Neste code pattern, é possível fazer o roteamento e a mudança do tráfego para versões específicas dos serviços, além de observar rastreios e métricas para analisar a latência.

Fluxo

Fluxograma da arquitetura da malha de serviço Istio do Bee Travels

  • (1) O usuário acessa o serviço front-end de interface do usuário por meio de um Istio Ingress Gateway (uma instância do proxy Envoy).
  • (2 – 4) O serviço de interface do usuário faz o roteamento de chamadas aos serviços de hotéis, locações de automóveis e destinos. O Istio controla a mediação do tráfego e o direciona às versões 1, 2 ou 3 dos serviços, dependendo dos pesos de roteamento do Istio. Os serviços da versão 1 armazenam dados na memória.
  • (5) O serviço de interface do usuário aciona o serviço de conversão de moeda (somente uma versão).
  • (6) A versão 2 de cada serviço usa uma instância MongoDB no cluster.
  • (7) A versão 3 de cada serviço usa uma instância MongoDB na IBM Cloud.

Instruções

As etapas detalhadas deste code pattern estão disponíveis no arquivo Arquivo LEIA-ME. As etapas mostram como:

  1. Realizar a configuração de pré-requisito da IBM Cloud.
  2. Clonar o repositório.
  3. Implementar o aplicativo no Kubernetes.
  4. Configurar a malha de serviço Istio.