Um método para o desenvolvimento de software baseado em microserviços
Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura...
Transcript of Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura...
![Page 1: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/1.jpg)
Globalcode – Open4education
Arquitetura Orientada a eventos
em ambientes complexos
Trilha - Microservices
![Page 2: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/2.jpg)
Globalcode – Open4education
Agenda
• Conceitos e cases• Eventos
• Arquitetura Orientada a Eventos
• Principais Patterns e aplicabilidade
• Conceitos kafka
• Use Cases
![Page 3: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/3.jpg)
Globalcode – Open4education
Contextualizando...
![Page 4: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/4.jpg)
Globalcode – Open4education
+
++
+
Log Aplicação
Log Infraestrutura
Log Banco de Dados
_ X
Event Sourcing+
Log Integração
Log eventos de negócios
Log Segurança
Exemplos:
![Page 5: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/5.jpg)
Globalcode – Open4education
Exemplos Tecnologias
FONTE: Internet
Event Sourcing+
LogBin
Oracle Golden Gate
SQL Server Agent
Exemplos:
![Page 6: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/6.jpg)
Globalcode – Open4education
Evento
“Algo que acontece e que se pode observar"
Martin Fowler (2005) diz que é possível“Capturar todas as mudanças de estado de uma aplicação com uma sequência de eventos.”
![Page 7: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/7.jpg)
Globalcode – Open4education
Event Driven - Gartner
Importante para os negócios digitais é a ideia de que a empresa está sempre sentindo
e pronta para explorar novos momentos de negócios digitais.
Rápida detecção dos eventos e análise dos dados.
O negócio digital impulsiona a necessidade de líderes, planejadores e arquitetos de TI
adotarem o pensamento sobre eventos.
![Page 8: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/8.jpg)
Globalcode – Open4education
Quando utilizamos?
● Arquitetura distribuída
● Arquitetura Microserviços
● Volumetria dos dados
● Responsividade
● Escalabilidade
![Page 9: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/9.jpg)
Globalcode – Open4education
Event Driven Architecture
Paradigma de design no qual um componente de software é executado em resposta ao recebimento de uma ou mais notificações de eventos. O EDA é mais fracamente acoplado do que o paradigma cliente / servidor, porque o componente que envia a notificação não conhece a identidade dos componentes receptores no momento da compilação.
![Page 10: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/10.jpg)
Globalcode – Open4education
Modelo trivial:
Eventos
![Page 11: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/11.jpg)
Globalcode – Open4education
PatternsÀs vezes, mais de um deles é usado em conjunto no mesmo sistema, dependendo de quais são os requisitos de negócios.
![Page 12: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/12.jpg)
Globalcode – Open4education
Event Notification
Cliente faz alteração
de endereço CRM
Event
Seguros
Cadastros Crédito Cartões
Evento de
notificação
Baixo nível de acoplamento
Perder a visão de todos os fluxos
(exemplo comando ao invés de
evento
+
-
Domínio Com Dados dos Clientes
BD
![Page 13: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/13.jpg)
Globalcode – Open4education
Event-Carried State Transfer
Cliente faz alteração
de endereço CRM
Event
Seguros
Crédito Cartões
Transporte do
estado na
mensagem
-Alta Disponibilidade e Resiliência
-Menor latência
Duplicação de Dados
-Complexidade no Receptor
+
-
Domínio Com Dados dos Clientes
Sistemas sempre deveriam consultar
o Golden Source da informação
(CRM)
Clientes
Clientes
Clientes
Clientes
![Page 14: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/14.jpg)
Globalcode – Open4education
Event Sourcing?
Para Martin Folwer o “Event Sourcing assegura que todas as mudanças feitas no estado de uma aplicação são armazenadas como uma sequência de eventos. Não só podemos buscar esses eventos, mas também podemos usar este log de eventos para reconstruir estados passados e ajustar automaticamente o estado atual com mudanças retroativas”.
![Page 15: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/15.jpg)
Globalcode – Open4education
Event Sourcing
• Débito
• Crédito
• Transferência
Extrato
• Débito 1000,00
• Crédito 500,00
• Saldo 5000
+ Auditoria
+ Dados Históricos
+ Voltar ao estado
Evento Gerado
Saldo
1000
Captura de eventos
- Dependência de Sistemas Externos
![Page 16: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/16.jpg)
Globalcode – Open4education
CQRS – Comand Query Responsabily Segregation
![Page 17: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/17.jpg)
Globalcode – Open4education
CQRS e Event Soucing
![Page 18: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/18.jpg)
Globalcode – Open4education
“Apache Kafka é uma plataforma distribuída de mensagens e streaming”.
![Page 19: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/19.jpg)
Globalcode – Open4education
Empresas que utilizam esta abordagem
![Page 20: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/20.jpg)
Globalcode – Open4education
● Escalabilidade
● Tolerância a Falhas
● Baixa Latência
● Alto throughput
Por quê Kafka?
![Page 21: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/21.jpg)
Globalcode – Open4education
![Page 22: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/22.jpg)
Globalcode – Open4education
![Page 23: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/23.jpg)
Globalcode – Open4education
Ambiente Complexo
-Muitas integrações
-Aquisição de Corporações
-ERP, CRM, PaaS, SaaS, etc...
-Grandes Legados
![Page 24: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/24.jpg)
Globalcode – Open4education
Ambiente Complexo
-Produtos diversos
-Alta volumetria de dados
- Em torno de 4000 tps (Exemplo de consumo)
- Teras de dados por dia (logs)
-Dados sensíveis
- Orgão Regularórios (SUSEP,BACEN,ANBIMA, etc)
![Page 25: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/25.jpg)
Globalcode – Open4education
Ambiente Complexo
-Cloud pública, Cloud Híbrida e Cloud Privada
-Requisito de alta disponibilidade
-Latência
![Page 26: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/26.jpg)
Globalcode – Open4education
![Page 27: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/27.jpg)
Globalcode – Open4educationRede Interna
Internet/VPN
Private Cloud
On Premises MainframePacotes
Múltiplos Ambientes
![Page 28: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/28.jpg)
Globalcode – Open4educationRede Interna
Internet/VPN
Private CloudOn Premises MainframePacotes
Case Compras
Efetua Compra via App
Apache
Kafka
Eve
nto
Com
pra
Consumers:
Estoque, Fornecedor
Finanças ,RH
Atualiza comprador RH
Envia
pedid
o
Pedido Aprovado
Interface aprovação
Envia
em
ail
ERP
ERP
![Page 29: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/29.jpg)
Globalcode – Open4educationRede Interna
Case Analytics e Ofertas
Captura logs transações
Apache
Kafka
Evento Ação do Cliente
Envia dados
Wargning
![Page 30: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/30.jpg)
Globalcode – Open4education
Recomendações
Guildas Cases de Mercado Ferramentas
Segurança Alternativas
![Page 31: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education](https://reader031.fdocument.pub/reader031/viewer/2022031917/5c1e165009d3f299388bc2e8/html5/thumbnails/31.jpg)
Globalcode – Open4education
Paula Santana
https://www.linkedin.com/in/paula-
macedo-santana-dev/
Tatiana Scarpioni
https://www.linkedin.com/in/tatian
a-scarpioni-8934391a/