Série Node.js: Rodando suave…

Olá!

[English Version]

Esta é a parte 5 da minha série Node.js, dê uma olhada nos posts anteriores!

Até agora na série, determinamos que há muitas vantagens em migrar para o Node.js, desde a facilidade de adoção da equipe de programadores até o desempenho, mas ele precisa de algumas ferramentas.

Ao executar seu código diretamente do node ou do do npm, como acontece em qualquer outra linguagem, ocorrerão erros, e você não quer que seus serviços sejam interrompidos sempre que alguém esquecer de tratar alguma exceção. Você também desejará fornecer continuamente atualizações de código sem que os clientes experimentem o tempo fora do ar ou a redução do desempenho.

Para conseguir isso, você deveria verificar o PM2 , da Keymetrics.

Essa ferramenta não apenas manterá seu código em execução, mas também fornecerá ferramentas profissionais para monitorar, gerenciar e até mesmo debugar seu código de execução.

Se você já tem o Node.js instalado, tudo o que você precisa fazer é executar isso no seu console:

npm install pm2 -g

Uma vez que você o tenha, é fácil rodar o seu primeiro código, se você tiver um arquivo javascript que roda com o Node, digamos que seja chamado myservice.js, você pode iniciá-lo executando o código abaixo. Para este exemplo, estou usando o código que eu postei anteriormente, dê uma olhada!

pm2 start myservice.js

Se o seu console retornar algo assim, você está no caminho certo:

[PM2] Starting /myservice.js in fork_mode (1 instance)
[PM2] Done.
⇆  PM2+ activated | Web: https://app.pm2.io/#/r/MY_ID | Server: vrsbrazil | Conn: Axon
PM2+ on-premise link: root.keymetrics.io
┌───────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────────┬──────────┐
│ App name  │ id │ mode │ pid  │ status │ restart │ uptime │ cpu │ mem       │ user     │ watching │
├───────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────────┼──────────┤
│ myservice │ 0  │ fork │ 7398 │ online │ 0       │ 0s     │ 0%  │ 12.8 MB   │ vrsbrazil│ disabled │
└───────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────────┴──────────┘
 Use `pm2 show ` to get more details about an app

Então essa é a parte em que fica interessante. Se você fizer olhar a linha 3, você verá uma URL, o ID aqui está obviamente alterado, mas uma vez que você o execute em sua máquina e acessar este link, você chegará à página de monitoramento em nuvem, que se parecerá com isto:

Captura de tela de 2018-08-02 11-43-21

Como você pode ver, este é obviamente um recurso pago, mas pode realmente melhorar a sua vida. Se você tem até 4 processos, você pode usar a versão gratuita e, na verdade, há muito a fazer com ela, o monitoramento em tempo real oferecido é bastante útil, mas há muitos recursos que você pode obter com o pago.

Captura de tela de 2018-08-02 11-59-15

De volta ao console, como eu mencionei no começo, você vai querer ter seu serviço à prova de falhas e este é um dos recursos pré-construídos, caso seu código falhe, o PM2 irá reiniciar automaticamente para você. É claro que é necessário ter uma maneira de garantir que seus processos sejam iniciados automaticamente, caso você precise reiniciar o servidor. Para fazer isso, tudo o que você precisa fazer é executar isso em seu console:

pm2 startup

O console retornará o próximo comando que você precisa para executar, a fim de permitir que ele inicie em tempo de boot, no meu caso, é isso que eu recebi:

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/vrsbrazil/.npm-global/lib/node_modules/pm2/bin/pm2 startup systemd -u vrsbrazil --hp /home/vrsbrazil

Garanta que você rodou o comando sugerido e tudo deverá funcionar bem.

Bem, é isso para este post. Espero que você goste e, se puder, deixe-me saber o que você está construindo nos comentários.

Ainda há muito o que falar nessa série do Node.js, então, por favor, siga-me no twitter @vrsbrazil para que você possa ser notificado no próximo post.

Muito obrigado!

Advertisements

One thought on “Série Node.js: Rodando suave…”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s