1. Início
  2. Full stack
  3. O que é deploy e como enviar um Web App ou site para produção

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

o-que-e-deploy

Quando terminamos uma aplicação, em que lugar podemos disponibilizar para outras pessoas acessarem? O que preciso para fazer para o 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!

Categorias

Leituras Recomendadas

Quer receber conteúdos incríveis como esses?

Assine nossa newsletter para ficar por dentro de todas as novidades do universo de TI e carreiras tech.