DEV Community

Gabriel_Silvestre
Gabriel_Silvestre

Posted on

 

O Básico - Deploy com Heroku

Tabela de Conteúdos


Heroku

O que é?

É uma plataforma que facilita o processo de deploy das aplicações, sejam elas Front-end ou Back-end, de forma mais técnica podemos categorizar o Heroku como um PaaS (Platform as a Service).

Voltar ao topo


Iniciando com Heroku

Como vamos enviar nossas aplicações para produção em uma plataforma externa, precisamos realizar algumas configurações para aumentar a segurança de nosso projeto, bem como permitir que plataformas como o Heroku o "buildem" e o executem da forma correta.

Variáveis de ambiente

A primeira configuração que iremos fazer é a definição de variáveis de ambiente contendo informações sensíveis como credenciais do Banco de Dados, por exemplo.

PORT=3001
DB_USER=admin
DB_PASSWORD=admin
Enter fullscreen mode Exit fullscreen mode

*Obs: Precisamos sempre definir a porta da aplicação como uma variável de ambiente, isso porque será o Heroku quem irá controlar quais portas serão expostas.

Definição de scripts

Além das variáveis de ambiente também precisamos definir os scripts a serem executados para a construção (build) e execução da aplicação.

O Heroku irá executar diferentes scripts dependendo da linguagem/framework utilizado, no caso de projetos em Node, o script padrão a ser executado é o start.

// package.json

{
  "scripts": {
    "start": "node index.js"
  }
}
Enter fullscreen mode Exit fullscreen mode

Adaptação dos projetos

Por vezes será necessário realizar algumas alterações nos projetos para que eles possam "subir para produção" no Heroku sem problemas, as principais alterações são relacionadas a conexão.

A mais simples dessas alterações é em relação a porta da aplicação, devemos sempre definir a porta através das variáveis ambiente, pois como dito anteriormente será o Heroku a controlar essas portas.

Podemos citar outras adaptações, também relacionadas a variáveis de ambiente, como a conexão com um DB, a chave de uma API, entre outros dados sensíveis ou que alteram dependendo do ambiente.

Voltar ao topo


Heroku-CLI

O que é?

É uma ferramenta de linha de comando para o gerenciamento de projetos no Heroku.

*Sua instalação é opcional, pois existem outras formas de gerenciar esses projetos, porém aqui iremos focar no Heroku-CLI.

O que faz?

Realiza o gerenciamento completo de aplicações no Heroku, desde sua criação, monitoramento até sua deleção.

Instalação

Não iremos abordar o passo-a-passo nesse artigo, mas segue a documentação para consultas.

Voltar ao topo


Deploy com Heroku-CLI

O que é?

É o ato de enviarmos nossa aplicação para a plataforma da Heroku para que ela esteja disponível para a internet.

Como fazer?

Antes de começarmos o Deploy é necessário já ter realizado todas as configurações e ajustes necessários em nosso projeto, bem como já ter o Heroku-CLI instalado.

  • Criar repositório Heroku

O primeiro passo é criar um repositório remoto na Heroku, para isso basta executar o seguinte comando.

heroku create <nome do repositório na Heroku> --remote <nome do repositório no git>
Enter fullscreen mode Exit fullscreen mode
heroku create my-first-deploy-12456 --remote heroku-origin
Enter fullscreen mode Exit fullscreen mode

*Obs: O <nome do repositório no git> é o nome pelo qual iremos referenciar o repositório em questão através da linha de comando, no exemplo acima referenciaríamos da seguinte forma git push heroku-origin main.

**Obs: Por vezes o nome do repositório que você deseja criar já pode estar sendo utilizado, então utilizamos alguns números aleatórios ao final, por isso o 12356 no exemplo acima.

  • Fazer o push

Com o repositório criado na Heroku, tudo que precisamos fazer é realizar um push, referenciando esse repositório remoto.

git push <referência ao repositório> <branch>
Enter fullscreen mode Exit fullscreen mode
git push heroku-orgin main
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


Links Úteis

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git