SlideShare a Scribd company logo
1 of 39
Download to read offline
Microservices
Tiago Dolphine
Tiago Marchetti Dolphine
tiagodolphine@gmail.com
@tiagodolphine
Sobre?
Agenda
• O que é ? como surgiu? Porque?
• Decompondo uma aplicação em microservices
• Comunicação e integração
• Estrutura básica
• Desafios (micro?)
• Case de arquitetura microservices
Vamos imaginar que estamos desenvolvendo
uma loja virtual ...
Browser /
Mobile App
App Server/Container (Tomcat/Jetty)
Framework (Spring/JavaEE)
LB
X Scaling
DB
Front End
Framework
Product Svc
Order Svc
Pricing Svc
Stock Svc
ORM
(Hibernate)
Aplicação Monolítica
Simplicidade em:
• Desenvolver
• Testar
• Deploy
• Escalar
É natural pois é como aprendemos !
Aplicação Monolítica
Porém...
• Crescimento do negócio
• Aumento da complexidade
do negócio
E para os desenvolvedores?
E para os desenvolvedores?
Enquanto isso em nossa loja virtual ...
Aumento de vendas 
Serviço de Pedidos  Gargalo
Vamos escalar nossa aplicação !
App Server/Container (Tomcat/Jetty)
Framework (Spring/JavaEE)
Front End
Framework
Product Svc
Order Svc
Pricing Svc
Stock Svc
ORM
(Hibernate)
App Server/Container (Tomcat/Jetty)
Framework (Spring/JavaEE)
Front End
Framework
Product Svc
Order Svc
Pricing Svc
Stock Svc
ORM
(Hibernate)
App Server/Container (Tomcat/Jetty)
Framework (Spring/JavaEE)
Front End
Framework
Product Svc
Order Svc
Pricing Svc
Stock Svc
ORM
(Hibernate)
App Server/Container (Tomcat/Jetty)
Framework (Spring/JavaEE)
Front End
Framework
Product Svc
Order Svc
Pricing Svc
Stock Svc
ORM
(Hibernate)
• Custos desnecessários (Cloud $$)
• Subaproveitamento de recurso
computacional
Preciso escalar toda a aplicação !
http://microservices.io/articles/scalecube.html
Alguns pontos negativos
• Redeploy de toda a aplicação para pequenas mudanças
• Alto tempo de interrupções
• Risco de falhas
• Dificulta mudanças
• Updates menos frequentes
A microservice architecture builds software as suites of collaborating
services.
(Martin Fowler)
O que é? Qual vantagem?
• Conjunto de pequenos serviços
• Foco em funcionalidade
• Independência
• Tecnologias heterogêneas e poliglotas
• Escalabilidade em gargalos
• DRY  Reuso de funcionalidades
• Deploy independente (favorece CI/CD)
• Equipes menores e focadas
Como definir um bom microservice?
• Funcionalidades relacionados devem ficar juntas
• Baixo acoplamento / Alta coesão
• Estudar e delimitar o escopo do serviço
• Modelar pensando em funcionalidades, não nos dados
• Bounded Contexts (modelo interno e modelo exposto)
• Módulos (app monólítica) candidatos a microservices
O menor possível, porém grande o suficiente para
representar o seu domínio
Como ficaria nossa loja virtual?
Browser /
Mobile App
LB
Y Scaling
DB
Micro container framework
Order Svc
DB
Stock Svc
Front End
DB
Product Svc
DB
Pricing Svc
http://microservices.io/articles/scalecube.html
Integração e comunicação
• Como um serviço se comunica com outro?
Chamada à funções  Chamadas à APIs remotas
• Síncrono: request/response
• Assíncrono: request/callback
Orquestração vs coreografia
Vamos pensar no processo de criação de um novo cliente
Um serviço gerencia quando tomar ações Cada serviço sabe quando tomar ações diante de um evento
REST
• Mecanismo síncrono
• Recurso  É o foco do serviço
• Desacoplamento do exposto para o armazenado
• HTTP
• Semântica e verbos (ex: GET, POST, PUT, DELETE)
• Caching proxies
• Load balancers
• Ferramentas de monitoramento
• Métodos de segurança
API Gateway
API
GW
Web
App
Mobile
App
Customer
Product
Stock
Pricing
• Ponto único de entrada
• Agregação de dados
• API otimizada para diferentes
clientes
• Evita exposição de dados
desnecessários
• Tradução de protocolo
• Cross domain e Same-origin policy
Mensageria
• Mecanismo assíncrono (baseado em eventos)
• Publish/Subscribe
• Incentiva a coreografia e baixo acoplamento
• Padrões para mensagens (AMQP, JMS...)
• Message Broker (RabbitMQ, ActiveMQ, HornetQ...)
• Aumenta complexidade
Híbrido
Stock
Pricing
Email
TopicOrderFrontEnd
Product
CustomerDB
REST/HTTP
Vamos pensar num fluxo de compra
Falhas são inevitáveis
• Estar preparado para falhas
• Assumir que as chamadas e serviços podem falhar
• Rede é instável
• Recuperação à falhas
• Adotar este pensamento em tudo que for desenvolvido
Estrutura básica de um Microservice
Recursos
Serviço
Modelo
do Domínio
Repositórios
ORM / Framework Dados
Gateway
Recursos
Serviço
Modelo
doDomínio
Repositórios
ORM/Framework
Dados
Gateway
Deploy
• Instância
• Serviços isolados
• Sem conflito de recursos
• Aloca todo recurso disponível
• Virtual Machine
• Facilidade de escalar  add mais VMs
• Controle de CPU e memória
• VM lenta de buildar e startar
• Container
• Rápido para buildar e startar
• Não necessita startar todo SO, apenas o processo do serviço
E como ficam os times de
desenvolvimento?
"Qualquer empresa que projeta um
sistema, inevitavelmente produz um
projeto cuja estrutura é uma cópia
da estrutura de comunicação da
organização“...
• Times multidisciplinares
• Paraleliza mais facilmente o desenvolvimento
• Cada time é responsável (dono) por cada microservice
Microservices no ifood...
Vamos a um exemplo de código
... com Spring boot
https://github.com/tiagodolphine/microservices
Concluindo...
• Maior complexidade!
• Preciso de microservices para o meu problema?
• Estar sempre ciente dos desafios que terei que enfrentar!
• Descoberta de serviços
• Operações transacionais
• Testes
• Monitoramento
• Teorema CAP (consistency, availability, partition tolerance)
• Dia a dia do desenvolvedor mais agitado e divertido 
Algumas referências
• Microservices (Martin Fowler e James Lewis)
• microservices.io (Chris Richardson)
• Building "Bootiful" Microservices with Spring Boot (Josh Long)
• Testing Strategies in a Microservice Architecture (Toby Clemson)
• Building Microservices
Designing Fine Grained Systems (Sam Newman) fev/2015
Tiago Marchetti Dolphine
tiagodolphine@gmail.com
@tiagodolphine
Dúvidas ?
Algumas idéias de tecnologias
• Micro container: Spring Boot, Play, DropWizard
• Comunicação:
• REST : Spring MVC, JAX-RS
• Mensageria: Spring AMQP com RabbitMQ
• Deploy: Container com Docker
• Monitoramento: Logstash, Kibana, NewRelic, Consul
• Service Discovery: Consul

More Related Content

What's hot

Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Giovanni Bassi
 

What's hot (20)

Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
 
Integrating Microservices
Integrating MicroservicesIntegrating Microservices
Integrating Microservices
 
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
 
Amadurecendo Equipes com Microservices
Amadurecendo Equipes com MicroservicesAmadurecendo Equipes com Microservices
Amadurecendo Equipes com Microservices
 
Microservices
MicroservicesMicroservices
Microservices
 
A plataforma Azure da Microsoft
A plataforma Azure da MicrosoftA plataforma Azure da Microsoft
A plataforma Azure da Microsoft
 
Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão Geral
 
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura Microservices
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
SQL over SMB3
SQL over SMB3SQL over SMB3
SQL over SMB3
 
Windows Azure na Prática
Windows Azure na PráticaWindows Azure na Prática
Windows Azure na Prática
 
Azure Stack | Visão Geral
Azure Stack | Visão GeralAzure Stack | Visão Geral
Azure Stack | Visão Geral
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvem
 
Microservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenosMicroservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenos
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Windows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSWindows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMS
 
Copa microsoft - Windows Server 2008 R2 - Paulo e Igor
Copa microsoft - Windows Server 2008 R2 - Paulo e IgorCopa microsoft - Windows Server 2008 R2 - Paulo e Igor
Copa microsoft - Windows Server 2008 R2 - Paulo e Igor
 

Viewers also liked

Viewers also liked (20)

Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
TDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring CloudTDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring Cloud
 
Plataforma de Serviços de Infra-estrutura para Gerência de Mobilidade - SBRC/...
Plataforma de Serviços de Infra-estrutura para Gerência de Mobilidade - SBRC/...Plataforma de Serviços de Infra-estrutura para Gerência de Mobilidade - SBRC/...
Plataforma de Serviços de Infra-estrutura para Gerência de Mobilidade - SBRC/...
 
Migrando um legado para micro serviços
Migrando um legado para micro serviçosMigrando um legado para micro serviços
Migrando um legado para micro serviços
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Cloud computing & Spring Framework
Cloud computing & Spring FrameworkCloud computing & Spring Framework
Cloud computing & Spring Framework
 
Qualific vaa 2009
Qualific vaa 2009Qualific vaa 2009
Qualific vaa 2009
 
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
 
O poder das APIs
O poder das APIsO poder das APIs
O poder das APIs
 
Netshoes - API Gateway
Netshoes - API GatewayNetshoes - API Gateway
Netshoes - API Gateway
 
Case Sensedia B2W
Case Sensedia B2WCase Sensedia B2W
Case Sensedia B2W
 
Case Sensedia Catho
Case Sensedia CathoCase Sensedia Catho
Case Sensedia Catho
 
Case Sensedia Cielo
Case Sensedia CieloCase Sensedia Cielo
Case Sensedia Cielo
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
Soa Fundamentos
Soa FundamentosSoa Fundamentos
Soa Fundamentos
 
SOA e APIs: O que muda e o que segue!
SOA e APIs: O que muda e o que segue!SOA e APIs: O que muda e o que segue!
SOA e APIs: O que muda e o que segue!
 
Construindo APIs Mobile
Construindo APIs MobileConstruindo APIs Mobile
Construindo APIs Mobile
 
Repositorio SOA
Repositorio SOARepositorio SOA
Repositorio SOA
 
Governança de Serviços Automatizada na Prática
Governança de Serviços Automatizada na PráticaGovernança de Serviços Automatizada na Prática
Governança de Serviços Automatizada na Prática
 

Similar to Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)

Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Leandro Guimarães
 

Similar to Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015) (20)

Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro Serviços
 
Microserviços
MicroserviçosMicroserviços
Microserviços
 
Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud Computing
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?
 
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
 
LightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicaçõesLightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicações
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsGUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com HolyLatinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com Holy
 
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicações
 
Introdução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWSIntrodução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na 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)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 

Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)

  • 3. Agenda • O que é ? como surgiu? Porque? • Decompondo uma aplicação em microservices • Comunicação e integração • Estrutura básica • Desafios (micro?) • Case de arquitetura microservices
  • 4. Vamos imaginar que estamos desenvolvendo uma loja virtual ...
  • 5. Browser / Mobile App App Server/Container (Tomcat/Jetty) Framework (Spring/JavaEE) LB X Scaling DB Front End Framework Product Svc Order Svc Pricing Svc Stock Svc ORM (Hibernate) Aplicação Monolítica
  • 6. Simplicidade em: • Desenvolver • Testar • Deploy • Escalar É natural pois é como aprendemos ! Aplicação Monolítica
  • 7. Porém... • Crescimento do negócio • Aumento da complexidade do negócio
  • 8. E para os desenvolvedores?
  • 9. E para os desenvolvedores?
  • 10. Enquanto isso em nossa loja virtual ... Aumento de vendas  Serviço de Pedidos  Gargalo
  • 11. Vamos escalar nossa aplicação !
  • 12. App Server/Container (Tomcat/Jetty) Framework (Spring/JavaEE) Front End Framework Product Svc Order Svc Pricing Svc Stock Svc ORM (Hibernate) App Server/Container (Tomcat/Jetty) Framework (Spring/JavaEE) Front End Framework Product Svc Order Svc Pricing Svc Stock Svc ORM (Hibernate) App Server/Container (Tomcat/Jetty) Framework (Spring/JavaEE) Front End Framework Product Svc Order Svc Pricing Svc Stock Svc ORM (Hibernate) App Server/Container (Tomcat/Jetty) Framework (Spring/JavaEE) Front End Framework Product Svc Order Svc Pricing Svc Stock Svc ORM (Hibernate) • Custos desnecessários (Cloud $$) • Subaproveitamento de recurso computacional Preciso escalar toda a aplicação !
  • 14. Alguns pontos negativos • Redeploy de toda a aplicação para pequenas mudanças • Alto tempo de interrupções • Risco de falhas • Dificulta mudanças • Updates menos frequentes
  • 15. A microservice architecture builds software as suites of collaborating services. (Martin Fowler)
  • 16. O que é? Qual vantagem? • Conjunto de pequenos serviços • Foco em funcionalidade • Independência • Tecnologias heterogêneas e poliglotas • Escalabilidade em gargalos • DRY  Reuso de funcionalidades • Deploy independente (favorece CI/CD) • Equipes menores e focadas
  • 17. Como definir um bom microservice? • Funcionalidades relacionados devem ficar juntas • Baixo acoplamento / Alta coesão • Estudar e delimitar o escopo do serviço • Modelar pensando em funcionalidades, não nos dados • Bounded Contexts (modelo interno e modelo exposto) • Módulos (app monólítica) candidatos a microservices O menor possível, porém grande o suficiente para representar o seu domínio
  • 18. Como ficaria nossa loja virtual?
  • 19. Browser / Mobile App LB Y Scaling DB Micro container framework Order Svc DB Stock Svc Front End DB Product Svc DB Pricing Svc
  • 21. Integração e comunicação • Como um serviço se comunica com outro? Chamada à funções  Chamadas à APIs remotas • Síncrono: request/response • Assíncrono: request/callback
  • 22. Orquestração vs coreografia Vamos pensar no processo de criação de um novo cliente Um serviço gerencia quando tomar ações Cada serviço sabe quando tomar ações diante de um evento
  • 23. REST • Mecanismo síncrono • Recurso  É o foco do serviço • Desacoplamento do exposto para o armazenado • HTTP • Semântica e verbos (ex: GET, POST, PUT, DELETE) • Caching proxies • Load balancers • Ferramentas de monitoramento • Métodos de segurança
  • 24. API Gateway API GW Web App Mobile App Customer Product Stock Pricing • Ponto único de entrada • Agregação de dados • API otimizada para diferentes clientes • Evita exposição de dados desnecessários • Tradução de protocolo • Cross domain e Same-origin policy
  • 25. Mensageria • Mecanismo assíncrono (baseado em eventos) • Publish/Subscribe • Incentiva a coreografia e baixo acoplamento • Padrões para mensagens (AMQP, JMS...) • Message Broker (RabbitMQ, ActiveMQ, HornetQ...) • Aumenta complexidade
  • 27. Falhas são inevitáveis • Estar preparado para falhas • Assumir que as chamadas e serviços podem falhar • Rede é instável • Recuperação à falhas • Adotar este pensamento em tudo que for desenvolvido
  • 28. Estrutura básica de um Microservice Recursos Serviço Modelo do Domínio Repositórios ORM / Framework Dados Gateway Recursos Serviço Modelo doDomínio Repositórios ORM/Framework Dados Gateway
  • 29. Deploy • Instância • Serviços isolados • Sem conflito de recursos • Aloca todo recurso disponível • Virtual Machine • Facilidade de escalar  add mais VMs • Controle de CPU e memória • VM lenta de buildar e startar • Container • Rápido para buildar e startar • Não necessita startar todo SO, apenas o processo do serviço
  • 30. E como ficam os times de desenvolvimento?
  • 31. "Qualquer empresa que projeta um sistema, inevitavelmente produz um projeto cuja estrutura é uma cópia da estrutura de comunicação da organização“...
  • 32. • Times multidisciplinares • Paraleliza mais facilmente o desenvolvimento • Cada time é responsável (dono) por cada microservice
  • 34.
  • 35. Vamos a um exemplo de código ... com Spring boot https://github.com/tiagodolphine/microservices
  • 36. Concluindo... • Maior complexidade! • Preciso de microservices para o meu problema? • Estar sempre ciente dos desafios que terei que enfrentar! • Descoberta de serviços • Operações transacionais • Testes • Monitoramento • Teorema CAP (consistency, availability, partition tolerance) • Dia a dia do desenvolvedor mais agitado e divertido 
  • 37. Algumas referências • Microservices (Martin Fowler e James Lewis) • microservices.io (Chris Richardson) • Building "Bootiful" Microservices with Spring Boot (Josh Long) • Testing Strategies in a Microservice Architecture (Toby Clemson) • Building Microservices Designing Fine Grained Systems (Sam Newman) fev/2015
  • 39. Algumas idéias de tecnologias • Micro container: Spring Boot, Play, DropWizard • Comunicação: • REST : Spring MVC, JAX-RS • Mensageria: Spring AMQP com RabbitMQ • Deploy: Container com Docker • Monitoramento: Logstash, Kibana, NewRelic, Consul • Service Discovery: Consul