Upload
fabio-rosato
View
138
Download
1
Embed Size (px)
DESCRIPTION
A arquitetura de micro-serviços é fundamentada na explosão de uma aplicação grande e monolítica em um conjunto de APIs e componentes muito pequenos, com baixíssima capacidade funcional, visando independência e autonomia dessas pequenas partes. Nessa palestra vamos explorar alguns casos de uso desse estilo arquitetural, as motivações para a utilização da arquitetura de micro-serviços, comparando-a com as abordagens tradicionais de SOA e arquiteturas monolíticas. Veremos também quais os benefícios e desafios na composição das equipes de projetos, na comunicação entre os serviços e no gerenciamento dos dados. Apresentação realizada em 2014 no QCon Rio.
Citation preview
Vida longa para SOA com Microservices
Fábio [email protected]@frosato
Sobre a Sensedia
Design, Exposição, Gerenciamento e Engajamento em APIs
Headquarter em Campinas, escritórios em São Paulo, Rio e Philadelphia
Classificados como Visionários no Quadrante Mágico do Gartner
(*) Magic Quadrant for Integrated SOA Governance Technology Sets, 2009
Contextualização
Como minimizar?
Microservices
A essência de microservices não
é nova
A arquitetura de microservices é
fundamentada na criação de um
conjunto de APIs e componentes
muito pequenos, com baixíssima capacidade funcional
2008
Tudo em umaWebApp (.war)
2010
100s de microservices
Arquitetura Monolítica
Funcionalidades em um único processo…
…em uma única Instância de servidor…
…e escala por replicação
Arquitetura Microservices
Cada elemento funcional em um serviço…
...e escala esses serviços em servidores, replicando se necessário
Fonte: The Art of Scalability
DecompondoAplicações
emServiços
The ScaleCube
Decomposição• Colocar a aplicação com o
modelo de domínioDecompondoAplicações
emServiços
* Cuidado com nanoservices
-
-
-
Independência
Autonomia
Entrega contínua
- Serviços focados
- Escalabilidade
-
-
-
Sistema distribuído
Testes
DevOps Skill
- Replicações de dados e regras
- Transação
EspecialistasUX
Lei de Conway
EspecialistasMiddleware
EspecialistasDBAs xyz
Partners’ AppsMobile Apps
Time multi-funcional Governança descentralizada
Realtime API Traffic
https://api.[you].com/…
Powered by
API Gateway
Service aggregation
Rate Limiting
Monitoring & Alerts
Authentication Models
Policy Enforcement
Exception handling
Analytics on API Consumption
Partners’ AppsMobile Apps
Internal Services@Backend
API Gateway Pattern
xyz
Partners’ AppsMobile Apps
Monolítica –Database Único
x y z
Partners’ AppsMobile Apps
Descentralização de Dados
Microservices – Application database
Aplicação monolítica
Estratégias paraLegado!
2
Novo Serviço
1 Encapsulamento
Extração total
É SOA?
Princípios da Orientação a Serviços:
Serviços são Reutilizáveis
Serviços compartilham um Contrato formal
Serviços possuem um Baixo Acoplamento
Serviços Abstraem a lógica
Serviços são capazes de se Compor
Serviços são Autônomos
Serviços evitam Alocação de Recursos por longos
períodos
Serviços são capazes de ser Descobertos
SOA: Principles of Service DesignCopyright © 2008 SOA Systems by
Thomas Erl
1
2
3
4
5
6
7
8
Princípios da Orientação a Serviços:
Serviços são Reutilizáveis
Serviços compartilham um Contrato formal
Serviços possuem um Baixo Acoplamento
Serviços Abstraem a lógica
Serviços são capazes de se Compor
Serviços são Autônomos
Serviços evitam Alocação de Recursos por longos
períodos
Serviços são capazes de ser Descobertos
SOA: Principles of Service DesignCopyright © 2008 SOA Systems by
Thomas Erl
1
2
3
4
5
6
7
8
Serviço A Serviço BServiço A Serviço BServiço A
Autonomia
Baixa Alta
Fonte: Thomas Earl
Microservices == SOA
Junte-se ao time!
Fábio [email protected]@frosato
Referências
• http://martinfowler.com/articles/microservices.html
• http://www.thoughtworks.com/insights/blog/microservices-nutshell
• http://pt.slideshare.net/stonse/microservices-at-netflix?next_slideshow=1
• http://qconlondon.com/dl/qcon-london-
2014/slides/BrianDegenhardt_RealTimeSystemsAtTwitter.pdf