1. March 22, 2016
Arquitetura Microservices
Tiago Canatelli
https://www.linkedin.com/in/tiago-lorenzetti-canatelli-mba-3b47a723/
2. 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
3. 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.
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
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 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
9. 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
10. 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
11. 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
12. 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
13. 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