Deployando seu projeto em node.js no Heroku

Recentemente andei brincando com esta linda tecnologia que é o Node.js juntamente com o framework Express para criar algumas aplicações web que facilitassem algumas tarefas do meu dia a dia.

Ao terminar de desenvolver (o que foi uma atividade extremamente ágil e divertida), comecei a procurar alguma plataforma (PaaS) ou infraestrutura (IaaS) onde eu pudesse deixar a minha aplicação rodando. Foi então que encontrei o Heroku.

O Heroku é uma plataforma na Cloud onde é possível fazer o deploy das nossas aplicações e ele faz todo o gerenciamento pra você. Existem muitos planos disponíveis assim como plugins (pagos e gratuitos) que são possíveis integrar a sua aplicação, mas no meu caso fiquei com o plano gratuito que, apesar de suas limitações de espaço e disponibilidade, foram mais que o suficiente para satisfazer as minhas necessidades.

O que eu achei mais interessante sobre o Heroku é a facilidade com que o código sai de desenvolvimento e vai para a produção. A plataforma oferece três maneiras de fazer o deploy: Heroku Git, GitHub e Dropbox.

Vamos entender cada um deles.

Opções de deploy do Heroku

Mas antes de tudo, vamos configurar a nossa aplicação…

Para que a mágica toda funcione, é necessário entender um pouco como o Heroku funciona. Ao tentar deployar, o Heroku acessa o package.json do seu projeto e busca pelo script de “start”. Caso você não tenha configurado no seu projeto, será algo semelhante a isto:

“scripts”: {
 “start”: “node index.js”,
 “test”: “echo \”Error: no test specified\” && exit 1"
 },

No meu caso, o arquivo index.js é o ponto de entrada da minha aplicação. Uma vez que isto esteja correto, ele vai baixar todas as dependências do seu projeto, declaradas também no package.json. Por exemplo na minha aplicação:

“dependencies”: {
 “body-parser”: “^1.15.0”,
 “express”: “^4.13.4”,
 “mongoose”: “^4.4.3”
 }

Depois de baixar as dependências do seu projeto, o Heroku irá tentar subir a sua aplicação. Neste passo, a plataforma irá alocar um endereço e uma porta para a sua aplicação. Como a porta é provida pelo Heroku e não tem como saber de antemão, é necessário preparar o nosso código para pegar isso.

O Heroku utiliza uma variável de ambiente chamada process.env.PORT para armazenar a porta. Podemos pegar esta variável no nosso código node utilizando um simples truque do javascript:

var porta = process.env.PORT || 8080;
app.listen(porta);

Observe que caso process.env.PORT não esteja definida, irei utilizar a porta 8080.

Se tudo estiver ok, a sua aplicação finalmente irá subir sem problemas no domínio: https://<nome_aplicação>.herokuapp.com

Agora que entendemos isso, podemos prosseguir.

Heroku Git

A primeira opção, o Heroku Git, é uma integração entre o Git e as ferramentas do Heroku oferecidas pelo Heroku Toolbelt. Uma vez que você instale esta ferramenta na sua máquina (independente do seu sistema operacional), para fazer o deploy é muito simples. Você irá acessar o seu terminal e irá logar no Heroku:

$ heroku login

Depois disso, basta entrar no seu projeto e enviar para o heroku utilizando o git:

$ heroku create

$ git push heroku master

GitHub

A integração com o GitHub funciona de forma semelhante ao anterior, com a diferença que você não precisará baixar nada na sua máquina, somente dar a permissão na sua conta do GitHub para que o Heroku consiga ler. Aqui você tem duas opções: deploys manuais ou deploys automáticos.

Deploy manual

Uma vez que você tenha dados as permissões, será possível selecionar qual branch o Heroku deve deployar. A diferença entre o manual e o automático é que a segunda opção sempre fará um deploy novo quando um commit for enviado a branch do repositório.

Deploy automático

Dropbox

Se inscreva no nosso canal!

Caso você nunca tenha trabalhado com o Git, sem dúvidas encontrará dificuldades para utilizar as duas opções acima. É por este motivo que existe esta terceira opção de deploy.

O primeiro passo é dar permissão na sua conta do Dropbox para que o Heroku consiga ler o conteúdo das suas pastas. MAS CALMA! O Heroku não vai xeretar o que não lhe interessa. Uma vez que você conceda a permissão, ele irá criar uma pasta compartilhada na sua conta no caminho Dropbox/Apps/Heroku/<nome_da_aplicação>.

Deploy pelo Dropbox

Feito isso, basta apertar o botão de Deploy.

Monitorando a aplicação

Ao tentar fazer o deploy da aplicação, independente do método, o Heroku irá exibir os logs. Caso aconteça algum erro, ficará evidente. Em todo caso, é sempre possível ver os logs pelo Dashboard (imagem abaixo) ou através do Toolbelt com o comando heroku logs.

Monitoramento de logs

Caso a sua aplicação trave, note a opção “Restart all dynos”. Isso irá reiniciar a sua aplicação.


Gostou deste artigo? Recomende ❤, comente e compartilhe!