Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
+
Reactive Architecture e
Microservices:
Microservices, APIs e Event Driven
http://sensedia.com/blog/
Petterson Andrade
Software Architect @ Sensedia
petterson.andrade@sensedia.com
@pett4j
Topic Title
Agenda
1. Microservice 2. Microservice 3. Microservice
Arquitetura de
software
Pessoas
Monolitico x Microservices
Cruzeiro x Atlético
Grêmio x Inter
Microservices
Single
Responsibility
principle
Dividir para conquistar
Foco
Pequeno
Bem Feito
Por que
adotar?
- Escolha a tecnologia certa para resolver o
problema
- Você não precisa repassar um problema você
pode is...
SOA == Microservices (true)
SOA != Microservices (true)
O princípios
são iguais
Desacoplamento
Isolamento
Composição
Integração
Serviços autồnomos
A falta dos
princípios não
ESB ligando monolíticos
Comunicação complicada
Ineficiência
Sem flexibilidade
SOA == Microservices
SOA Microservices
Strangler Application
Pattern
Martin Fowler - 29 June 2004
Paul Hammant
http://paulhammant.com/2013/
07/14/legacy-application-strang
ulation-case-studies/
Você venceu sua jornada: é o fim do monolítico
Mas lembre-se: Você está em rota de colisão
E agora? Quem
poderá nos
defender?
San
Newman
samnewman.io
Chris
Richardson
microservices.io
Jonas Bonér
www.lightbend.com
Martin
Fowler
martinfowler.com
Eric Evans
domainlanguage.com/ddd
The Reactive
Manifesto
Published on September 16 2014. (v2.0)
- Aplicações eram gigantes e com dezenas de servers
- Segundo é a unidade de medida de resposta
- Horas de manutenção e de...
- Aplicações distribuídas
- Você faz tudo com um comando pelo smartphone
- Nuvem rodando milhares de máquina multi-core
- ...
Transformação
Digital
S M A C IoT
TODO NEGÓCIO SERÁ DIGITAL
The Reactive Manifesto
Se um sistema é:
Responsive, Resilient, Elastic and Message Driven,
Ele pode ser chamado de Reactiv...
The Reactive Manifesto:
Responsive
Sempre da feedback aos usuários
Responde em tempo hábil
Detecta problemas e trata
Rápid...
The Reactive Manifesto: Resilient
Responde em caso de falha
Replicação
contenção,
isolamento e
delegação.
The Reactive Manifesto: Elastic
Continua responsivo mesmo com aumento da demanda
Aumenta e diminui os recursos conforme a ...
The Reactive Manifesto:
Message Driven
Usa mensagens assíncronas
Baixo acoplamento
Tratamento de erros por mensagem
Comuni...
Aqui é reativo p…!
BIIIIRRRLLL!
Sai de casa escrevi
código pra c……!
Fonte de dados
isolada
Event Driven
Data
Event Source
Synchronous
Versus
Asynchronous
100
ms
70
ms
50
ms
100
ms
Synchronous
320 ms
Req Resp
Req
70
ms
50
ms
100
ms
Asynchronous
Resp
100ms
Req
70
ms
50
ms
100
ms
Asynchronous
Resp
?
Backpressure
- O sistema precisa ser capaz de reagir ao erro
- Tempo de resposta não pode ser afetado
- Não pode propagar o erro
- Prec...
Asynchronous
Orchestration vs
Choreography
Service 1 Service 3
Service 4
Service 2
Orchestration
Service 1 Service 3
Service 4
Service 2
Choreography
Service 3
pub
sub
sub
sub
API Management
API Gateway
API Gateway
Simplifica o client side
Roteamento
Encapsulamento de serviços
Tradução de protocolo
Service Discovery
- Inversão de controle
- Cada serviço se registra
- Configuração deixa de ser estática
- Pode ser aplicado ao cliente
- De...
API / REST / RESTFul
APIs
The Digital Glue
Backend
Ecossistema de
Parceiros Digitais
Integrações com
Aplicações SaaS
Aplicações Móveis e
Intern...
- Over HTTP
- Tira dependência de tecnologia
- O sistema precisa ser capaz de reagir ao erro
- Use padrões
- Implemente Re...
Hypermedia
- Use HAL (Hypertext Application Language)
- Hypermedia garante flexibilidade
- Possui suporte de várias bibliotecas
Front-end isolado
Aplicação 1
Aplicação
Web App
HTML
JS
Services
Acoplado Desacoplado
Web App
HTML
JS
Aplicação 2
Services
WEB Sockets
- Padrão no HTTP 2.0
- Torna o sistema mais responsivo
Client
API
WebSocket Server
Fire and forget
Events
Programação
reativa
- Padrão no HTTP 2.0
- Torna o sistema mais responsivo
Programação
reativa
- Use ferramentas para auxiliar
- RXJava
- RXJS
- Avalie usar imutabilidade
- Avalie usar funcional
Monitoramento
- Monitore tudo que for possível e mais um pouco
- Alerte a performance do serviço
- Alerte qualquer anomalia a estrutura
...
Scalability
- Scale out
- Services Stateless
- Comunicação por eventos
- Nunca use pooling
- Deployment
Deployment
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Reactive architecture e microservices  microservices, ap is e event driven (1)
Prochain SlideShare
Chargement dans…5
×

Reactive architecture e microservices microservices, ap is e event driven (1)

258 vues

Publié le

Microservices é um conceito que está na cabeça de todo mundo da tecnologia neste momento. Existem várias outras teorias e patterns que estão ajudando a fazer dos microservices uma estratégia de sucesso para o desenvolvimento de aplicações de média e larga escala. Vamos entrar fundo em alguns conceitos e ver como eles podem ajudar na hora de produzir uma arquitetura robusta de microservices.

Publié dans : Technologie
  • Soyez le premier à commenter

Reactive architecture e microservices microservices, ap is e event driven (1)

  1. 1. + Reactive Architecture e Microservices: Microservices, APIs e Event Driven
  2. 2. http://sensedia.com/blog/ Petterson Andrade Software Architect @ Sensedia petterson.andrade@sensedia.com @pett4j
  3. 3. Topic Title Agenda 1. Microservice 2. Microservice 3. Microservice
  4. 4. Arquitetura de software
  5. 5. Pessoas
  6. 6. Monolitico x Microservices Cruzeiro x Atlético Grêmio x Inter
  7. 7. Microservices
  8. 8. Single Responsibility principle Dividir para conquistar Foco Pequeno Bem Feito
  9. 9. Por que adotar? - Escolha a tecnologia certa para resolver o problema - Você não precisa repassar um problema você pode isolar e se recuperar - Você precisa escalar somente o que vai utilizar - Desenvolva e teste rápido e focado - Serviço pequeno, menos conflito, menos erros e mais produtividade - Re-uso! Não reinvente a roda! - Otimize, joge fora e faça melhor!
  10. 10. SOA == Microservices (true) SOA != Microservices (true)
  11. 11. O princípios são iguais Desacoplamento Isolamento Composição Integração Serviços autồnomos
  12. 12. A falta dos princípios não ESB ligando monolíticos Comunicação complicada Ineficiência Sem flexibilidade
  13. 13. SOA == Microservices SOA Microservices
  14. 14. Strangler Application Pattern Martin Fowler - 29 June 2004
  15. 15. Paul Hammant http://paulhammant.com/2013/ 07/14/legacy-application-strang ulation-case-studies/
  16. 16. Você venceu sua jornada: é o fim do monolítico
  17. 17. Mas lembre-se: Você está em rota de colisão
  18. 18. E agora? Quem poderá nos defender?
  19. 19. San Newman samnewman.io
  20. 20. Chris Richardson microservices.io
  21. 21. Jonas Bonér www.lightbend.com
  22. 22. Martin Fowler martinfowler.com
  23. 23. Eric Evans domainlanguage.com/ddd
  24. 24. The Reactive Manifesto Published on September 16 2014. (v2.0)
  25. 25. - Aplicações eram gigantes e com dezenas de servers - Segundo é a unidade de medida de resposta - Horas de manutenção e de sistemas fora do ar - Gigabytes é a unidade de medida de armazenamento
  26. 26. - Aplicações distribuídas - Você faz tudo com um comando pelo smartphone - Nuvem rodando milhares de máquina multi-core - Milissegundos é obrigatoriamente a unidade de medida de resposta - 100% uptime. - Data is measured in Petabytes.
  27. 27. Transformação Digital
  28. 28. S M A C IoT TODO NEGÓCIO SERÁ DIGITAL
  29. 29. The Reactive Manifesto Se um sistema é: Responsive, Resilient, Elastic and Message Driven, Ele pode ser chamado de Reactive System
  30. 30. The Reactive Manifesto: Responsive Sempre da feedback aos usuários Responde em tempo hábil Detecta problemas e trata Rápido e consistente Alta confiabilidade .
  31. 31. The Reactive Manifesto: Resilient Responde em caso de falha Replicação contenção, isolamento e delegação.
  32. 32. The Reactive Manifesto: Elastic Continua responsivo mesmo com aumento da demanda Aumenta e diminui os recursos conforme a demanda Distribui demanda
  33. 33. The Reactive Manifesto: Message Driven Usa mensagens assíncronas Baixo acoplamento Tratamento de erros por mensagem Comunicação não blocante Evita desgaste do sistema
  34. 34. Aqui é reativo p…! BIIIIRRRLLL! Sai de casa escrevi código pra c……!
  35. 35. Fonte de dados isolada
  36. 36. Event Driven Data
  37. 37. Event Source
  38. 38. Synchronous Versus Asynchronous
  39. 39. 100 ms 70 ms 50 ms 100 ms Synchronous 320 ms Req Resp
  40. 40. Req 70 ms 50 ms 100 ms Asynchronous Resp 100ms
  41. 41. Req 70 ms 50 ms 100 ms Asynchronous Resp ?
  42. 42. Backpressure
  43. 43. - O sistema precisa ser capaz de reagir ao erro - Tempo de resposta não pode ser afetado - Não pode propagar o erro - Precisa ser capaz de fazer Rollback
  44. 44. Asynchronous
  45. 45. Orchestration vs Choreography
  46. 46. Service 1 Service 3 Service 4 Service 2 Orchestration
  47. 47. Service 1 Service 3 Service 4 Service 2 Choreography Service 3 pub sub sub sub
  48. 48. API Management
  49. 49. API Gateway
  50. 50. API Gateway Simplifica o client side Roteamento Encapsulamento de serviços Tradução de protocolo
  51. 51. Service Discovery
  52. 52. - Inversão de controle - Cada serviço se registra - Configuração deixa de ser estática - Pode ser aplicado ao cliente - Deve ser aplicado ao server
  53. 53. API / REST / RESTFul
  54. 54. APIs The Digital Glue Backend Ecossistema de Parceiros Digitais Integrações com Aplicações SaaS Aplicações Móveis e Internet of Things
  55. 55. - Over HTTP - Tira dependência de tecnologia - O sistema precisa ser capaz de reagir ao erro - Use padrões - Implemente Restful de verdade
  56. 56. Hypermedia
  57. 57. - Use HAL (Hypertext Application Language) - Hypermedia garante flexibilidade - Possui suporte de várias bibliotecas
  58. 58. Front-end isolado
  59. 59. Aplicação 1 Aplicação Web App HTML JS Services Acoplado Desacoplado Web App HTML JS Aplicação 2 Services
  60. 60. WEB Sockets
  61. 61. - Padrão no HTTP 2.0 - Torna o sistema mais responsivo Client API WebSocket Server Fire and forget Events
  62. 62. Programação reativa
  63. 63. - Padrão no HTTP 2.0 - Torna o sistema mais responsivo
  64. 64. Programação reativa
  65. 65. - Use ferramentas para auxiliar - RXJava - RXJS - Avalie usar imutabilidade - Avalie usar funcional
  66. 66. Monitoramento
  67. 67. - Monitore tudo que for possível e mais um pouco - Alerte a performance do serviço - Alerte qualquer anomalia a estrutura - Evite falsos positivos, refine os alertas - Avalie o tempo todo as métricas - Automatize e depois automatize de novo
  68. 68. Scalability
  69. 69. - Scale out - Services Stateless - Comunicação por eventos - Nunca use pooling - Deployment
  70. 70. Deployment

×