Guia Rápido do Sensedia Service Mesh

Este é um guia rápido do Sensedia Service Mesh. Ele dá uma visão geral das funcionalidades e apresenta algumas das telas do produto.

Funcionamento geral

O Sensedia Service Mesh é uma ferramenta de gerenciamento de ecossistemas de microsserviços que visa solucionar de forma simplificada os problemas de redes envolvidos na comunicação entre microsserviços. Rodando em cima de Kubernetes, nosso produto abstrai as funcionalidades do Istio (e dos serviços de observabilidade Kiali e Jaeger), permitindo a aplicação low-code de políticas por meio de uma interface gráfica intuitiva — mas também suportando configurações de controle de clusters por linha de comando.

Este diagrama representa, de forma simplificada, o funcionamento do Sensedia Service Mesh:

diagram pt

Na integração com a Sensedia API Platform, a Plataforma expõe os serviços por meio de APIs, o API Gateway aceita o tráfego vindo de fora (tráfego Norte-Sul) e o distribui para dentro do sistema. A partir daí, o Sensedia Service Mesh toma conta do tráfego entre serviços (Leste-Oeste). A central de controle configura proxies dos microsserviços com as políticas aplicadas pela interface do Sensedia Service Mesh. Essas políticas combinam regras de segurança (com distribuição de certificados pelo sistema), descoberta de serviços, e roteamento de requisições. O sistema é observável por meio de gráficos e rastreamento, possibilitados pela distribuição de headers com informações de contexto utilizados na comunicação entre os serviços.

Além dessas funcionalidades de gerenciamento e visualização, o sistema de descoberta e roteamento de tráfego permite implementar versões diferentes de um serviço ao mesmo tempo com facilidade, definindo regras para separar tráfego de uma versão a outra (seja por porcentagem de requisições ou por controle de headers).

Nas seções abaixo, você tem uma visão geral das funcionalidades e imagens de algumas telas do Sensedia Service Mesh.

Gerenciamento de meshes

É possível administrar múltiplos meshes ao mesmo tempo, cada um composto por seus diversos serviços. A tela Meshes lista todos os meshes presentes em seus clusters e que podem ser gerenciados pelo Sensedia Service Mesh.

meshes
Tela "Meshes"

Ao clicar em um mesh, é possível ver detalhes e aplicar configurações no âmbito do mesh como um todo por meio das abas:

  • SERVICES, que exibe os serviços que compõem o mesh.

  • MESH AUTHENTICATION, que permite configurar a autenticação de clientes ao enviarem requisições ao mesh.

  • MESH SECURITY, que permite estabelecer que qualquer comunicação entre serviços só é permitida se houver uma política específica configurada para cada serviço a ser disponibilizado.

  • METADATA, que exibe as versões do Istio, Jaeger e Kiali utilizados no mesh (é necessário ter Istio, Jaeger e Kiali instalados para que o mesh seja gerenciado pelo Sensedia Service Mesh).

meshes mesh view
Tela de visualização de detalhes e configuração de um mesh

Por meio do botão EDIT MESH também é possível editar a descrição e host (que é a porta de entrada para o mesh) e estabelecer se o gateway do mesh aceitará conexões TLS ou mTLS.

Gerenciamento de serviços

A tela Services exibe os serviços que compõem um mesh e a quantidade de pods de cada serviço.

services one mesh
Tela "Services"

Clicando no nome de um serviço, é possível ver detalhes e aplicar políticas de gerenciamento por meio das abas de configuração:

  • PODS, que exibe os pods que compõem o serviço.
    pods

  • SOURCES, que mostra a origem das requisições ao serviço em tempo real.
    sources

  • METRICS, que exibe métricas rápidas em tempo real sobre o comportamento do serviço.
    metrics

  • TRAFFIC MANAGEMENT, que permite aplicar políticas de roteamento de tráfego e implantação de versões de serviços (veja mais abaixo).
    traffic management

  • FAULT TOLERANCE, onde você pode escolher entre estas quatro funcionalidades para definir regras de tolerância a falhas para um serviço específico: Circuit Breaker, Request Timeout, Fault Injection e Retry.
    qg fault tolerance

  • AUTHENTICATION, que permite configurar as regras de autenticação no âmbito do serviço. Essas regras definem os caminhos que necessitarão de autenticação para serem acessados.
    authentication

  • AUTHORIZATION, que permite aplicar uma política de autorização no âmbito do serviço.
    authorization

Roteamento de tráfego

Uma das maiores funcionalidades do Sensedia Service Mesh é o controle facilitado de roteamento de tráfego ao implantar diferentes versões de um mesmo serviço — seja para testes ou para uma migração de tráfego em cenário produtivo com mitigação de riscos.

As regras de roteamento definem o critério a ser utilizado para rotear o tráfego das requisições entre diferentes versões implantadas de um mesmo serviço.

Tipos de roteamento de tráfego disponíveis
  • Traffic Routing: permite redirecionar o tráfego das requisições a outras versões do mesmo serviço de acordo com critérios definidos (por porcentagem de requisições ou por controle de headers).

  • Shadow Traffic: lançamento de uma versão do serviço para testes com controle de tráfego que não impacta o serviço original. Ao invés de redirecionar uma parte das requisições para serem respondidas pela versão nova, um percentual das requisições já tratadas pelo serviço antigo é enviada para a versão nova, que não tem que responder a essas requisições.

Observabilidade: rastreamento e gráficos

O Sensedia Service Mesh incorpora soluções de observabilidade para monitorar cada mesh e identificar problemas o mais rápido possível. Contamos com gráficos de topologia a partir do Kiali e o sistema de rastreamento distribuído do Jaeger.

Os gráficos e o rastreamento funcionam a partir da propagação de informações de contexto por meio de headers que seguem o parâmetro OpenTracing.

A tela Graph oferece uma visualização gráfica customizável e em tempo real do seu ecossistema de microsserviços. Entre outras informações, é possível observar os caminhos percorridos pelas requisições, o protocolo que corre entre os serviços, versões de serviços implantadas e estatísticas sobre requisições e respostas.

graph
Tela "Graph": gráfico interativo em tempo real

A tela Tracing exibe os spans de rastreamento gerados para as requisições (em nível de mesh, serviço ou operação específica), informando duração e latência em tempo real.

tracing
Tela "Tracing": rastreamento de requisições
Thanks for your feedback!
EDIT
How useful was this article to you?