22
Arquitetura Reativa Fabiano Guizellini Modos Arquiteto de Software: HBSIS twitter: @fmodos github.com/fmodos

Arquitetura Reativa

Embed Size (px)

Citation preview

Page 1: Arquitetura Reativa

Arquitetura ReativaFabiano Guizellini Modos

Arquiteto de Software: HBSIStwitter: @fmodos

github.com/fmodos

Page 2: Arquitetura Reativa

Agenda

• Introdução• Message Driven• Elastic• Resilient• Responsive• Ferramentas• Estudo de Caso

Page 3: Arquitetura Reativa

Por que Arquitetura Reativa?

10 years ago Now

Server nodes 10’s 1000’s

Response times Seconds Milliseconds

Maintenance downtimes Hours None

Data volume GBs TBs -> PBs

Demanda atual não é atendida pelas arquiteturas antigas

Page 4: Arquitetura Reativa

O que é Arquitetura Reativa?Um termo que agrupa algumas soluções que estão sendo utilizadas nos últimos anos:

http://www.reactivemanifesto.org/

Page 5: Arquitetura Reativa

Por que Message Driven?

Síncrona/Single Thread

Page 6: Arquitetura Reativa

Por que Message Driven?

Assíncrona/Multi Thread

???

Concorrente

Page 7: Arquitetura Reativa

Por que Message Driven?

Assíncrono / Non-Blocking / Paralelo

Page 8: Arquitetura Reativa

O que é Message Driven?

• Loosely couple architecture, easier to extend, maintain, evolve

• Location transparency

• Asynchronous, non-blocking, parallel

• Immutable state

Page 9: Arquitetura Reativa

Por que Elastic?

Page 10: Arquitetura Reativa

Porque Elastic?

Page 11: Arquitetura Reativa

O que é Elastic?

• React to changes by increasing or decreasing the resources

• Scalability and elasticity to the Cloud

• More cost-efficient utilization of hardware

• Project has no contention points or central bottlenecks

Page 12: Arquitetura Reativa

Por que Resilient?

Software

VM

Server

Network

DataCenter

Page 13: Arquitetura Reativa

Por que Resilient?

Page 14: Arquitetura Reativa

O que é Resilient?

• Failure is embraced as a natural state in the app lifecycle

• Resilience is a first-class construct

• Failure is detected, isolated, and managed

• Application self heal

Page 15: Arquitetura Reativa

Por que Responsive?

Page 16: Arquitetura Reativa

O que é Responsive?

• Real time, engaging, rich and collaborative

• Create an open and ongoing, dialog with users

• Inpires a feeling of connectedness

• Fully Reactive enabling push instead of pull

Page 17: Arquitetura Reativa

Ferramentas

• Akka (Message Driven)• RabbitMQ (Message Driven)• Elastic BeanStalk/Auto Scaling(Elastic)• Hystrix (Resilient)• WebSocket (Responsive)

Page 18: Arquitetura Reativa

Estudo de Caso

WebServer Operadora Carão de Crédito

HTTP HTTP

Fluxo:1- Usuário Confirma Compra 2- WebServer autoriza compra com operadora de Cartão de Crédito3- WebServer notifica usuário se a compra foi autorizada

Page 19: Arquitetura Reativa

Estudo de Caso

LoadBalancer

Operadora Cartão de Crédito

HTTPWebServer

WebServer

MessageQueue

WebSocket

WebSocket

Monitoramento

Page 20: Arquitetura Reativa
Page 22: Arquitetura Reativa

Obrigado… That’s All Folks!!!