• Home  /
  • Artigos   /
  • PM2 – Uma solução para o Node.js

PM2 – Uma solução para o Node.js

Para aqueles que não conhecem o Node.js, ele é uma plataforma construída baseada na V8 Javascript Engine para criação de aplicações escaláveis.

Nesse artigo, iremos falar um pouco sobre a utilização do PM2 para resolver “problemas” de Node.js e deployment.

PM2

O que é?

O PM2 é um gerenciador de processos para aplicações Node.js que permite que a aplicação rode em múltiplos processos.

Por que usar?

Por padrão, o Node.js é executado single-thread devido ao próprio javascript ser projetado dessa forma. Caso ocorra uma exceção no servidor, o processo será parado e consequentemente a aplicação será derrubada.

Utilizando o PM2, caso ocorra alguma exceção, ele irá manter a aplicação no ar reiniciando o servidor.

Além disso, o PM2 possibilita que a aplicação rode em múltiplos processos, assim é possível escalar o servidor utilizando múltiplos cores da CPU e o processamento da aplicação será expandido.

Ainda não entendi

Usemos como base o servidor fornecido na página oficial do Node.js. Após instalar o PM2 podemos subir o servidor usando a linha de comando pm2 start app.js –x no modo fork.

PM2 - Node.js exemplo1

Assim como na imagem acima, no terminal temos a visualização de que o processo foi iniciado com sucesso.

Caso algum problema ocorra na aplicação, utilizando o comando pm2 list poderemos ver que na coluna restart do app, teremos 1 no lugar de 0, indicando que ele precisou reiniciar a aplicação.

PM2 - Node.js exemplo2

Subindo o servidor no modo cluster através do comando pm2 start app.js –i 0 serão iniciados o máximo de processos possíveis por CPU core, como na imagem acima.

Caso algum problema ocorra na aplicação, um dos processos terá o valor de restart modificado.

Como funciona o deploy?

Algumas considerações são necessárias para realizar o deploy com o PM2.

Usando o comando pm2 ecosystem, um arquivo ecosystem.json será gerado na sua pasta. Neste arquivo será possível declarar aplicações com diferentes hosts para o deploy, conforme exemplo abaixo.

PM2 - node.js exemplo3

Para iniciar o deploy é necessário utilizar o comando pm2 deploy setup.

Considerações finais do Autor

Desde que ouvi sobre o PM2 no Meetup de Node.js em Março/2015, identifiquei que muitas são as soluções para múltiplos processos e deploy de Node.js.

Mas assim como falado no evento, é necessário avaliar qual a melhor solução para o seu cenário. Seguem outros links com mais informações sobre o pm2 e como realizar o deploy.

Imasters – Mantendo Node.JS no Ar
Json Deploy
PM2 Advanced Readme

Até a Próxima!

Agradecimentos especiais a Priscila Negreiros pela contribuição com o Tema e desenvolvimento do texto.

 

Related Articles:

—————————————-­—————————————-­—-

Este Post é um oferecimento de Acelerato – Gestão de Projetos ágeis e Help Desk

Não perca tempo, acesse acelerato.com, cadastre-se gratuitamente e descubra como podemos ajudá-lo.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

Leave a comment