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
- (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:
- Realizar a configuração de pré-requisito da IBM Cloud.
- Clonar o repositório.
- Implementar o aplicativo no Kubernetes.
- Configurar a malha de serviço Istio.