Top Banner
+ Reactive Architecture e Microservices: Microservices, APIs e Event Driven
89

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

Apr 14, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Reactive architecture e microservices  microservices, ap is e event driven (1)

+

Reactive Architecture e Microservices: Microservices, APIs e Event Driven

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

http://sensedia.com/blog/

Petterson Andrade

Software Architect @ [email protected]@pett4j

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

Topic Title

Agenda

1. Microservice 2. Microservice 3. Microservice

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

Arquitetura de software

Page 5: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 6: Reactive architecture e microservices  microservices, ap is e event driven (1)

Pessoas

Page 7: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 8: Reactive architecture e microservices  microservices, ap is e event driven (1)

Monolitico x MicroservicesCruzeiro x Atlético

Grêmio x Inter

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

Microservices

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

Single Responsibility

principle

Dividir para conquistar

FocoPequeno

Bem Feito

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

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!

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

SOA == Microservices (true)SOA != Microservices (true)

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

O princípios são iguais

Desacoplamento

Isolamento

Composição

Integração

Serviços autồnomos

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

A falta dos princípios não

ESB ligando monolíticos

Comunicação complicada

Ineficiência

Sem flexibilidade

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

SOA == Microservices

SOA Microservices

Page 16: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 17: Reactive architecture e microservices  microservices, ap is e event driven (1)

Strangler Application Pattern

Martin Fowler - 29 June 2004

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

Paul Hammanthttp://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/

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

Você venceu sua jornada: é o fim do monolítico

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

Mas lembre-se: Você está em rota de colisão

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

E agora? Quem poderá nos defender?

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

San Newman

samnewman.io

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

Chris Richardson

microservices.io

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

Jonas Bonér

www.lightbend.com

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

Martin Fowler

martinfowler.com

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

Eric Evans

domainlanguage.com/ddd

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

The Reactive Manifesto

Published on September 16 2014. (v2.0)

Page 28: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 29: Reactive architecture e microservices  microservices, ap is e event driven (1)

- 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

Page 30: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 31: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 32: Reactive architecture e microservices  microservices, ap is e event driven (1)

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

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

Transformação Digital

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

S M A C IoT

TODO NEGÓCIO SERÁ DIGITAL

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

The Reactive Manifesto

Se um sistema é:

Responsive, Resilient, Elastic and Message Driven,

Ele pode ser chamado de Reactive System

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

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.

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

The Reactive Manifesto: Resilient

Responde em caso de falha

Replicação

contenção,

isolamento e

delegação.

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

The Reactive Manifesto: Elastic

Continua responsivo mesmo com aumento da demanda

Aumenta e diminui os recursos conforme a demanda

Distribui demanda

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

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

Page 40: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 41: Reactive architecture e microservices  microservices, ap is e event driven (1)

Aqui é reativo p…!BIIIIRRRLLL!

Sai de casa escrevi código pra c……!

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

Fonte de dados isolada

Page 43: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 44: Reactive architecture e microservices  microservices, ap is e event driven (1)

Event Driven Data

Page 45: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 46: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 47: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 48: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 49: Reactive architecture e microservices  microservices, ap is e event driven (1)

Event Source

Page 50: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 51: Reactive architecture e microservices  microservices, ap is e event driven (1)

Synchronous Versus

Asynchronous

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

100ms

70 ms

50 ms

100ms

Synchronous

320 ms

Req Resp

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

Req

70 ms

50ms

100ms

Asynchronous

Resp

100ms

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

Req

70 ms

50ms

100ms

Asynchronous

Resp

?

Page 55: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 56: Reactive architecture e microservices  microservices, ap is e event driven (1)

Backpressure

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

- 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

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

Asynchronous

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

Orchestration vs Choreography

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

Service 1 Service 3

Service 4

Service 2

Orchestration

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

Service 1 Service 3

Service 4

Service 2

Choreography

Service 3pub

sub

sub

sub

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

API Management

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

API Gateway

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

API Gateway

Simplifica o client side

Roteamento

Encapsulamento de serviços

Tradução de protocolo

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

Service Discovery

Page 66: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 67: Reactive architecture e microservices  microservices, ap is e event driven (1)

- 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

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

API / REST / RESTFul

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

APIsThe Digital Glue

Backend

Ecossistema de Parceiros Digitais

Integrações com Aplicações SaaS

Aplicações Móveis e Internet of Things

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

- Over HTTP

- Tira dependência de tecnologia

- O sistema precisa ser capaz de reagir ao erro

- Use padrões

- Implemente Restful de verdade

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

Hypermedia

Page 72: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 73: Reactive architecture e microservices  microservices, ap is e event driven (1)

- Use HAL (Hypertext Application Language)

- Hypermedia garante flexibilidade

- Possui suporte de várias bibliotecas

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

Front-end isolado

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

Aplicação 1

Aplicação

Web AppHTMLJS

Services

Acoplado Desacoplado

Web AppHTMLJS

Aplicação 2

Services

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

WEB Sockets

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

- Padrão no HTTP 2.0

- Torna o sistema mais responsivo

Client

API

WebSocket Server

Fire and forget

Events

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

Programação reativa

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

- Padrão no HTTP 2.0

- Torna o sistema mais responsivo

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

Programação reativa

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

- Use ferramentas para auxiliar

- RXJava

- RXJS

- Avalie usar imutabilidade

- Avalie usar funcional

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

Monitoramento

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

- 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

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

Scalability

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

- Scale out

- Services Stateless

- Comunicação por eventos

- Nunca use pooling

- Deployment

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

Deployment

Page 87: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 88: Reactive architecture e microservices  microservices, ap is e event driven (1)
Page 89: Reactive architecture e microservices  microservices, ap is e event driven (1)