O App Mesh facilita a execução de serviços, oferecendo visibilidade e controles de tráfego de rede consistentes para cada serviço. O App Mesh separa a lógica necessária para monitorar e controlar as comunicações em um proxy executado ao lado de cada serviço. Isso elimina a necessidade de coordenação entre equipes ou de atualização do código do aplicativo para alterar a forma de coleta dos dados de monitoramento ou o roteamento do tráfego. Isso permite identificar rapidamente a localização exata dos erros e o novo roteamento automático do tráfego da rede quando há falhas ou quando é necessário implantar mudanças de código.
Você pode usar o App Mesh com o AWS Fargate, o Amazon ECS, o Amazon EKS, o Amazon EC2 e o Kubernetes no EC2 para executar melhor serviços em grande escala. O App Mesh usa o Envoy, um proxy de código aberto que é compatível com uma grande variedade de ferramentas de código aberto e de parceiros da AWS para serviços de monitoramento.
Proxy de código aberto
O App Mesh usa o proxy Envoy de código aberto para gerenciar todo o tráfego de entrada e saída dos contêineres de um serviço. O App Mesh configura esse proxy processar automaticamente toda a comunicação entre aplicativos do serviço. O Envoy conta com um ecossistema vibrante de integrações criadas pela comunidade, que funcionam com o App Mesh.
Serviços da AWS compatíveis:
Amazon CloudWatch* – serviço de monitoramento e registo em log para uma visibilidade completa de recursos e aplicativos.
AWS X-Ray* – serviço de rastreamento para visualização completa da performance de aplicativos.
Ferramentas de parceiros da AWS e de código aberto compatíveis:
Datadog, Alcide, HashiCorp, Sysdig, Signalfx, Spotinst, Tetrate, Neuvector, Weaveworks, Twistlock, Wavefront by VMware, Aqua.
Roteamento de tráfego
O App Mesh permite que você configure serviços para conexão direta entre eles ao invés de exigir código na aplicação ou usar um balanceador de carga. Quando cada serviço é iniciado, seus proxies se conectam ao App Mesh e recebem dados de configuração sobre os locais dos outros serviços na malha. É possível usar controles no App Mesh para atualizar dinamicamente o roteamento de tráfego entre os serviços sem nenhuma alteração no código de sua aplicação.
Políticas de tráfego no lado do cliente
Os proxies fazem automaticamente o balanceamento de carga do tráfego de todos os clientes na malha, adicionando e removendo endpoints de balanceamento com base em verificações de integridade e registro de serviço. Essas capacidades facilitam a implantação de novas versões dos seus serviços e ajudam a ajustar as aplicações para resiliência a falhas.
Autenticação serviço a serviço
O mutual TLS (mTLS) habilita a autenticação de camada de transporte, que fornece verificação de identidade serviço a serviço para os componentes da aplicação em execução dentro e fora de malhas de serviço. Esse recurso permite que os clientes ampliem o perímetro de segurança das aplicações executadas no AWS App Mesh ao provisionar certificados diretamente da autoridade privada de certificado do AWS Certificate Manager ou de uma Certificate Authority (CA – Autoridade certificadora) gerenciada pelo cliente para cargas de trabalho na malha de serviço, e para aplicar a autenticação automática de aplicações cliente que estejam estabelecendo conexão com os serviços.
Experiência de usuário nativa para orquestração de contêiner
O App Mesh funciona com serviços gerenciados pelo Amazon ECS, Amazon EKS, AWS Fargate e Kubernetes em execução no EC2. Para cargas de trabalho conteinerizadas em execução no ECS, EKS, Fargate ou Kubernetes, você inclui o proxy fornecido do App Mesh como parte da definição de tarefa ou pod para cada microsserviço e configura o contêiner de aplicação dos serviços para se comunicar diretamente com o proxy. Quando o serviço inicia, o proxy executa check-in automaticamente no App Mesh, que por sua vez configura o serviço.
Gerenciado
O AWS App Mesh é um serviço gerenciado e altamente disponível. O App Mesh permite que você gerencie as comunicações entre serviços, sem necessidade de instalar ou administrar a infraestrutura de aplicações para gerenciamento de comunicações.