March 22, 2016
Arquitetura Microservices
Tiago Canatelli
https://www.linkedin.com/in/tiago-lorenzetti-canatelli-mba-3b47a723/
Micro Serviços
A arquitetura baseada em micro serviços vem hoje para quebrar paradigmas,
principalmente a de se ter como grande das empresas tem hoje, aquele sistema
grande todo interligado em forma de monolítico, o famoso “monstrinho” onde sempre
que é lançada uma nova release, todos cruzam os dedos no momento de enviar pra
produção e já preparado aquela rotina gigante de rollback. Quem aqui já vivenciou
isso?
2
Big Rollback
Script
Envio
Deploy
Produção
Micro Serviços
E como a arquitetura em micro serviços pode ajudar nesse contexto? Os micro
serviços, diferentemente do monolítico, vem com o conceito de dividir a arquitetura
de seu sistema em vários contextos e distribuir esses contextos em pequenos
fragmentos de serviços, seja via APIs, seja via WebService ou um simples programa,
mas que seja auto gerenciável, auto escalável e que não tenha influência no
comportamento de outros micro serviços.
Nesse novo conceito, quando temos novos releases, por estarem divididos em
pequenos contextos, nenhum micro serviço influencia no outro, evitando grandes
scripts rollback e dor de cabeça ao enviar para produção, sem contar na
escalabilidade que você pode flexibilizar para cada contexto.
Micro ServiçosFrontEnd
RAML/YAML/SWAGGER
APIGATEWAY
MS1
MS1
MS1
MS1
BACKEND
DataBase
Uma das arquiteturas exemplos, dentre outras:
Arquitetura Microservice não é nova
" Nós não afirmamos que o estilo microservice é novo ou inovador, suas
raízes remontam pelo menos aos princípios de design do Unix. Mas nós
pensamos que há uma grande maioria de pessoas que pensam se essa
arquitetura fosse usada na definição de arquitetura e construção de
software, muitos deles seriam melhores." - 2014
Source: https://martinfowler.com/articles/microservices.html
5
Quem usa microsercices hoje?
6
Por que Microservice é melhor?
• Mais fácil de desenvolver, testar, implantar e dimensionar
• Cada parte é mais coesa, tão fácil para um novo desenvolvedor entender
e começar a trabalhar
• O código-fonte de pequenos projetos torna o IDE leve, portanto, mais
produtivo
• É mais rápido para executá-lo, de forma mais rápida e mais rápida a
escala
7
Comparação Monilítico x Micro Serviço
Nos próximos slides, discorrerei sobre a comparação da arquitetura
monolítica e dos problemas e situações e como tratar em cada uma delas.
8
MS2 MS3 MS4MS1
DB1 DB2 DB3 DB4
API Gateway
Backend
ENDPOI
NT2
ENDPOI
NT3
ENDPOI
NT4
ENDPOI
NT1
DB
API Gateway
Backend
Comparação arquitetura Monolítico e Microservice
MS2 MS3 MS4MS1
DB1 DB2 DB3 DB4
API Gateway
Backend
ENDPOI
NT2
ENDPOI
NT3
ENDPOI
NT4
ENDPOI
NT1
DB
API Gateway
Backend
MS1
down
Endpoint
2 down
Todos os serviços
caem derrubando
toda aplicação
Outros
microserviços
continuam
trabalhando
normalmente
Simulação de Falha Monolítico vs Microservice
MS2 MS3 MS4MS1
DB1 DB2 DB3 DB4
API Gateway
Backend
ENDPOI
NT2
ENDPOI
NT3
ENDPOI
NT4
ENDPOI
NT1
DB
API Gateway
Backend
O MS2,
tem um
processa
mento
mais
pesado,
por ser
um
Microservi
ce, existe
a
flexibilida
de para
alocar
mais
recursos
neste MS
em
específico
O endpoint 2 é o processo
que mais consome
recursos, mas porque é
monolítico, não há como
aumentar recursos para
este processo específico,
precisando de mais
máquinas para a aplicação
como um todo, sem ter
flexibilidade de
escalabilidade
Simulação Microservice x Monolítico quando possuem um
recurso que consome bastante memória e processamento
MS2
v1
MS3 MS4MS1
DB1 DB2 DB3 DB4
API Gateway
Backend
ENDPOI
NT2 v1
ENDPOI
NT3
ENDPOI
NT4
ENDPOI
NT1
DB
API Gateway
Backend
MS2
v1.1
ENDPOI
NT2 v1.1
ENDPOI
NT3
ENDPOI
NT4
ENDPOI
NT1
Com uma
nova
versão do
MS2, a
substituiç
ão do
pacote
ocorre
individual
mente,
sem
impactar
os outros
serviços.
Com uma nova versão do
Endpoint 2, você deve substituir
cada aplicativo, onde você pode
ter outras implementações em
andamento dos outros pontos e
carregar o que não deve dar
errado, afetando outros serviços
que não fazem parte dessa
versão.
Simulação Monolítico vs Microservice quando possui uma nova
versão à fazer o deploy
Da
perpectiva do
negócio
Micro Serviço te dá agilidade no desenvolvimento, não
só no desenvolvimento, mas nas evoluções de seus
sistemas e backend, porém mais importante que isso,
agilidade no aprimoramento do seu core business com
mais qualidade e menos problemas.
1
Tiago L.
Canatelli
Arquiteto de Software/Integração
Tiago.canatelli@gmail.com
Tiago.canatelli@zappsti.com
15 99123-7315
1

Micro serviços ppt

  • 1.
    March 22, 2016 ArquiteturaMicroservices Tiago Canatelli https://www.linkedin.com/in/tiago-lorenzetti-canatelli-mba-3b47a723/
  • 2.
    Micro Serviços A arquiteturabaseada em micro serviços vem hoje para quebrar paradigmas, principalmente a de se ter como grande das empresas tem hoje, aquele sistema grande todo interligado em forma de monolítico, o famoso “monstrinho” onde sempre que é lançada uma nova release, todos cruzam os dedos no momento de enviar pra produção e já preparado aquela rotina gigante de rollback. Quem aqui já vivenciou isso? 2 Big Rollback Script Envio Deploy Produção
  • 3.
    Micro Serviços E comoa arquitetura em micro serviços pode ajudar nesse contexto? Os micro serviços, diferentemente do monolítico, vem com o conceito de dividir a arquitetura de seu sistema em vários contextos e distribuir esses contextos em pequenos fragmentos de serviços, seja via APIs, seja via WebService ou um simples programa, mas que seja auto gerenciável, auto escalável e que não tenha influência no comportamento de outros micro serviços. Nesse novo conceito, quando temos novos releases, por estarem divididos em pequenos contextos, nenhum micro serviço influencia no outro, evitando grandes scripts rollback e dor de cabeça ao enviar para produção, sem contar na escalabilidade que você pode flexibilizar para cada contexto.
  • 4.
  • 5.
    Arquitetura Microservice nãoé nova " Nós não afirmamos que o estilo microservice é novo ou inovador, suas raízes remontam pelo menos aos princípios de design do Unix. Mas nós pensamos que há uma grande maioria de pessoas que pensam se essa arquitetura fosse usada na definição de arquitetura e construção de software, muitos deles seriam melhores." - 2014 Source: https://martinfowler.com/articles/microservices.html 5
  • 6.
  • 7.
    Por que Microserviceé melhor? • Mais fácil de desenvolver, testar, implantar e dimensionar • Cada parte é mais coesa, tão fácil para um novo desenvolvedor entender e começar a trabalhar • O código-fonte de pequenos projetos torna o IDE leve, portanto, mais produtivo • É mais rápido para executá-lo, de forma mais rápida e mais rápida a escala 7
  • 8.
    Comparação Monilítico xMicro Serviço Nos próximos slides, discorrerei sobre a comparação da arquitetura monolítica e dos problemas e situações e como tratar em cada uma delas. 8
  • 9.
    MS2 MS3 MS4MS1 DB1DB2 DB3 DB4 API Gateway Backend ENDPOI NT2 ENDPOI NT3 ENDPOI NT4 ENDPOI NT1 DB API Gateway Backend Comparação arquitetura Monolítico e Microservice
  • 10.
    MS2 MS3 MS4MS1 DB1DB2 DB3 DB4 API Gateway Backend ENDPOI NT2 ENDPOI NT3 ENDPOI NT4 ENDPOI NT1 DB API Gateway Backend MS1 down Endpoint 2 down Todos os serviços caem derrubando toda aplicação Outros microserviços continuam trabalhando normalmente Simulação de Falha Monolítico vs Microservice
  • 11.
    MS2 MS3 MS4MS1 DB1DB2 DB3 DB4 API Gateway Backend ENDPOI NT2 ENDPOI NT3 ENDPOI NT4 ENDPOI NT1 DB API Gateway Backend O MS2, tem um processa mento mais pesado, por ser um Microservi ce, existe a flexibilida de para alocar mais recursos neste MS em específico O endpoint 2 é o processo que mais consome recursos, mas porque é monolítico, não há como aumentar recursos para este processo específico, precisando de mais máquinas para a aplicação como um todo, sem ter flexibilidade de escalabilidade Simulação Microservice x Monolítico quando possuem um recurso que consome bastante memória e processamento
  • 12.
    MS2 v1 MS3 MS4MS1 DB1 DB2DB3 DB4 API Gateway Backend ENDPOI NT2 v1 ENDPOI NT3 ENDPOI NT4 ENDPOI NT1 DB API Gateway Backend MS2 v1.1 ENDPOI NT2 v1.1 ENDPOI NT3 ENDPOI NT4 ENDPOI NT1 Com uma nova versão do MS2, a substituiç ão do pacote ocorre individual mente, sem impactar os outros serviços. Com uma nova versão do Endpoint 2, você deve substituir cada aplicativo, onde você pode ter outras implementações em andamento dos outros pontos e carregar o que não deve dar errado, afetando outros serviços que não fazem parte dessa versão. Simulação Monolítico vs Microservice quando possui uma nova versão à fazer o deploy
  • 13.
    Da perpectiva do negócio Micro Serviçote dá agilidade no desenvolvimento, não só no desenvolvimento, mas nas evoluções de seus sistemas e backend, porém mais importante que isso, agilidade no aprimoramento do seu core business com mais qualidade e menos problemas. 1
  • 14.
    Tiago L. Canatelli Arquiteto deSoftware/Integração Tiago.canatelli@gmail.com Tiago.canatelli@zappsti.com 15 99123-7315 1