Artigos
10
min de leitura
4 de setembro de 2019

O que é Service Mesh e por que você deve considerá-lo

Claudio Eduardo de Oliveira
Líderes técnicos APIs @Luiza Labs
Estou trabalhando com APIs, Microsserviços e aplicações centradas na nuvem.
Mais sobre o autor

Breve sobre Software História da Arquitetura

Antes de começar as explicações sobre a infra-estrutura Service Mesh , vamos entender um pouco sobre o que criamos antes, como software arquitetos e desenvolvedores.

Penso que é essencial saber por que Service Mesh pode ser útil para você.

Vamos falar um pouco sobre Software História da Arquitetura. Prometo que será rápido, mas valerá a pena.

Vamos analisar a imagem abaixo

Existem diferentes modelos de arquiteturas na Linha do Tempo, incluindo o Padrão MVC, que está presente em nossa arquitetura hoje.

A SOA e EDA foram popularizadas em 2000 e 2003, respectivamente; quando as coisas começaram a ser distribuídas.

Começamos naquela época a quebrar as coisas em pequenos pedaços de software, por várias razões.

E finalmente Microservices e Serverless, em 2013 e 2015, respectivamente, quando diferentes abordagens sobre o desenvolvimento de software estavam chegando.

A lei Conway e a Manobra Inversa Conway surgiram para explicar como trabalhar com Software Arquitetura em termos de negócios e Equipes.

Há um comportamento típico se olharmos para esta Linha do Tempo, estamos tentando dividir nossas peças software em peças pequenas e menores, tão pequenas quanto possível.

Mas, por que é importante ou relacionado a Service Mesh Infra-estrutura?

Microserviços são sistemas distribuídos, e sistemas distribuídos significam lidar com problemas de rede. É exatamente isso que Service Mesh Infra-estrutura pode nos ajudar. Abstraindo os problemas de rede dos desenvolvedores.

Service Mesh

Em poucas palavras.

Service Mesh pode ser definido como uma infra-estrutura dedicada para lidar com um alto volume de tráfego baseado em IPC (inter-processos de comunicação). Em uma arquitetura Microsserviços , é normalmente chamada de tráfego Leste-Oeste.

Em poucas palavras, service mesh pode ser considerado uma "camada" de rede abstrata para comunicações de serviços.

Estas abstrações resolvem a maior parte das manipulações da rede como Balanceamento de Carga, Disjuntores, Retries, Timeout, Routing inteligente que pode permitir técnicas avançadas de implantação como Canary Releases, Dark Launches, e outros.

Então, podemos tirar essas responsabilidades de nosso código de aplicação. Além disso, podemos remover estas funções dos desenvolvedores, e isso é muito importante porque os desenvolvedores devem codificar para o negócio, não para os requisitos de infra-estrutura.

Outra característica importante do Service Mesh é a Telemetria, algumas implementações se integram facilmente com Jaeger e Prometheus.

Bibliotecas famosas no ecossistema Java relacionadas com a manipulação de redes como Netflix Ribbon, Hystrix e Eureka podem ser substituídas para as implementações de Service Mesh como ISTIO.

Service Mesh & Arquitetura Microservice

Em geral, na Arquitetura Microservices, a comunicação serviço a serviço é bastante complexa, envolvendo diferentes padrões de comunicação como REST e gRPC sobre HTTP ou AMQP para comunicações assíncronas e duráveis.

Como podemos ver, Microsserviços são sistemas distribuídos, essa é a razão pela qual Service Mesh Infra-estrutura se encaixa muito bem.

Exemplo prático

Vamos olhar em uma arquitetura Microservices simples e bem padrão:

Arquitetura de Microserviços PadrãoHáalgumas coisas importantes a serem observadas aqui.

Tráfego Norte e Sul

O tráfego Norte-Sul geralmente acontece entre diferentes redes olhe para a imagem Rede A e Rede B. Este tipo de tráfego vem de fora de nossa infra-estrutura, nossos clientes, e este tráfego não é confiável porque a rede externa está fora de nosso controle.

Precisamos de segurança pesada aqui, esse é o nosso Gateway para proteger nossas aplicações.

Normalmente, temos uma Plataforma API para gerenciar nossas APIs externas, onde API Management técnicas e processos podem nos ajudar nesta tarefa.

Tráfego Leste e Oeste

Por outro lado, o tráfego Leste-Oeste acontece em geral na mesma rede, como vimos anteriormente, normalmente é chamado de comunicação de serviço a serviço ou IPC.

Esse é o lugar onde Service Mesh vive.gRPC

é uma estrutura muito interessante se você estiver procurando alto através de aplicações de colocação ou comunicações de serviço a serviço.

Conclusões

Service Mesh é uma coisa interessante que você está tentando jogar com a Arquitetura Microservices, mas eu recomendei fortemente que você entendesse um pouco mais profundamente antes de adicionar Service Mesh em seu Pilha de Arquitetura.

Não há bala de prata quando se pensa em Software Arquitetura, mas nós, como Software Arquitetos, Desenvolvedores e outros precisam entender e propor a solução certa considerando o contexto da empresa.

Acesse aquio texto original.

Obrigado pela leitura!