Node.js — Do zero ao deploy

Parte 2 — Deploy

André Spanguero Kanayama
Nexa Digital
5 min readJan 31, 2020

--

Este artigo é o segundo de uma série de artigos que eu e o Rodrigo Botti estamos escrevendo para quem está começando com Node.js. Para ver a primeira parte, clique aqui.

Agora que temos nossa aplicação rodando, vamos fazer o deploy. Mas… o que é deploy? O deploy é um conjunto de atividades que faz com que o nosso sistema esteja pronto para uso, e no nosso caso, isso consiste em colocarmos o nosso projeto na nuvem para que qualquer pessoa possa usar.

Ferramenta

A ferramenta escolhida por nós para começarmos se chama Heroku. Ela é bem fácil de usar e tem um nível gratuito, perfeita para quem quer testar rapidamente sem gastar um centavo. Além disso, o Heroku tem diversos add-ons, como bancos de dados, ferramentas de monitoramento, entre outros, e você se preocupa apenas com a aplicação, sem precisar saber nada da infra.

Como nem tudo são flores, no final do artigo vamos listar algumas desvantagens do Heroku e dar dicas sobre quando não se deve usá-lo ou quando é melhor migrar para uma solução mais robusta.

Colocando a mão na massa

Primeiro, vamos criar uma conta no Heroku. A página está em inglês, mas é bem simples. Basta clicar no botão signup e na página seguinte colocar suas informações, não precisa nem colocar seu cartão de crédito (mas talvez você tenha que confirmar o seu e-mail)!

Basta preencher os campos de acordo

Com a conta criada e o login feito, podemos criar o nosso primeiro app. Fazemos isso indo em New, no canto superior direito e selecionando a opção Create a new app.

Criando uma nova aplicação simples

Ele vai te pedir um nome para a aplicação, que pode ser qualquer um que ainda não tenha sido usado. Escolha bem, pois este nome é usado na URL que acessa a aplicação pelo browser, uma vez que terminarmos o deploy.

Ao criar a aplicação você deve cair em uma tela como a seguinte:

Aba deploy na interface do Heroku — aplicação "teste-artigo"

Neste tutorial, vamos fazer o deploy usando o Github (veja o destaque em rosa na imagem acima), que é a forma mais simples e rápida de colocarmos o nosso código no Heroku. Ao clicar em Github, ele pedirá para “linkar” a sua conta do Heroku com a do Github, faça isso e você poderá adicionar o seu repositório na sua aplicação.

Repositório adicionado, basta clicar no botão Deploy Branch (assumindo que o seu código está na master, caso não, basta selecionar a branch correta) e o Heroku se encarregará do resto.

Vale ressaltar que o Heroku não aceita apenas aplicações Node.js, mas ele é inteligente o suficiente para detectar que como você tem um package.json no seu repositório, trata-se de um projeto Node, e por default ele rodará os comandos “npm install” e “npm start” (porém isso é configurável).

🎉

Uma vez “deployado”, clique em View para ver sua aplicação funcionando.

Como a gente fica feliz de ver esse textinho em uma tela em branco

Note que a url usada é <nome do seu projeto>.herokuapp.com. Essa URL pode ser compartilhada com qualquer pessoa que necessite usar o seu sistema. E de quebra ainda ganhamos o acesso via https!

Parece mágica, mas não é. O nosso setup é bem básico, o que facilita para que o Heroku possa usar tudo nas configurações default, e também, sabendo que usaríamos o Heroku, já utilizamos a variável PORT corretamente para inicializar o Koa, isso porque não sabemos qual porta o Heroku liberará para a nossa aplicação, mas ele nos diz através dessa variável, que é determinada por ele quando ela é iniciada.

Outro ponto interessante para se dar uma olhada é a aba Resources:

Sessão de Resources

Você pode ver que o Heroku automaticamente nos dá um “dyno” que é basicamente uma mini máquina para que possamos rodar a nossa aplicação gratuitamente. Conforme a aplicação for crescendo, podemos usar dynos mais potentes e também aumentar a quantidade, mas teríamos que pagar (e não muito barato) por isso.

Pronto, agora conforme formos evoluindo a nossa aplicação e adicionando o código no Github, podemos fazer o deploy da mesma forma e podermos ver os resultados na nuvem. Sugiro que você dê uma explorada nos recursos do Heroku, já que fizemos o básico para um deploy simples, mas conforme você for se familiarizando, consegue customizar vários detalhes importantes.

Desvantagens da ferramenta

Agora, como dissemos no começo do artigo, nem tudo são flores, então vamos listar algumas desvantagens do Heroku que devem ser levadas em consideração quando for escolher onde fazer o deploy pra valer:

  • Completamente em inglês;
  • Conforme sua aplicação for crescendo, você precisará de mais potência em seus dynos, mas isso sai muito caro;
  • Você precisa encontrar o melhor equilíbrio entre o dinheiro que você gasta e a quantidade de dynos usadas, e isso pode não ser tão trivial;
  • Como é tudo muito alto nível, você não consegue fazer tantos ajustes finos.

Vamos deixar alguns links caso você queira saber mais:

Documentação oficial (em inglês)

Papertrail — um excelente add-on para ver logs

E qualquer dúvida é só comentar! E em breve teremos a próxima parte, na qual vamos adicionar um banco de dados na nossa aplicação!

--

--