arquitetura orientada a eventos em ambientes complexos · arquitetura distribuída arquitetura...

31
Globalcode – Open4education Arquitetura Orientada a eventos em ambientes complexos Trilha - Microservices

Upload: donhu

Post on 22-Dec-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Globalcode – Open4education

Page 22: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education

Globalcode – Open4education

Page 23: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education

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

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

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

Globalcode – Open4education

Page 27: Arquitetura Orientada a eventos em ambientes complexos · Arquitetura distribuída Arquitetura Microserviços Volumetria dos dados Responsividade Escalabilidade. Globalcode –Open4education

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

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

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

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

Globalcode – Open4education

Paula Santana

[email protected]

https://www.linkedin.com/in/paula-

macedo-santana-dev/

Tatiana Scarpioni

[email protected]

https://www.linkedin.com/in/tatian

a-scarpioni-8934391a/