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!
A falta dos princípios não
ESB ligando monolíticos
Comunicação complicada
Ineficiência
Sem flexibilidade
- 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
- 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.
The Reactive Manifesto
Se um sistema é:
Responsive, Resilient, Elastic and Message Driven,
Ele pode ser chamado de Reactive System
The Reactive Manifesto: Responsive
Sempre da feedback aos usuários
Responde em tempo hábil
Detecta problemas e trata
Rápido e consistente
Alta confiabilidade.
The Reactive Manifesto: Resilient
Responde em caso de falha
Replicação
contenção,
isolamento e
delegação.
The Reactive Manifesto: Elastic
Continua responsivo mesmo com aumento da demanda
Aumenta e diminui os recursos conforme a demanda
Distribui demanda
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
- 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
- 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
APIsThe Digital Glue
Backend
Ecossistema de Parceiros Digitais
Integrações com Aplicações SaaS
Aplicações Móveis e Internet of Things
- Over HTTP
- Tira dependência de tecnologia
- O sistema precisa ser capaz de reagir ao erro
- Use padrões
- Implemente Restful de verdade
- Use HAL (Hypertext Application Language)
- Hypermedia garante flexibilidade
- Possui suporte de várias bibliotecas
Aplicação 1
Aplicação
Web AppHTMLJS
Services
Acoplado Desacoplado
Web AppHTMLJS
Aplicação 2
Services
- Padrão no HTTP 2.0
- Torna o sistema mais responsivo
Client
API
WebSocket Server
Fire and forget
Events
- 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
Top Related