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.
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.
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.
Dropbox
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>.
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.
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!