Microservices 
@andrefaria
Aplicações Monolíticas 
http://martinfowler.com/articles/microservices.html
https://www.youtube.com/watch?v=CriDUYtfrjs
Mas qual é o problema?
desenvolvedores 
intimidados 
(medo de mudar)
fazer deploy de tudo para mudar 
um único componente
aumenta o risco de 
falha
maior tempo de 
testes
IDEs e Webservers 
sobrecarregados
Dificuldades de escalar 
desenvolvimento (exige 
muita coordenação)
Requer compromisso 
de longo prazo com 
tecnologias
http://martinfowler.com/articles/microservices.html
O que eu ganho com isso?
Desenvolvimento 
mais simples
Adeus classpath hell!
Build e Deploy 
mais rápidos
Desenvolvimento 
escalável com equipes 
mais autônomas
Mais liberdade para usar 
tecnologias diferentes
Maior isolamento 
e menor risco de 
falha
E os quais os 
problemas?
Maior complexidade de 
distribuição e operações
Gestão de múltiplos 
bancos de dados e 
transações
Testar sistemas 
distribuídos
Coordenação de mudanças 
que afetam vários serviços
A boa notícia é que a comunidade está 
crescendo e novos projetos e padrões para 
resolver esses problemas surgem todos os dias.
http://pt.slideshare.net/aca_it/micro-services-40695502=
http://pt.slideshare.net/aca_it/micro-services-40695502=
Service Discovery and Balancing
http://pt.slideshare.net/RuslanMeshenberg/dev309-from-asgard-to-zuul-netflix-ossfinal
Reactive Programming
Web app particionado, qual a URL base? 
http://pt.slideshare.net/chris.e.richardson/microservices-decomposing-applications-for-deployability-and-scalability-jax
Como comunicar entre os serviços? 
JSON / REST 
Protocol Buffers 
Thrift 
AMQP
http://pt.slideshare.net/chris.e.richardson/microservices-decomposing-applications-for-deployability-and-scalability-jax
http://pt.slideshare.net/xfornesa/microservice-architecture
blog.andrefaria.com 
andrefaria.com @andrefaria

Introdução à Microservices