SlideShare a Scribd company logo
1 of 43
Download to read offline
MICRO SERVIÇOS
COM NODE.JS
BRUNO TRECENTI
trecenti@github /brunotrecenti@twitter
1
t h o u g h t w o r k s . c o m / j o i n
MUDE A CARA DO
MERCADO DE TI
AGENDA
▫︎Micro Serviços
▫︎Um Design Evolucionário
▫︎Um exemplo em Node.js
▫︎Aspectos do teste e implantação
3
MICRO SERVIÇOS
Uma breve definição
4
Pequenos autônomos serviços, que
trabalham em conjunto modelados
em volta de um domínio de negócio.
5
AUTÔNOMOS Podem ser modificados e implantados de forma
independente.
6
Imagem: http://martinfowler.com/articles/microservice-testing/
TRABALHAM
EM
CONJUNTO
Apesar de serem independentes eles
conversam entre eles através de um canal.
7
Service A
Service B
Service C
HTTP
TCP
DOMÍNIO DE
NEGÓCIO
Modelados para representar um domínio de
negócio, geralmente cada parte representa um
modelo ou entidade de todo o negócio.
8
Produtos
Pedidos
Usuários
Comércio Eletrônico
Outros Serviços
DESIGN
EVOLUCIONÁRIO
Evoluindo do monolítico
9
Criar e modificar o design de um
sistema a medida em que ele é
desenvolvido.
10
TRÊS
ASPECTOS
Construindo
Implantando
Mantendo
11
TRÊS
ASPECTOS
Construindo
12
Implantando
Mantendo
O CAMINHO
PARA MICRO
SERVIÇOS
O caminho direto para uma arquitetura de
micro serviços contém muitos riscos.
13
Imagem: http://martinfowler.com/bliki/MonolithFirst.html
MONOLÍTICO
PRIMEIRO
Yagni (You aren’t gonna need it)
Presumir que o sistema precisar de algo no
futuro, não indica que precisa ser construído
agora (por que você pode não precisar)
14
MONOLÍTICO
EVOLUÍNDO
15
MONOLÍTICO
EVOLUINDO
16
MONOLÍTICO
SERVIÇO
Extração
EVOLUINDO
17
MONOLÍTICO
SERVIÇO
HTTP
EVOLUINDO
18
MONOLÍTICO
SERVIÇO A
HTTP
HTTP
SERVIÇO B
Não é para qualquer um!
19
Imagem: http://martinfowler.com/bliki/MicroservicePrerequisites.html
PRÉ-
REQUISITOS
Provisionamento Rápido
Criar servidores de forma rápida e fácil,
geralmente através de automação e servidores
na nuvem.
Monitoramento Básico
Habilidade de identificar e depurar problemas
entre os diferentes serviços.
Implantação Rápida ou Contínua
Implantar de forma contínua os serviços nos
diferentes ambientes (testes, produção, etc). A
cultura de DevOps ajuda na manutenção e
implantação dos serviços.
20
UM EXEMPLO EM
NODE.JS
Como node.js e seus frameworks ajudam a criar micro-serviços
21
22
POR QUE
NODE.JS?
Rápido Provisionamento e fácil implantação
contínua.
Feito para construir sistemas distribuídos.
Mas não é a bala de prata!
Uma vantagem de micro serviços é a
heterogeneidade tecnológica.
23
OBJETIVO
24
OBJETIVO
25
MONOLÍTICO > RESTFUL
26
Routers
restful/api/users.js restful/api/app.js
MONOLÍTICO > RESTFUL
27
Apps
restful/api/app.js restful/app.js
MUDANÇA NA ESTRATÉGIA
DE TESTES
28
Imagem: http://martinfowler.com/articles/microservice-testing/
TESTES NA API
29
> mocha + chai.js
> supertest
> sinon.js
Funcional ou unitário?
Integrar ou mockar?
Testes de Contrato?
TESTES NO CONSUMIDOR
30
> mocha + chai.js
> supertest
> nock / mountebank
> pact
Funcional ou unitário?
Testes de componente?
Contratos dirigidos pelo consumidor?
MUDANÇAS OBSERVADAS
31
Monolítico
▫︎Views + Model
▫︎Controllers
▫︎Testes Unitários +
Funcionais
▫︎Domínio de negócio
acoplado
▫︎Host único
RESTful
▫︎Model + JSON
▫︎REST + HTTP Clients
▫︎Testes Unitários +
Funcionais + Integração +
Contrato + Componente
▫︎Domínio de negócio isolado
▫︎Host único, paths
dedicados
FLEXIBILIDADE E EVOLUÇÃO
32
APP
ROUTERS
APP CONTAINER
ROUTERS
FLEXIBILIDADE E EVOLUÇÃO
33
APP
ROUTERS
APP
ROUTERS
https://192.168.0.1:3000 https://192.168.0.1:3100
RESTFUL > MICRO SERVIÇO
34
Apps autônomas
micro-services/users/app.js
RESTFUL > MICRO SERVIÇO
35
Pensando na infra-estrutura
▫︎Entrega/Integração Contínua
▫︎Provisionamento
▫︎Monitoramento
ENTREGA CONTÍNUA
36
Um grande build
Imagem: http://www.slideshare.net/ThoughtWorks/deploying-operating-microservices
Video: https://www.youtube.com/watch?v=OTSlg7_y3bA
ENTREGA CONTÍNUA
37
Um build por serviço, repositório único
Imagem: http://www.slideshare.net/ThoughtWorks/deploying-operating-microservices
Video: https://www.youtube.com/watch?v=OTSlg7_y3bA
ENTREGA CONTÍNUA
38
Um build por serviço, vários repositórios
Imagem: http://www.slideshare.net/ThoughtWorks/deploying-operating-microservices
Video: https://www.youtube.com/watch?v=OTSlg7_y3bA
PROVISIONAMENTO RÁPIDO
39
PROVISIONAMENTO RÁPIDO
40
Através de APIs
INFRA-ESTRUTURA COM O CÓDIGO
41
MONITORAMENTO
42
brunotrecenti@twitter
trecenti@github
VALEU!

More Related Content

Viewers also liked

Viewers also liked (20)

Auto jornal ed. 116
Auto jornal ed. 116Auto jornal ed. 116
Auto jornal ed. 116
 
Pva 2011 programacao_resumida
Pva 2011 programacao_resumidaPva 2011 programacao_resumida
Pva 2011 programacao_resumida
 
Dia das mães 2011
Dia das mães 2011Dia das mães 2011
Dia das mães 2011
 
PDM San Agustín
PDM San AgustínPDM San Agustín
PDM San Agustín
 
Painel 14 - Radiciação de Números Naturais
Painel 14 - Radiciação de Números NaturaisPainel 14 - Radiciação de Números Naturais
Painel 14 - Radiciação de Números Naturais
 
70km de Ceilandia 2009
70km de Ceilandia 200970km de Ceilandia 2009
70km de Ceilandia 2009
 
Clipagem Asbrav Abril 2011
Clipagem Asbrav Abril 2011Clipagem Asbrav Abril 2011
Clipagem Asbrav Abril 2011
 
Ecoconselheiros 1415
Ecoconselheiros 1415Ecoconselheiros 1415
Ecoconselheiros 1415
 
Plano De Auditoria Tipo
Plano De Auditoria TipoPlano De Auditoria Tipo
Plano De Auditoria Tipo
 
Introducao a-homiletica
Introducao a-homileticaIntroducao a-homiletica
Introducao a-homiletica
 
02 aulas de-auditoria_5
02 aulas de-auditoria_502 aulas de-auditoria_5
02 aulas de-auditoria_5
 
Informativo sicredi abril_2012
Informativo sicredi abril_2012Informativo sicredi abril_2012
Informativo sicredi abril_2012
 
AssistêNcia Ao Parto
AssistêNcia Ao PartoAssistêNcia Ao Parto
AssistêNcia Ao Parto
 
Anuario construtoras ceará 2001
Anuario construtoras ceará 2001Anuario construtoras ceará 2001
Anuario construtoras ceará 2001
 
Banrisul
BanrisulBanrisul
Banrisul
 
Cooperativas BAHIA
Cooperativas BAHIA Cooperativas BAHIA
Cooperativas BAHIA
 
( Espiritismo) # - abrade - enderecos espiritas
( Espiritismo)   # - abrade - enderecos espiritas( Espiritismo)   # - abrade - enderecos espiritas
( Espiritismo) # - abrade - enderecos espiritas
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js Seguras
 
Node.js: serious business
Node.js: serious businessNode.js: serious business
Node.js: serious business
 
Porque você deve aprender VIm hoje.
Porque você deve aprender VIm hoje.Porque você deve aprender VIm hoje.
Porque você deve aprender VIm hoje.
 

Similar to Micro serviços com Node.js

Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Renato Groff
 
Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Renato Groff
 
Microservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendMicroservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendRenato Groff
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...tdc-globalcode
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Renato Groff
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesleopoa
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_jsgustavobeavis
 
Microservices arquitetura - parte1
Microservices arquitetura - parte1Microservices arquitetura - parte1
Microservices arquitetura - parte1Agni Campos
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosGraziella Bonizi
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
Convivendo e migrando para microservices
Convivendo e migrando para microservicesConvivendo e migrando para microservices
Convivendo e migrando para microservicesDanilo Iurovski
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicosLeonardo Eloy
 
Go e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outroGo e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outroElton Minetto
 

Similar to Micro serviços com Node.js (20)

Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015
 
Microservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendMicroservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev Weekend
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservices
 
Microservices 2
Microservices 2Microservices 2
Microservices 2
 
Microservices
MicroservicesMicroservices
Microservices
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
 
Microservices arquitetura - parte1
Microservices arquitetura - parte1Microservices arquitetura - parte1
Microservices arquitetura - parte1
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicos
 
Arquitetura evolutiva
Arquitetura evolutivaArquitetura evolutiva
Arquitetura evolutiva
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Convivendo e migrando para microservices
Convivendo e migrando para microservicesConvivendo e migrando para microservices
Convivendo e migrando para microservices
 
Micro serviços ppt
Micro serviços pptMicro serviços ppt
Micro serviços ppt
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicos
 
Go e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outroGo e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outro
 
MVC MVP MVVM para Web
MVC MVP MVVM para WebMVC MVP MVVM para Web
MVC MVP MVVM para Web
 

Micro serviços com Node.js