• Categorias
    • Desenvolvimiento de software
    • Machine Learning & AI
    • Carreira de programador e dicas
    • Histórias de sucesso
  • Materiais Gratuitos
    • Calculadora CLT x PJ
    • Quiz de Front-end
    • Quiz de Mobile
    • Guia Full Stack atualizado
    • Guia de Negociação Salarial para Devs
    • Modelo de Currículo Internacional
  • Para Talentos
    • Criar perfil gratis
    • Ver vagas
  • Categorias
    • Desenvolvimiento de software
    • Machine Learning & AI
    • Carreira de programador e dicas
    • Histórias de sucesso
  • Materiais Gratuitos
    • Calculadora CLT x PJ
    • Quiz de Front-end
    • Quiz de Mobile
    • Guia Full Stack atualizado
    • Guia de Negociação Salarial para Devs
    • Modelo de Currículo Internacional
  • Para Talentos
    • Criar perfil gratis
    • Ver vagas

Início O que é deploy e como enviar um Web App ou site para produção

  • Foto de Geekhunter Geekhunter
  • novembro 13, 2020
o-que-e-deploy

O que é deploy e como enviar um Web App ou site para produção

Quando terminamos uma aplicação, em que lugar podemos disponibilizar para outras pessoas acessarem? O que preciso para fazer para o web app funcionar? Hoje vou falar sobre o que é deploy e dar um exemplo de como fazê-lo corretamente.

Em primeiro lugar, podemos considerar deploy como uma fase do ciclo de vida de um software.

Basicamente, usamos este termo quando vamos disponibilizar o sistema em um ambiente de desenvolvimento, para testes ou em produção.

O termo deploy pode ser usado para muitos casos, dependendo muito do ambiente e da tecnologia. Um desenvolvedor pode fazer o Deploy da sua aplicação web no Tomcat localmente, ou em serviços como a AWS. 

Automação de Deploy

O Deploy da sua aplicação pode ser feito de forma manual, parcialmente ou completamente automatizado.

Um processo automatizado pode consistir em realizar commit do código em um repositório e esta ação dispara automaticamente o processo de construção (build) do executável da aplicação e a sua disponibilização no servidor.

Nesse sentido, quando falamos da automatização do Deploy, não significa que a aplicação precise estar 100% automatizada. No caso, não necessariamente um commit vai acabar em produção, o que importa é que todos os passos trabalhosos estejam automatizados.

Desenvolvedores e administradores DevOps, por exemplo, devem configurar este ambiente de forma mais adequada a cada projeto, diminuindo o retrabalho.

Um bom exemplo é quando nem todo commit de código faz sentido gerar uma versão para produção. Então vários critérios podem ser adotados, a principal estratégia é o uso de branches para diferentes ramificações no desenvolvimento.

Integração Contínua – CI – Continuous Integration

Da mesma forma, essa automatização não visa apenas evitar retrabalho mas também permite aos desenvolvedores alcançarem um nível superior de produtividade e entrega de qualidade.

Para quem é desenvolvedor, encontrar uma aplicação que os responsáveis disseram: “Já está pronta, só falta testar”, e depois descobrir que muita coisa precisava ser corrigida é uma situação comum.

Postergar o teste do código é uma situação recorrente. Pois sem testes e deploy automatizados, o desenvolvedor escreve muito código antes de colocar o programa para executar, isto acaba levando a um retrabalho desnecessário.

Como o deploy funciona

Quando falamos de Deploy de uma aplicação, geralmente existem duas opções: VPS ou PaaS (Platform as a Service). Este artigo irá te mostrar como fazer deploy da sua aplicação para produção em um serviço PaaS como o Heroku.

Passo 1 – Crie seu projeto

Primeiramente, devemos criar uma estrutura simples com alguns arquivos básicos. Para este artigo eu irei criar uma aplicação NodeJS.

Em uma nova pasta você pode abrir o seu terminal e rodar o comando npm init -y para criar um novo projeto. O servidor será feito com o Express, precisamos rodar o comando npm install express para instalar o módulo.

Uma vez instalado, escolha seu editor de texto preferido e abra o projeto para criar um novo arquivo chamado app.js. Então iremos deixar ele da seguinte forma:

const app = require('express')();
const PORT = process.env.PORT || 3000;

app.get('', (req, res) => {
    res.send(“Hello World”);
});

app.listen(PORT, () => {
    console.log(`Este app está escutando na port ${PORT}`);
});

Nós podemos iniciar a aplicação localmente executando o comando node app.js no terminal. Depois disso abra seu navegador na URL http://localhost:3000/. Você poderá ver a mensagem que você programou anteriormente “Hello World” no seu browser.

Passo 2 – Sistema de controle de versão 

A próxima etapa é escolher um sistema de controle de versão e colocar nosso código em uma plataforma de desenvolvimento em um repositório.

O sistema de controle de versão mais popular é o Git junto com o Github como plataforma de desenvolvimento, então é isso que usaremos neste tutorial para deploy.

Vá até o GitHub e crie um novo repositório para seu aplicativo, como este:

Para carregar seu código local em um repositório, você precisa executar os comandos listados no Github após clicar no botão Criar repositório:

Antes de fazermos isso, devemos ignorar alguns arquivos. Queremos enviar para o repositório apenas o código que escrevemos, sem as dependências (os módulos do node instalados).

Para isso, precisamos criar um novo arquivo chamado .gitignore e dentro dele escrever o arquivo que queremos ignorar na hora de mandar o código.

Agora podemos executar os comandos do GitHub da imagem anterior.

Se você executou os comandos corretamente, você terá um novo repositório com seu projeto. Se você atualizá-lo, deverá ver seus arquivos, exceto aquele que você ignorou no passo anterior, ou seja, node_modules.

Passo 3 – Linkar o repositório com o Heroku

Aqui nós iremos linkar nosso repositório do GitHub para nosso Aplicação no Heroku.

Primeiramente crie uma aplicação no Heroku e siga os passos da plataforma:

linkar-repositorio-heroku
criar-novo-app-heroku

Agora, se você olhar a navegação na parte superior, verá Overview, Resources, Deploy, Metrics e assim por diante. Certifique-se de que Deploy está selecionado. Em seguida,, clique no ícone GitHub e procure pelo repositório que você mandou seu código.

app-heroku-deploy

Assim que o aplicativo no GitHub for conectado com sucesso à sua conta Heroku, você pode clicar em Deploy Branch para fazer Deploy do seu aplicativo.

Se desejar, você também pode selecionar a opção Enable Automatic Deploys, isso fará com que toda vez que você realizar um push para o repositório GitHub atualizará no Heroku também.

enable-automatic-deploys

Passo 4 – Configure o Heroku para executar o aplicativo corretamente

Se você abriu sua a aplicação, você deve ter visto uma tela como esta:

configure-heroku

Isso acontece porque o Heroku não sabe como iniciar a aplicação.

Em alguns passos anteriores executamos o comando node app.js para iniciar a aplicação localmente. A app Heroku não tem como saber que é necessário executar este comando para iniciar a aplicação e por isso acontece o erro 

Para resolver este problema, devemos criar um novo arquivo denominado Procfile com o seguinte conteúdo: web: node ./app.js.

Dessa forma, para atualizar nosso aplicativo, tudo o que precisamos fazer é enviar um novo commit ao GitHub. Se habilitarmos a opção Automatic Deploys, o código fará automaticamente um novo push para o Heroku. Caso contrário, precisamos clicar em Deploy Branch novamente.

Concluindo o processo de deploy

O Heroku, assim como outros serviços similares, permite que os desenvolvedores façam Deploy de forma rápida e quase sem trabalho de um aplicativo em um servidor web. 

Ele também fornece plugins que você pode integrar na sua aplicação para facilitar a sua  entrega do produto.

Por fim, este tipo de solução PaaS sempre vai nos permitir ter menos trabalho do que configurar uma VPS onde teriamos que realizar a configuração de um ambiente completo para o mesmo acontecer.

E você, já conhecia o processo de deploy de uma aplicação? Deixa um comentário falando sobre como você executa essa função no seu projeto!

 

Foto de Geekhunter

Geekhunter

Python IDE
10 melhores IDEs e editores de código em Python para 2025
  • março 18, 2025
o que é commit
O que é Commit e como usar Commits Semânticos
  • dezembro 13, 2024
certificações em TI
10 certificações em TI muito valorizadas hoje
  • novembro 20, 2024
Consultor SAP: o que faz, salário e como se tornar um
  • março 20, 2025
brainfuck
Brainfuck: A linguagem esotérica que desafia programadores até hoje
  • junho 27, 2025
gerente de tecnologia
As principais habilidades de um gerente de tecnologia
  • junho 27, 2025
vagas de TI
Vagas de TI: como encontrar uma que combine com você?
  • junho 26, 2025
Planejamento da equipe de metodologia scrum
Metodologia Scrum: o básico que todo DEV precisa saber
  • junho 24, 2025

Gosta do conteúdo? Assine nossa Newsletter!

Desenvolvimiento de software

Brainfuck: A linguagem esotérica que desafia programadores até hoje

  • Geekhunter
  • junho 27, 2025
Carreira de programador e dicas

As principais habilidades de um gerente de tecnologia

  • Geekhunter
  • junho 27, 2025
Desenvolvimiento de software

Vagas de TI: como encontrar uma que combine com você?

  • GeekHunter
  • junho 26, 2025
Desenvolvimiento de software

Metodologia Scrum: o básico que todo DEV precisa saber

  • Geekhunter
  • junho 24, 2025
Carreira de programador e dicas

Dicas de carreira: como criar seu perfil profissional com foco na área tech

  • GeekHunter
  • junho 24, 2025
AnteriorAnteriorIntrodução ao Flutter, o framework da Google
PróximoA importância da Governança de DadosPróximo

Rod. José Carlos Daux – SC
401, 4120 – km 4, Bairro Saco
Grande – Florianópolis – SC
CEP 88032-005

Para Profissionais
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
Para Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog de RHTech
  • Perguntas Frequentes
  • Login Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog de RHTech
  • Perguntas Frequentes
  • Login Empresas
A Geekhunter
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso
  • Portal LGPD
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso
  • Portal LGPD

Add Your Heading Text Here