O documento discute diferentes arquiteturas de microsserviços, incluindo monolítica e microsserviços. A arquitetura ideal combina as vantagens de ambos através de microsserviços autônomos que não dependem uns dos outros, permitindo escalabilidade horizontal e consistência eventual.
2. O Monolítico
- Ótimo ponto de partida
- Domínio global - Fácil merge
- Escalonamento Vertical
- Dificuldade na divisão dos times
- Release completo
- - Resiliência + Acoplamento
6. 6
Consistência
Cada leitura recebe a escrita mais recente ou um erro
Disponibilidade
Cada pedido recebe uma resposta (sem erro) - sem
garantia de que contém a escrita mais recente
Partição tolerante a falhas
O sistema continua a funcionar apesar de um número
arbitrário de mensagens serem descartadas (ou
atrasadas) pela rede entre nós.
Teorema CAP
Este Teorema Afirma que é impossível que o armazenamento de
dados distribuído forneça simultaneamente mais de duas das três
garantias seguintes
7. 7
Consistência Eventual
uma abordagem de larga escala
API Single Server
Deixar um servidor processando as requisições para recuperar os
dados.
Database Sharding
Permitir todas aplicações compartilharem o mesmo servidor de
dados.
Manter mais de um servidor de dados
Fazer com que eventualmente os dados sejam consolidados
entre todos os servidores. RSYNC escalável.
10. 10
E se tentarmos unir o melhor dos
dois mundos?
Surge então a ideia dos Micro Serviços Autônomos ou
Micro Serviços da forma certa.
Um Micro Serviço não deve depender de recursos de
outro Micro Serviço.
11. 11
Em sistemas distribuídos, o Teorema CAP aponta que temos
que optar entre manter consistência ou disponibilidade para
os usuários.
Levantando Requisitos
A Resiliência é totalmente ligada ao acoplamento, portanto é necessária a replicação de dados que
não pertence ao domínio atual, mas é usado pelo mesmo.
DRY is not a pattern for architecture!