SlideShare uma empresa Scribd logo
1 de 22
Arquitetura Reativa
Fabiano Guizellini Modos
Arquiteto de Software: HBSIS
twitter: @fmodos
github.com/fmodos
Agenda
• Introdução
• Message Driven
• Elastic
• Resilient
• Responsive
• Ferramentas
• Estudo de Caso
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
O que é Arquitetura Reativa?
Um termo que agrupa algumas soluções que estão sendo utilizadas nos últimos anos:
http://www.reactivemanifesto.org/
Por que Message Driven?
Síncrona/Single Thread
Por que Message Driven?
Assíncrona/Multi Thread
???
Concorrente
Por que Message Driven?
Assíncrono / Non-Blocking / Paralelo
O que é Message Driven?
• Loosely couple architecture, easier to extend, maintain, evolve
• Location transparency
• Asynchronous, non-blocking, parallel
• Immutable state
Por que Elastic?
Porque Elastic?
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
Por que Resilient?
Software
VM
Server
Network
DataCenter
Por que Resilient?
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
Por que Responsive?
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
Ferramentas
• Akka (Message Driven)
• RabbitMQ (Message Driven)
• Elastic BeanStalk/Auto Scaling(Elastic)
• Hystrix (Resilient)
• WebSocket (Responsive)
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édito
3- WebServer notifica usuário se a compra foi autorizada
Estudo de Caso
Load
Balancer
Operadora Cartão de
Crédito
HTTP
WebServer
WebServer
Message
Queue
WebSocket
WebSocket
Monitoramento
Referências Bibliograficas
• http://www.reactivemanifesto.org/
• https://www.typesafe.com/
• https://vimeo.com/78892176
• http://blog.andrefaria.com/programacao-reativa-reactive-programming
• https://github.com/Netflix/Hystrix/wiki
• http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html
• https://www.rabbitmq.com/
• https://github.com/Netflix/SimianArmy/wiki
• https://www.websocket.org/
Obrigado… That’s All Folks!!!

Mais conteúdo relacionado

Semelhante a Arquitetura Reativa

Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Renato Groff
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesGuilherme Vierno
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JSEduardo Nunes Pereira
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHHugo Ferreira
 
REST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasREST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasFelipe Firmo
 
REST - padrões e melhores práticas
REST - padrões e melhores práticasREST - padrões e melhores práticas
REST - padrões e melhores práticasSensedia
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaAndré Paulovich
 
REST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasREST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasAlessandro Oliveira
 
Arquitetura de microsserviços
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviçosRaphael Almeida
 
DevOps - A Origem
DevOps - A OrigemDevOps - A Origem
DevOps - A OrigemAndré Dias
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Renato Groff
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Renato Groffe
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linuxaviram
 

Semelhante a Arquitetura Reativa (20)

Microservices
MicroservicesMicroservices
Microservices
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluções
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JS
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BH
 
REST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasREST - Padroes e Melhores Praticas
REST - Padroes e Melhores Praticas
 
REST - padrões e melhores práticas
REST - padrões e melhores práticasREST - padrões e melhores práticas
REST - padrões e melhores práticas
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
 
REST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasREST: Padrões e Melhores Práticas
REST: Padrões e Melhores Práticas
 
Quem e dev ops
Quem e dev opsQuem e dev ops
Quem e dev ops
 
Arquitetura de microsserviços
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviços
 
Sua aplicação nas nuvens com open shift
Sua aplicação nas nuvens com open shiftSua aplicação nas nuvens com open shift
Sua aplicação nas nuvens com open shift
 
DevOps - A Origem
DevOps - A OrigemDevOps - A Origem
DevOps - A Origem
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
 
Microservices
MicroservicesMicroservices
Microservices
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
 
Microservices 2
Microservices 2Microservices 2
Microservices 2
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 

Mais de Fabiano Modos

Arquitetura Orientada a Atores
Arquitetura Orientada a AtoresArquitetura Orientada a Atores
Arquitetura Orientada a AtoresFabiano Modos
 
Akka: Arquitetura Orientada a Atores
Akka: Arquitetura Orientada a AtoresAkka: Arquitetura Orientada a Atores
Akka: Arquitetura Orientada a AtoresFabiano Modos
 
Akka: Brincando com Atores
Akka: Brincando com AtoresAkka: Brincando com Atores
Akka: Brincando com AtoresFabiano Modos
 
Architecting For Resilience
Architecting For ResilienceArchitecting For Resilience
Architecting For ResilienceFabiano Modos
 
Arquitetando com buzzwords
Arquitetando com buzzwordsArquitetando com buzzwords
Arquitetando com buzzwordsFabiano Modos
 
Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436Fabiano Modos
 
Real time com java e Node.Js
Real time com java e Node.JsReal time com java e Node.Js
Real time com java e Node.JsFabiano Modos
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb javaFabiano Modos
 
Lições Aprendidas MongoDB
Lições Aprendidas MongoDBLições Aprendidas MongoDB
Lições Aprendidas MongoDBFabiano Modos
 
Spring Data com MongoDB
Spring Data com MongoDBSpring Data com MongoDB
Spring Data com MongoDBFabiano Modos
 

Mais de Fabiano Modos (10)

Arquitetura Orientada a Atores
Arquitetura Orientada a AtoresArquitetura Orientada a Atores
Arquitetura Orientada a Atores
 
Akka: Arquitetura Orientada a Atores
Akka: Arquitetura Orientada a AtoresAkka: Arquitetura Orientada a Atores
Akka: Arquitetura Orientada a Atores
 
Akka: Brincando com Atores
Akka: Brincando com AtoresAkka: Brincando com Atores
Akka: Brincando com Atores
 
Architecting For Resilience
Architecting For ResilienceArchitecting For Resilience
Architecting For Resilience
 
Arquitetando com buzzwords
Arquitetando com buzzwordsArquitetando com buzzwords
Arquitetando com buzzwords
 
Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436Arquiteturaentregacontinuav2 160513025436
Arquiteturaentregacontinuav2 160513025436
 
Real time com java e Node.Js
Real time com java e Node.JsReal time com java e Node.Js
Real time com java e Node.Js
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb java
 
Lições Aprendidas MongoDB
Lições Aprendidas MongoDBLições Aprendidas MongoDB
Lições Aprendidas MongoDB
 
Spring Data com MongoDB
Spring Data com MongoDBSpring Data com MongoDB
Spring Data com MongoDB
 

Arquitetura Reativa

  • 1. Arquitetura Reativa Fabiano Guizellini Modos Arquiteto de Software: HBSIS twitter: @fmodos github.com/fmodos
  • 2. Agenda • Introdução • Message Driven • Elastic • Resilient • Responsive • Ferramentas • Estudo de Caso
  • 3. 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
  • 4. O que é Arquitetura Reativa? Um termo que agrupa algumas soluções que estão sendo utilizadas nos últimos anos: http://www.reactivemanifesto.org/
  • 5. Por que Message Driven? Síncrona/Single Thread
  • 6. Por que Message Driven? Assíncrona/Multi Thread ??? Concorrente
  • 7. Por que Message Driven? Assíncrono / Non-Blocking / Paralelo
  • 8. O que é Message Driven? • Loosely couple architecture, easier to extend, maintain, evolve • Location transparency • Asynchronous, non-blocking, parallel • Immutable state
  • 11. 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
  • 14. 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
  • 16. 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
  • 17. Ferramentas • Akka (Message Driven) • RabbitMQ (Message Driven) • Elastic BeanStalk/Auto Scaling(Elastic) • Hystrix (Resilient) • WebSocket (Responsive)
  • 18. 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édito 3- WebServer notifica usuário se a compra foi autorizada
  • 19. Estudo de Caso Load Balancer Operadora Cartão de Crédito HTTP WebServer WebServer Message Queue WebSocket WebSocket Monitoramento
  • 20.
  • 21. Referências Bibliograficas • http://www.reactivemanifesto.org/ • https://www.typesafe.com/ • https://vimeo.com/78892176 • http://blog.andrefaria.com/programacao-reativa-reactive-programming • https://github.com/Netflix/Hystrix/wiki • http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html • https://www.rabbitmq.com/ • https://github.com/Netflix/SimianArmy/wiki • https://www.websocket.org/