SlideShare uma empresa Scribd logo
AplicaçõesEscalonáveis
Node Js + Docker
VMvsDocker
Docker
● O que é o Docker ?
“Software containerization platform”
● Compartilha o mesmo kernel
“Lightweight”
● Utiliza UnionFS
“Images are constructed from layered filesystems”
Docker
Docker
● Images
“Template de leitura” - Exemplo Apache com sua aplicação
● Containers
Containers é o que é criado a partir das images Um
diretório
● Registries
Contém imagens publicas e privadas, onde é possível
realizar ações como pull, push
Docker
Executando um container
$ docker run -it ubuntu /bin/bash
DEmonstração!
Docker
● O que acontece quando executamos um container ?
1. Caso não encontre a imagem, faz pull no dockerhub
2. Cria o container
3. Cria interface de rede para comunicação com o host
4. Cria um ip
5. Executa o processo que você especificou
6. Captura o output da aplicação
DockerHub
● Plataforma para distribuir e compartilhar imagens
● Imagens oficiais
● Ambientes “versionados”
● Automatização de Builds
● WebHooks
Estruturadaaplicação
ComoéFeitoHoje
● NodeJs roda em uma thread
● Modulo Cluster
“A single instance of Node.js runs in a single thread. To
take advantage of multi-core systems the user will
sometimes want to launch a cluster of Node.js processes to
handle the load.”
https://nodejs.org/api/cluster.html
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
// Workers can share any TCP connection
// In this case it is an HTTP server
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello worldn');
}).listen(8000);
}
ComoéFeitoHoje
● PM2 (Process Manager)
O PM2 faz toda a lógica utilizada no cluster, para que não
seja necessário fazer isso na aplicação.
Comovamosfazer?
DockerHub
● jwilder/docker-gen
docker-gen is a file generator that renders templates
using docker container meta-data.
Pode ser utilizar para:
● Centralizar logs
● Configuração de Proxy Reverso
DockerHub
● jwilder/nginx-proxy
nginx-proxy sets up a container running nginx and docker-
gen. docker-gen generates reverse proxy configs for nginx
and reloads nginx when containers are started and stopped.
● Permite a configuração dinâmica
docker-gen -only-exposed -watch -notify "/etc/init.d/nginx reload"
templates/nginx.tmpl /etc/nginx/sites-enabled/default
DEmonstração!
Docker
● Vantágens
Ambientes replicáveis
Ambiente como parte do software
Infrastructure as Code!
Open Source
Elimina inconsistência de ambientes
Obrigado=)
@btfidelis004
@btfidelis004
Utilizando Docker para escalonar aplicações Node.Js

Mais conteúdo relacionado

Mais procurados

Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
Carlos Eduardo Alves da Silva
 
TDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prataTDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prata
Bruno Pedroso
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
Carlos Eduardo Alves da Silva
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
Wellington Silva
 
Node JS - Parte 1
Node JS - Parte 1Node JS - Parte 1
Node JS - Parte 1
Bruno Catão
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
Hugo Leonardo Costa e Silva
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
tdc-globalcode
 
Docker Itix
Docker ItixDocker Itix
Docker Itix
Armando Magalhães
 
Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engine
Hudson Brendon
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
Thiago Soares
 
Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)
Wellington Silva
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
Matheus Fidelis
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
Sérgio Lima
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
tdc-globalcode
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
Mauricio Martins
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
Fernando Ike
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
Rafael Dutra
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
Aécio Pires
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
tdc-globalcode
 
Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)
Wellington Silva
 

Mais procurados (20)

Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
TDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prataTDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prata
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Node JS - Parte 1
Node JS - Parte 1Node JS - Parte 1
Node JS - Parte 1
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
 
Docker Itix
Docker ItixDocker Itix
Docker Itix
 
Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engine
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
 
Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)
 

Destaque

Bring N-Tier Apps to containers 2015 ContainerCon
Bring N-Tier Apps to containers  2015 ContainerConBring N-Tier Apps to containers  2015 ContainerCon
Bring N-Tier Apps to containers 2015 ContainerCon
Chris Haddad
 
#DevOps in a windows world - @DevOpsGuys
#DevOps in a windows world - @DevOpsGuys#DevOps in a windows world - @DevOpsGuys
#DevOps in a windows world - @DevOpsGuys
DevOpsGroup
 
Delivering DevOps Automation on Windows
Delivering DevOps Automation on WindowsDelivering DevOps Automation on Windows
Delivering DevOps Automation on Windows
DevOpsGroup
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
Leonardo Cezar
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
Mundo Docker
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
adri1s
 
Modelo de Simulación de una mina a tajo abierto
Modelo de Simulación de una mina a tajo abiertoModelo de Simulación de una mina a tajo abierto
Modelo de Simulación de una mina a tajo abierto
Johanna Gomez Quevedo
 
Debugging (Docker) containers in production
Debugging (Docker) containers in productionDebugging (Docker) containers in production
Debugging (Docker) containers in production
bcantrill
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
Colin LEVERGER
 
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
Amazon Web Services
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Martin Etmajer
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Silicon Comté
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Silicon Comté
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
Jérôme Petazzoni
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
Zenika
 

Destaque (15)

Bring N-Tier Apps to containers 2015 ContainerCon
Bring N-Tier Apps to containers  2015 ContainerConBring N-Tier Apps to containers  2015 ContainerCon
Bring N-Tier Apps to containers 2015 ContainerCon
 
#DevOps in a windows world - @DevOpsGuys
#DevOps in a windows world - @DevOpsGuys#DevOps in a windows world - @DevOpsGuys
#DevOps in a windows world - @DevOpsGuys
 
Delivering DevOps Automation on Windows
Delivering DevOps Automation on WindowsDelivering DevOps Automation on Windows
Delivering DevOps Automation on Windows
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Modelo de Simulación de una mina a tajo abierto
Modelo de Simulación de una mina a tajo abiertoModelo de Simulación de una mina a tajo abierto
Modelo de Simulación de una mina a tajo abierto
 
Debugging (Docker) containers in production
Debugging (Docker) containers in productionDebugging (Docker) containers in production
Debugging (Docker) containers in production
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 

Semelhante a Utilizando Docker para escalonar aplicações Node.Js

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
Benicio Ávila
 
Docker
DockerDocker
Olá docker
Olá dockerOlá docker
Olá docker
Marcos Ellys
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
dadalt1
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
Evandro Silvestre
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
Eustaquio Guimaraes mendesbsb
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
Aécio Pires
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
Gustavo Corrêa Alves
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
André Justi
 
Aulão de docker
Aulão de dockerAulão de docker
Aulão de docker
Renato Lucena
 
Programação para Web II: NodeJS
Programação para Web II:  NodeJSProgramação para Web II:  NodeJS
Programação para Web II: NodeJS
Alex Camargo
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
Wallison Marra
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
Rhuan Karlus Silva
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
Carlos Andre Fernandes
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Rodrigo Cândido da Silva
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
Bruno Ricardo Siqueira
 
Docker
DockerDocker
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
Fernando Ike
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
Uira Ribeiro
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
André Justi
 

Semelhante a Utilizando Docker para escalonar aplicações Node.Js (20)

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker
DockerDocker
Docker
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Aulão de docker
Aulão de dockerAulão de docker
Aulão de docker
 
Programação para Web II: NodeJS
Programação para Web II:  NodeJSProgramação para Web II:  NodeJS
Programação para Web II: NodeJS
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Docker
DockerDocker
Docker
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 

Mais de KingHost - Hospedagem de sites

KingCode: o Culture Code da KingHost
KingCode: o Culture Code da KingHostKingCode: o Culture Code da KingHost
KingCode: o Culture Code da KingHost
KingHost - Hospedagem de sites
 
Painel: Batalha de Programador
Painel: Batalha de ProgramadorPainel: Batalha de Programador
Painel: Batalha de Programador
KingHost - Hospedagem de sites
 
Web Components e o desenvolvimento de aplicações web modernas
Web Components e o desenvolvimento de aplicações web modernasWeb Components e o desenvolvimento de aplicações web modernas
Web Components e o desenvolvimento de aplicações web modernas
KingHost - Hospedagem de sites
 
Front vs Back: Tornando o mundo Web mais fácil
Front vs Back: Tornando o mundo Web mais fácil Front vs Back: Tornando o mundo Web mais fácil
Front vs Back: Tornando o mundo Web mais fácil
KingHost - Hospedagem de sites
 
Programação na Indústria de Jogos
Programação na Indústria de JogosProgramação na Indústria de Jogos
Programação na Indústria de Jogos
KingHost - Hospedagem de sites
 
[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online
[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online
[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online
KingHost - Hospedagem de sites
 
[Webinar] Refatoração em PHP
[Webinar] Refatoração em PHP[Webinar] Refatoração em PHP
[Webinar] Refatoração em PHP
KingHost - Hospedagem de sites
 
[E-book] Como criar e manter um site ou blog com o Wordpress
[E-book] Como criar e manter um site ou blog com o Wordpress[E-book] Como criar e manter um site ou blog com o Wordpress
[E-book] Como criar e manter um site ou blog com o Wordpress
KingHost - Hospedagem de sites
 
[E-book] Como minha empresa pode explorar as redes sociais
[E-book] Como minha empresa pode explorar as redes sociais[E-book] Como minha empresa pode explorar as redes sociais
[E-book] Como minha empresa pode explorar as redes sociais
KingHost - Hospedagem de sites
 
[Whitepaper] SSL Kinghost
[Whitepaper] SSL Kinghost[Whitepaper] SSL Kinghost
[Whitepaper] SSL Kinghost
KingHost - Hospedagem de sites
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL
KingHost - Hospedagem de sites
 

Mais de KingHost - Hospedagem de sites (11)

KingCode: o Culture Code da KingHost
KingCode: o Culture Code da KingHostKingCode: o Culture Code da KingHost
KingCode: o Culture Code da KingHost
 
Painel: Batalha de Programador
Painel: Batalha de ProgramadorPainel: Batalha de Programador
Painel: Batalha de Programador
 
Web Components e o desenvolvimento de aplicações web modernas
Web Components e o desenvolvimento de aplicações web modernasWeb Components e o desenvolvimento de aplicações web modernas
Web Components e o desenvolvimento de aplicações web modernas
 
Front vs Back: Tornando o mundo Web mais fácil
Front vs Back: Tornando o mundo Web mais fácil Front vs Back: Tornando o mundo Web mais fácil
Front vs Back: Tornando o mundo Web mais fácil
 
Programação na Indústria de Jogos
Programação na Indústria de JogosProgramação na Indústria de Jogos
Programação na Indústria de Jogos
 
[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online
[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online
[Webinar] Utilizando o Design Thinking para Melhorar seus Projetos Online
 
[Webinar] Refatoração em PHP
[Webinar] Refatoração em PHP[Webinar] Refatoração em PHP
[Webinar] Refatoração em PHP
 
[E-book] Como criar e manter um site ou blog com o Wordpress
[E-book] Como criar e manter um site ou blog com o Wordpress[E-book] Como criar e manter um site ou blog com o Wordpress
[E-book] Como criar e manter um site ou blog com o Wordpress
 
[E-book] Como minha empresa pode explorar as redes sociais
[E-book] Como minha empresa pode explorar as redes sociais[E-book] Como minha empresa pode explorar as redes sociais
[E-book] Como minha empresa pode explorar as redes sociais
 
[Whitepaper] SSL Kinghost
[Whitepaper] SSL Kinghost[Whitepaper] SSL Kinghost
[Whitepaper] SSL Kinghost
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL
 

Utilizando Docker para escalonar aplicações Node.Js

  • 1.
  • 4. Docker ● O que é o Docker ? “Software containerization platform” ● Compartilha o mesmo kernel “Lightweight” ● Utiliza UnionFS “Images are constructed from layered filesystems”
  • 6. Docker ● Images “Template de leitura” - Exemplo Apache com sua aplicação ● Containers Containers é o que é criado a partir das images Um diretório ● Registries Contém imagens publicas e privadas, onde é possível realizar ações como pull, push
  • 7. Docker Executando um container $ docker run -it ubuntu /bin/bash
  • 9. Docker ● O que acontece quando executamos um container ? 1. Caso não encontre a imagem, faz pull no dockerhub 2. Cria o container 3. Cria interface de rede para comunicação com o host 4. Cria um ip 5. Executa o processo que você especificou 6. Captura o output da aplicação
  • 10. DockerHub ● Plataforma para distribuir e compartilhar imagens ● Imagens oficiais ● Ambientes “versionados” ● Automatização de Builds ● WebHooks
  • 12. ComoéFeitoHoje ● NodeJs roda em uma thread ● Modulo Cluster “A single instance of Node.js runs in a single thread. To take advantage of multi-core systems the user will sometimes want to launch a cluster of Node.js processes to handle the load.” https://nodejs.org/api/cluster.html
  • 13. const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`worker ${worker.process.pid} died`); }); } else { // Workers can share any TCP connection // In this case it is an HTTP server http.createServer((req, res) => { res.writeHead(200); res.end('hello worldn'); }).listen(8000); }
  • 14. ComoéFeitoHoje ● PM2 (Process Manager) O PM2 faz toda a lógica utilizada no cluster, para que não seja necessário fazer isso na aplicação.
  • 16. DockerHub ● jwilder/docker-gen docker-gen is a file generator that renders templates using docker container meta-data. Pode ser utilizar para: ● Centralizar logs ● Configuração de Proxy Reverso
  • 17. DockerHub ● jwilder/nginx-proxy nginx-proxy sets up a container running nginx and docker- gen. docker-gen generates reverse proxy configs for nginx and reloads nginx when containers are started and stopped. ● Permite a configuração dinâmica docker-gen -only-exposed -watch -notify "/etc/init.d/nginx reload" templates/nginx.tmpl /etc/nginx/sites-enabled/default
  • 19. Docker ● Vantágens Ambientes replicáveis Ambiente como parte do software Infrastructure as Code! Open Source Elimina inconsistência de ambientes