🚀 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
-
Gerenciamento Simplificado de Processos: Com comandos simples como
pm2 start
,pm2 stop
,pm2 restart
epm2 delete
, você pode controlar facilmente os processos da sua aplicação. -
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.
-
Gerenciamento Centralizado de Logs: Visualize e analise os logs da sua aplicação de forma consolidada com o comando
pm2 logs
. -
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. -
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.
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.
📄 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).
🔒 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.
💡 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
).