SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
Fábio Rosato
fabio.rosato@sensedia.com
@frosato
Vantagens e desvantagens de uma
arquitetura microservices
Fábio Rosato
Professional Services Manager
fabio.rosato@sensedia.com
@frosato
 SOA, Microservices e APIs
 Projetos bacanas e desafiadores
 Plataformas sensacionais
 Headquarter em Campinas,
escritórios em SP, Rio e EUA
Alguns Clientes
Agenda
Cenário
Estratégia de evolução
Dicas
Vantagens e desvantagens
Cenário
Microservices está
no Hype
Hype
Hype?
Cloud
Domain-
driven design
Service-
oriented
architecture
Continuous
delivery
Elementos chaves
para a ascensão dos
microservices…
Fazendo as
comparações...
WEB
UI
EMAIL
Adapter
URA
Adapter
Pagamentos
Adapter
Clientes
Pacotes
Reservas
Avaliações
Recomendações
PagamentosNotificações
DB
Adapter
REST
API
Monolítica
Arquitetura
http://alistair.cockburn.us/Hexagonal+architecture
Plataforma de
Viagem
Clientes
Pacotes
Reservas
Avaliações
Recomendações
Pagamentos
Notificações
Microservices
Arquitetura
Pagamentos
Adapter
URA
Adapter
EMAIL
Adapter
API
Gateway
REST
API
REST
API
REST
API
REST
API
REST
API
REST/AMPQ
API
REST/AMQP
API
WEB
UI
Plataforma de
Viagem
Application #1 Application #2
Application #3 Application #n
Cenário
Real
Cenário
Real
Application #1 Application #2
Application #3 Application #n
Aplicações moníliticas nem
sempre modularizadas
Comunicação interna e
externa caso-a-caso sem
padrão definido
Ciclos de entrega longos
(meses)
Dificuldade para evoluir e
implantar novas
tecnologias
Obsolecência tecnológica
Grandes bases
compartilhadas
√
√
√
√
√
√
Evolução
Manter e evoluir!
http://www.martinfowler.com/bliki/StranglerApplication.html
Strangler
Application
Application #1 Strangler Application
1
http://www.martinfowler.com/bliki/StranglerApplication.html
Application #1 Strangler Application
Strangler
Application1
Strangle Application
Domínios e
sub-domínios2
 Conceitos de negócio
 Bounded Context
 Domain Driven Design
Contexto A Contexto B
Strangle Application
Microservices
3
Microservice #n
Database
HTTP/REST
Governança
4  Definições de padrões
mínimos principalmente
na fronteira externa da
aplicação (contexto de
conexão)
 Informações para tomadas
de decisões em tempo de
design e runtime
 Importante na medida
certa!
Cultura
Devops5
Cultura
Devops5
 Times de desenvolvimento e operação atuando juntos
 Time de desenvolvimento criando scripts de automação
 Ciclos de entregas mais curtos (diários)
Dicas
Alguns Fatores
• Microservices não são necessariamente mais
fáceis de escalar
• Você pode aplicar mecanismos distintos de
segurança para os microservices
Integração
• Acertar a integração é o aspecto mais importante
da tecnologia associada a microservices.
• Prefira integrações direitas para aumentar a
autonomia
• Evitar de fazer alterações que mudem o contrato
Integração
• Mantenha sua tecnologia de APIs agnóstica (REST
HTTP / AMQP)
• Faça seus serviços simples para os consumidores
– De nada adianta ter um microservice bacana se ele é
difícil de ser utilizado
• Esconda os detalhes de implementação internos
Composição - Coreografia
Microservice #1 Microservice #2 Microservice #n
Banco Relacional Documentos Key/Store Data Base
API API API
Microservice #c
Camada de
coreografia
Camada de
dados
DRY – don’t repeat yourself
Código repetitivo você pode colocar em
um componente (library), mas
cuidado! Evoluções nos componentes
impactam todos os microservices que
dependem deles.
Client Library ou SDKs
• Criar um client library facilita o consumo do
microservices e mitiga o uso indevido
• O problema é a diversidade tecnológica e a
manutenção dos Client Library
• Cuidado: não deixe vazar lógicas que deveriam estar no
servidor para dentro do client da API. (Acoplamento)
Uso de múltiplas versões de serviços
concorrentes
• Manter instâncias de serviços novos e velhos e
rotear para um ou outro
– Utilize nas situações que alterar os consumidores
mais velhos tem um custo muito alto
– Ou em situações de um curto período de tempo
com implantações blue/greenn
• Coexistir diferentes endpoint
Architectural Safety
• Proteja-se dos serviços laranjas podres:
aqueles que estragam todos os outros
• Os butterflies são potencialmente mais
danosos. Monitore!
Microservice #1 Microservice #2 Microservice #3REST
API
REST
API
REST
API
Microservice #4
REST
API butterfly
Vantagens e
desvantagens
benefícios e consequências
Módulos com Fronteiras Fortes
Fortes Fronteiras de módulos
• Microservices
– A dissociação modular de
microservices funcionam
melhor porque os limites dos
módulos são uma barreira para
referências entre os módulos
– Você até pode ter um grande
acoplamento com
microservices, mas o esforço
certamente será maior
– O desafio é definir o domínios e
sub-domínios
– Funciona bem para equipes
isoladas (esquadrões)
• Monolítica
– É perfeitamente possível ter
limites firmes de módulos em
sistemas monolíticos, mas
requer disciplina e
acompanhamento
– É mais fácil bular as fronteiras,
e esse atalho feito amplamente
minam a estrutura modular do
sistema e o tornam um “lixo”
Distribuição
Distribuição
• Grande desvantagem:
– Ser muito distribuído
– Desempenho
• Latência de rede
• Custo de serialização e
deserialização
• Falácias da computação
distribuída*
• Dicas (Mitigações):
– Aumentar a granularidade
das chamadas
– Usar chamadas assíncronas
• melhoria de desempenho
• Porém é:
– Difícil de acertar
– Difícil de depurar
– Confiabilidade
• Programa-se para o fracasso e
suas consequências
* Falácias da computação distribuída: http://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
Implantação Independente
Implantação Independente
• Simplicidade
– A unidade microservice é
mais simples, em tese é mais
fácil de implantar
– Problemas no microservice,
se ele for bem desenhado,
tendem a propagar menos
impacto no ambiente todo
• Scripts de automatização
– Quase um pré-requisito: é
difícil ser ágil fazendo
implantações manuais
• Entrega contínua
– Redução do tempo de ciclo
entre uma ideia e o software
em execução
– Respostas mais rápida as
mudanças do mercado
– Vantagem competitiva
• Feedbacks mais rápidos
– E ciclo de correções mais
rápidos
Consistência Eventual
#sqn
Consistência Eventual
• Causa: descentralização de
dados da abordagem
• É um efeito colateral para
garantir a disponibilidade
– Tradeoff entre
disponibilidade e consistência
dos dados
• Cache é importante!
– Invalidação de cache é difícil
– Dica: Utilize eventos para
invalidar cache
• Tolerância a inconsistência
(teorema de CAP)
– Consistency
– Availability
– Tolerance to network
partitions
http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf
Diversidade Tecnológica
Diversidade Tecnológica
• Liberdade
– Fortalece a as escolhas
independentes de tecnologia
– Algumas linguagens e tipos de
armazenamento de dados são
mais adequados para
determinados tipos de
problemas
– O objetivo é resolver o
problema através das escolhas
mais inteligentes
– Experimentações de novas
tecnologias
• Padronização
– As questões de interface
(HTTP/REST, AMQP),
ferramentas de ambiente e
monitoração
• Bibliotecas
– Mais controle no
versionamento de bibliotecas
Complexidade Operacional
Complexidade Operacional
• Produtividade
– Para algumas equipes pode ser
um fardo que mina a
produtividade
• Tensão
– Pequenos módulos
independentes e implantações
rápidas traz uma pressão
adicional para operação
• Agilidade
– É praticamente impossível
garantir um ambiente
operacional de dezenas de
serviços sem automação
• Responsabilidade
– A uma tendência da
complexidade subir para a
camada de interconexões dos
serviços
• Skills e Ferramentas
– Requer algumas competências,
habilidades e ferramental
• Colaboração
– Introduzir uma cultura DevOps:
uma maior colaboração entre
os desenvolvedores, operações
e pessoal de infraestrutura
Complexidade Operacional
Application #1 Application #2
Application #3 Application #n
Cenário
Inicial - pós adoção de
microservices
Microservice #1 Microservice #2 Microservice #n
Banco Relacional Documentos Key/Store Data Base
REST API REST API REST API
API Gateway
API Gateway
Service aggregation
Rate Limiting
Monitoring & Alerts
Authentication Models
Policy Enforcement
Exception handling
Analytics on API Consumption
Endereça questões como: Atenção:
Não despreze a latência
Gateway não resolve tudo mas
ajuda em várias questões não
funcionaisRate Limiting Policy
JSON Threat Policy
Payload Size Policy
IP Filtering Policy
Obrigado!
Fábio Rosato
fabio.rosato@sensedia.com
@frosato
www.slideshare.net/frosato/
Vantagens e desvantagens de uma
arquitetura microservices

Mais conteúdo relacionado

Mais procurados

Armazenamento em nuvem
Armazenamento em nuvemArmazenamento em nuvem
Armazenamento em nuvem
Tuesla Santos
 

Mais procurados (20)

Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Seminário Computação em Nuvem
Seminário Computação em NuvemSeminário Computação em Nuvem
Seminário Computação em Nuvem
 
Modelo documentacao-rede
Modelo documentacao-redeModelo documentacao-rede
Modelo documentacao-rede
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Endereçamento IPV4
Endereçamento IPV4Endereçamento IPV4
Endereçamento IPV4
 
Prazer, computação em nuvem
Prazer, computação em nuvemPrazer, computação em nuvem
Prazer, computação em nuvem
 
Arquitetura de microsserviços
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviços
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Monitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaMonitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - Monografia
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
223: Modernization and Migrating from the ESB to Containers
223: Modernization and Migrating from the ESB to Containers223: Modernization and Migrating from the ESB to Containers
223: Modernization and Migrating from the ESB to Containers
 
Git hub
Git hubGit hub
Git hub
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in action
 
Armazenamento em nuvem
Armazenamento em nuvemArmazenamento em nuvem
Armazenamento em nuvem
 
OpenNebula Networking - Rubén S. Montero
OpenNebula Networking - Rubén S. MonteroOpenNebula Networking - Rubén S. Montero
OpenNebula Networking - Rubén S. Montero
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 

Destaque

UFF Tech 2013 - Segurança no Cloud - Álvaro Teófilo, Produban (Banco Santander)
UFF Tech 2013 - Segurança no Cloud -  Álvaro Teófilo, Produban (Banco Santander)UFF Tech 2013 - Segurança no Cloud -  Álvaro Teófilo, Produban (Banco Santander)
UFF Tech 2013 - Segurança no Cloud - Álvaro Teófilo, Produban (Banco Santander)
Sti Uff
 
Vida longa para soa com microservices
Vida longa para soa com microservicesVida longa para soa com microservices
Vida longa para soa com microservices
Fábio Rosato
 

Destaque (20)

Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Introdução à Microservices
Introdução à MicroservicesIntrodução à Microservices
Introdução à Microservices
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Microservices
MicroservicesMicroservices
Microservices
 
Repensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsRepensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIs
 
Vida longa para SOA com microservices
Vida longa para SOA com microservicesVida longa para SOA com microservices
Vida longa para SOA com microservices
 
Testes em uma startup do mundo financeiro
Testes em uma startup do mundo financeiroTestes em uma startup do mundo financeiro
Testes em uma startup do mundo financeiro
 
UFF Tech 2013 - Segurança no Cloud - Álvaro Teófilo, Produban (Banco Santander)
UFF Tech 2013 - Segurança no Cloud -  Álvaro Teófilo, Produban (Banco Santander)UFF Tech 2013 - Segurança no Cloud -  Álvaro Teófilo, Produban (Banco Santander)
UFF Tech 2013 - Segurança no Cloud - Álvaro Teófilo, Produban (Banco Santander)
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
 
APIs Atributos e Tecnologia
APIs Atributos e TecnologiaAPIs Atributos e Tecnologia
APIs Atributos e Tecnologia
 
Gestão de projetos consultivos com base em metodologias ágeis
Gestão de projetos consultivos com base em metodologias ágeisGestão de projetos consultivos com base em metodologias ágeis
Gestão de projetos consultivos com base em metodologias ágeis
 
Vida longa para soa com microservices
Vida longa para soa com microservicesVida longa para soa com microservices
Vida longa para soa com microservices
 
Admin Externo
Admin ExternoAdmin Externo
Admin Externo
 
Qualific vaa 2009
Qualific vaa 2009Qualific vaa 2009
Qualific vaa 2009
 
Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...
Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...
Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...
 
Expondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travadosExpondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travados
 
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
 
O poder das APIs
O poder das APIsO poder das APIs
O poder das APIs
 

Semelhante a Vantagens e desvantagens de uma arquitetura microservices

Joana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático www
Joana Costa
 
Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011
Universal.org.mx
 
Saiba como se tornar um profissional especialista em
Saiba como se tornar um profissional especialista emSaiba como se tornar um profissional especialista em
Saiba como se tornar um profissional especialista em
Fabio Hara
 
Lync Server 2010 - Arquitetura
Lync Server 2010 - ArquiteturaLync Server 2010 - Arquitetura
Lync Server 2010 - Arquitetura
brunoestrozi
 

Semelhante a Vantagens e desvantagens de uma arquitetura microservices (20)

DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Joana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático www
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011Modelagem de sistemas da informação – aula 03 mai2011
Modelagem de sistemas da informação – aula 03 mai2011
 
Saiba como se tornar um profissional especialista em
Saiba como se tornar um profissional especialista emSaiba como se tornar um profissional especialista em
Saiba como se tornar um profissional especialista em
 
Aula sobre Sistemas Distribuidos Atualizado
Aula sobre Sistemas Distribuidos AtualizadoAula sobre Sistemas Distribuidos Atualizado
Aula sobre Sistemas Distribuidos Atualizado
 
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaTdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
 
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
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Microservices
MicroservicesMicroservices
Microservices
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018
 
Microservices
MicroservicesMicroservices
Microservices
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
Um método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviços
 
Lync Server 2010 - Arquitetura
Lync Server 2010 - ArquiteturaLync Server 2010 - Arquitetura
Lync Server 2010 - Arquitetura
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 

Vantagens e desvantagens de uma arquitetura microservices