Pular para o conteúdo principal

🚀 O que é o PM2?

O PM2 é um gerenciador de processos avançado para aplicações Node.js, projetado para facilitar a execução, monitoramento e manutenção de aplicações em ambientes de produção. Ele garante que sua aplicação permaneça online, reiniciando-a automaticamente em caso de falhas e oferecendo recursos adicionais como balanceamento de carga e monitoramento de desempenho.


🔍 Principais Vantagens do PM2

  1. Gerenciamento Simplificado de Processos: Com comandos simples como pm2 start, pm2 stop, pm2 restart e pm2 delete, você pode controlar facilmente os processos da sua aplicação.

  2. Balanceamento de Carga com Modo Cluster: O PM2 permite distribuir automaticamente as requisições entre múltiplas instâncias da aplicação, aproveitando todos os núcleos da CPU disponíveis e melhorando o desempenho.

  3. Gerenciamento Centralizado de Logs: Visualize e analise os logs da sua aplicação de forma consolidada com o comando pm2 logs.

  4. Implantações Sem Downtime: Atualize sua aplicação sem interrupções utilizando o comando pm2 reload, garantindo uma experiência contínua para os usuários.

  5. Monitoramento Integrado: Acompanhe métricas como uso de CPU, memória e status dos processos em tempo real com o comando pm2 monit.


🛠️ Como Utilizar o PM2 na SaveinCloud

Na plataforma, você pode integrar o PM2 à sua aplicação Node.js de duas maneiras principais:

1️⃣ - Selecionando a Tag "PM2" ao Criar o Ambiente

Durante a criação de um novo ambiente na SaveinCloud, você pode optar por uma imagem pré-configurada que já inclui o Node.js e o PM2 instalados. Essa opção agiliza o processo de deploy, permitindo que sua aplicação seja gerenciada pelo PM2 desde o início.

PM2 Topologia

2️⃣ - Configurando o PM2 via Variáveis de Ambiente

Se você já possui um ambiente em execução, é possível configurar o PM2 utilizando variáveis de ambiente.

Variáveis de Ambiente - Parte 1

Variáveis de Ambiente - Parte 2


📄 Configuração do Arquivo ecosystem.config.js

Para que o PM2 gerencie sua aplicação corretamente, é necessário criar um arquivo de configuração chamado ecosystem.config.js no diretório /home/jelastic/ROOT. Este arquivo define como o PM2 deve iniciar e monitorar sua aplicação.

Você pode gerar um arquivo de configuração básico com o seguinte comando:

pm2 init simple

Exemplo de conteúdo para o ecosystem.config.js:

module.exports = {
apps: [
{
name: "nome-aplicacao",
script: "./server.js",
autorestart: true,
},
],
};

Explicação dos Campos:

  • name: Nome do processo da aplicação.
  • script: Arquivo de entrada da aplicação (por exemplo, server.js).
atenção

🔒 Certifique-se de liberar no firewall a porta que sua aplicação utiliza para garantir o funcionamento correto.

🔗 Para aprender sobre Gestão de Firewall, clique aqui!


🧰 Comandos Úteis do PM2

  • pm2 start nome-aplicacao: Inicia a aplicação.

  • pm2 stop nome-aplicacao: Interrompe a aplicação.

  • pm2 delete nome-aplicacao: Remove a aplicação do PM2.

  • pm2 restart nome-aplicacao: Reinicia a aplicação.

  • pm2 reload nome-aplicacao: Recarrega a aplicação sem downtime.

  • pm2 start aplicacao.js -i max: Inicia a aplicação em modo cluster, utilizando todos os núcleos disponíveis.

  • pm2 list: Lista todas as aplicações gerenciadas pelo PM2.

  • pm2 monit: Exibe o monitoramento em tempo real das aplicações.

  • pm2 logs: Exibe os logs das aplicações.

  • pm2 save: Salva o estado atual das aplicações para restauração futura.

info

💡 Lembre-se de armazenar o seu arquivo package.json dentro do diretório da variável $ROOT_DIR (por padrão, é o /home/jelastic/ROOT), pois a plataforma executará o comando npm install para instalar as dependências contidas em seu arquivo (a variável de ambiente $UPDATE_PACKAGES_ON_RESTART precisa estar com o valor true).