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

Post on 22-Dec-2018

226 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Globalcode – Open4education

Arquitetura Orientada a eventos

em ambientes complexos

Trilha - Microservices

Globalcode – Open4education

Agenda

• Conceitos e cases• Eventos

• Arquitetura Orientada a Eventos

• Principais Patterns e aplicabilidade

• Conceitos kafka

• Use Cases

Globalcode – Open4education

Contextualizando...

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:

Globalcode – Open4education

Exemplos Tecnologias

FONTE: Internet

Event Sourcing+

LogBin

Oracle Golden Gate

SQL Server Agent

Exemplos:

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.”

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.

Globalcode – Open4education

Quando utilizamos?

● Arquitetura distribuída

● Arquitetura Microserviços

● Volumetria dos dados

● Responsividade

● Escalabilidade

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.

Globalcode – Open4education

Modelo trivial:

Eventos

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.

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

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

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”.

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

Globalcode – Open4education

CQRS – Comand Query Responsabily Segregation

Globalcode – Open4education

CQRS e Event Soucing

Globalcode – Open4education

“Apache Kafka é uma plataforma distribuída de mensagens e streaming”.

Globalcode – Open4education

Empresas que utilizam esta abordagem

Globalcode – Open4education

● Escalabilidade

● Tolerância a Falhas

● Baixa Latência

● Alto throughput

Por quê Kafka?

Globalcode – Open4education

Globalcode – Open4education

Globalcode – Open4education

Ambiente Complexo

-Muitas integrações

-Aquisição de Corporações

-ERP, CRM, PaaS, SaaS, etc...

-Grandes Legados

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)

Globalcode – Open4education

Ambiente Complexo

-Cloud pública, Cloud Híbrida e Cloud Privada

-Requisito de alta disponibilidade

-Latência

Globalcode – Open4education

Globalcode – Open4educationRede Interna

Internet/VPN

Private Cloud

On Premises MainframePacotes

Múltiplos Ambientes

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

Globalcode – Open4educationRede Interna

Case Analytics e Ofertas

Captura logs transações

Apache

Kafka

Evento Ação do Cliente

Envia dados

Wargning

Globalcode – Open4education

Recomendações

Guildas Cases de Mercado Ferramentas

Segurança Alternativas

Globalcode – Open4education

Paula Santana

psanrosa13@gmail.com

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

macedo-santana-dev/

Tatiana Scarpioni

tatianascarpioni@gmail.com

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

a-scarpioni-8934391a/

top related