System Design: arquitetura de service mesh
O curso explica a arquitetura de service mesh usando uma única aplicação Ruby como caso de referência. Ele separa objetos de serviço dentro do processo de serviços de rede e mostra por que uma chamada de rede pode terminar sem resposta. Também trata do padrão sidecar, com o Thruster na frente do Puma como exemplo pequeno, e do espectro de lugares onde moram as preocupações transversais. Depois descreve o plano de controle, as falhas que um mesh adiciona e um inventário da aplicação que mostra que um mesh não conectaria nada.
O que você vai aprender
- ✓A diferença entre um objeto de serviço no processo e um serviço alcançado pela rede
- ✓Como o padrão sidecar tira o tratamento da rede do código da aplicação
- ✓Onde as preocupações transversais podem morar, do código da aplicação ao plano de controle
- ✓Como o plano de dados e o plano de controle dividem o trabalho de um mesh
- ✓Falhas que um mesh adiciona: tempestades de novas tentativas, diferença de versões e o mTLS estrito
- ✓Como tirar uma decisão de arquitetura de um inventário de processos, linguagens e chamadas
A palavra serviço significa duas coisas
Esta aplicação tem 54 arquivos terminados em _service.rb. Ela não precisa de service mesh, e entender por que esses dois fatos andam juntos é a maior parte do objetivo deste curso.
Ler a aula completa grátis →Currículo
7 aulasA palavra serviço significa duas coisas
Um objeto de serviço é uma chamada de método no processo, e uma chamada de rede pode ficar sem resposta.
O sidecar que você já roda
O sidecar é um proxy ao lado de cada serviço, e o Thruster na frente do Puma o exemplifica.
Onde moram as preocupações transversais
Preocupações transversais ficam num espectro em que ir para fora troca visibilidade por uniformidade, com nove limites do Rack::Attack.
O plano de controle
O plano de controle configura os sidecars fora do caminho das requisições e distribui identidades e regras de roteamento.
As falhas que um mesh adiciona
Um mesh adiciona falhas como depuração mais difícil, tempestades de novas tentativas, diferença de versões e o mTLS estrito.
O que esta aplicação faria
Um inventário com um processo, uma linguagem e zero chamadas entre serviços mostra que um mesh não conectaria nada.
Juntando tudo
Um resumo do curso e o desafio de implementar mesh_overhead, que calcula a latência que os sidecars somam na cadeia.