Microservices é um conceito que está na cabeça de todo mundo da tecnologia neste momento. Existem várias outras teorias e patterns que estão ajudando a fazer dos microservices uma estratégia de sucesso para o desenvolvimento de aplicações de média e larga escala. Vamos entrar fundo em alguns conceitos e ver como eles podem ajudar na hora de produzir uma arquitetura robusta de microservices.
11. Por que
adotar?
- Escolha a tecnologia certa para resolver o
problema
- Você não precisa repassar um problema você
pode isolar e se recuperar
- Você precisa escalar somente o que vai utilizar
- Desenvolva e teste rápido e focado
- Serviço pequeno, menos conflito, menos erros e
mais produtividade
- Re-uso! Não reinvente a roda!
- Otimize, joge fora e faça melhor!
29. - Aplicações eram gigantes e com dezenas de servers
- Segundo é a unidade de medida de resposta
- Horas de manutenção e de sistemas fora do ar
- Gigabytes é a unidade de medida de armazenamento
30.
31.
32. - Aplicações distribuídas
- Você faz tudo com um comando pelo smartphone
- Nuvem rodando milhares de máquina multi-core
- Milissegundos é obrigatoriamente a unidade de medida de
resposta
- 100% uptime.
- Data is measured in Petabytes.
37. The Reactive Manifesto: Resilient
Responde em caso de falha
Replicação
contenção,
isolamento e
delegação.
38. The Reactive Manifesto: Elastic
Continua responsivo mesmo com aumento da demanda
Aumenta e diminui os recursos conforme a demanda
Distribui demanda
39. The Reactive Manifesto:
Message Driven
Usa mensagens assíncronas
Baixo acoplamento
Tratamento de erros por mensagem
Comunicação não blocante
Evita desgaste do sistema
40.
41. Aqui é reativo p…!
BIIIIRRRLLL!
Sai de casa escrevi
código pra c……!
57. - O sistema precisa ser capaz de reagir ao erro
- Tempo de resposta não pode ser afetado
- Não pode propagar o erro
- Precisa ser capaz de fazer Rollback
67. - Inversão de controle
- Cada serviço se registra
- Configuração deixa de ser estática
- Pode ser aplicado ao cliente
- Deve ser aplicado ao server
83. - Monitore tudo que for possível e mais um pouco
- Alerte a performance do serviço
- Alerte qualquer anomalia a estrutura
- Evite falsos positivos, refine os alertas
- Avalie o tempo todo as métricas
- Automatize e depois automatize de novo