O documento discute microservices, comparando-os com arquiteturas monolíticas. Apresenta princípios como Domain Driven Design, automação, limpeza de código, descentralização, canary release e monitoramento para o desenvolvimento de microservices. Por fim, sugere como começar a adotar essa arquitetura.
5. Projeto sendo evoluído constantemente
+
(Linhas de código crescendo
x
Única Codebase com TODAS responsabilidades)
=
Evolução tecnológica quase impossível
Redução de produtividade
Baixa reutilização
Monolítico
6. Se um simples método falha, toda aplicação pode falhar.
Ou pior...
Todo negócio pode ficar indisponível.
Monolítico
7. "Uma suíte de pequenos
serviços, cada um executando
seu próprio processo e se
comunicando através de
mecanismos leves, muitas vezes
em uma API com recursos
HTTP..."
Martin Fowler
Microservices
14. Cada microservice deve ser projetado
como um contexto limitado do Domain
Driven Design
-> Isso fornecerá um limite lógico dos
microservices dentro do sistema em
relação à funcionalidade.
Domain Driven Design
15.
16. Automation
100 % de automação de testes em cada
microservice:
Unit
Integration
Deploy de todo ambiente que roda o
microservice
Infra no código
17.
18. Clean Code
Nomes de métodos claros
Única responsabilidade
Contrato do serviço:
O que recebe?
O que retorna?
O que é obrigatório?
Códigos de erros?
O cliente que consome o serviço não sabe qual
instância do microservice esta sendo chamado – infra
deixa transparente
19.
20.
21.
22. Service Discovery –> Are
you alive?
Orquestrador –> define
que instância do microservice
responderá
Descentralização
Lembre-se:
Cada
microservice
DEVE ser
independente
26. Fault Back
Desenvolve orientado à
falhas
Degrada a experiência,
mas não deixa de entregar
Garante a utilização –
mesmo que com experiência
mínima