Como Rodar Suas Aplicações com PM2: Guia Completo

Se você trabalha com desenvolvimento de aplicações em Node.js, já deve ter percebido a importância de gerenciar seus processos de forma eficiente.

É aqui que o PM2 (Process Manager 2) entra como uma ferramenta indispensável.

Este gerenciador de processos ajuda a manter suas aplicações rodando continuamente, gerenciar múltiplos serviços e até monitorar desempenho de maneira simples e prática.

Neste post, vamos nos aventurar em como rodar suas aplicações com PM2, desde a instalação até as práticas avançadas.

Prepare-se para aprender tudo o que você precisa para otimizar a gestão de seus processos e garantir a máxima confiabilidade em suas aplicações.

O que é o PM2?

PM2 é um gerenciador de processos especializado em aplicações Node.js, mas também suporta outros tipos de scripts.

Ele foi projetado para facilitar o gerenciamento de processos em produção, permitindo que suas aplicações rodem continuamente, mesmo após falhas ou reinicializações do servidor.

Principais características:

  • Daemonização: Garante que suas aplicações continuem rodando em segundo plano.
  • Balanceamento de carga: Gerencia múltiplos processos de uma aplicação, utilizando todos os núcleos da CPU.
  • Monitoramento: Permite visualizar métricas como uso de CPU, memória e status dos processos em tempo real.
  • Logs centralizados: Coleta e organiza logs de suas aplicações para análise.
  • Facilidade de configuração: Simples de usar, mesmo para iniciantes.

Por que Rodar Suas Aplicações com PM2?

Por que Rodar Suas Aplicações com PM2? Trabalhar diretamente com comandos básicos do Node.js, como node app.js, pode ser suficiente em ambientes de desenvolvimento.

No entanto, em produção, é fundamental garantir alta disponibilidade e eficiência.

O PM2 se destaca por automatizar tarefas complexas, economizando tempo e esforço.

Benefícios do PM2:

  1. Resiliência: Reinicia automaticamente aplicações que falham.
  2. Escalabilidade: Suporte para clustering, permitindo rodar várias instâncias da mesma aplicação.
  3. Facilidade de integração: Funciona bem com outras ferramentas e sistemas de CI/CD.
  4. Flexibilidade: Suporte para scripts escritos em Python, Ruby, e outras linguagens, além de Node.js.

Instalando o PM2

Antes de começar, certifique-se de ter o Node.js e o npm instalados no seu sistema.

Caso não tenha, instale-os a partir do site oficial Node.js.

Passo 1: Instale o PM2 globalmente

Abra o terminal e execute o comando:

npm install -g pm2

A flag -g indica que o PM2 será instalado como uma ferramenta global, disponível para qualquer projeto no seu sistema.

Passo 2: Verifique a instalação

Depois de instalado, confirme se o PM2 está funcionando corretamente:

pm2 --version

Isso exibirá a versão instalada.

Rodando uma Aplicação com o PM2

Agora que o PM2 está instalado, vamos ver como utilizá-lo na prática.

Passo 1: Inicie sua aplicação

Para rodar sua aplicação com o PM2, use o comando:

pm2 start app.js

Substitua app.js pelo nome do arquivo principal da sua aplicação.

Passo 2: Verifique o status dos processos

Após iniciar, você pode verificar o status dos processos com:

pm2 list

Este comando exibirá informações como ID do processo, nome, status, uso de CPU/memória e uptime.

Passo 3: Reinicie ou pare processos

  • Para reiniciar um processo:bashCopiar códigopm2 restart app.js
  • Para parar:bashCopiar códigopm2 stop app.js
  • Para remover completamente:bashCopiar códigopm2 delete app.js

Configurando o PM2 para Reinício Automático

Um dos grandes diferenciais do PM2 é a capacidade de reiniciar automaticamente suas aplicações em caso de falhas ou reinicializações do sistema.

Configuração de reinício no sistema

Execute o comando:

pm2 startup

Este comando gera um script que configura o PM2 para iniciar automaticamente junto com o sistema operacional.

Após isso, copie e execute a linha de comando fornecida pelo PM2 para aplicar a configuração.

Monitoramento com PM2: Rodar Suas Aplicações com PM2

O PM2 oferece recursos robustos de monitoramento para ajudar você a entender como suas aplicações estão se comportando.

Visualize métricas em tempo real

Use:

pm2 monit

Este comando abre uma interface interativa no terminal, exibindo métricas como:

  • Uso de CPU
  • Consumo de memória
  • Status do processo

Gerenciando Logs

Manter um registro centralizado dos logs de suas aplicações é essencial para depuração e análise.

Visualize logs no terminal

pm2 logs

Este comando exibe os logs de todos os processos em execução.

Filtre logs de um processo específico

pm2 logs <process_name_or_id>

Substitua <process_name_or_id> pelo nome ou ID do processo que você deseja monitorar.

Usando Arquivos de Configuração com PM2

Para simplificar a gestão de várias aplicações, o PM2 permite usar arquivos de configuração JSON ou YAML.

Estes arquivos ajudam a organizar informações como o caminho do script, variáveis de ambiente e opções de execução.

Exemplo de configuração JSON:

Crie um arquivo chamado ecosystem.config.js:

module.exports = {
apps: [
{
name: "my-app",
script: "app.js",
instances: 2,
exec_mode: "cluster",
env: {
NODE_ENV: "development",
},
env_production: {
NODE_ENV: "production",
},
},
],
};

Inicie os processos com o arquivo de configuração

pm2 start ecosystem.config.js

Recursos Avançados: Rodar Suas Aplicações com PM2

Atualização Zero Downtime

PM2 permite reiniciar processos sem interromper o serviço:

pm2 reload all

Escalabilidade Horizontal

Rode múltiplas instâncias da sua aplicação usando clustering:

pm2 start app.js -i max

O parâmetro -i max utiliza automaticamente todos os núcleos disponíveis do CPU.

Conclusão: Rodar Suas Aplicações com PM2

O PM2 é uma ferramenta poderosa que pode transformar a maneira como você gerencia suas aplicações em produção.

Desde a inicialização simples até funcionalidades avançadas como clustering e monitoramento, ele oferece tudo o que você precisa para garantir o desempenho e a confiabilidade dos seus serviços.

Agora que você sabe como rodar suas aplicações com PM2, experimente implementá-lo em seus projetos e aproveite os benefícios que ele traz para a gestão de processos.

Com o PM2, suas aplicações estarão sempre no ar, prontas para atender seus usuários sem interrupções!

Skills Tecnológicas
Skills Tecnológicas

No Skills Tecnológicas, valorizamos o conhecimento acessível e relevante. Cada post é cuidadosamente elaborado para ser claro, útil e inspirador, independentemente do seu nível de experiência.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *