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

Compartilhar
You May Also Like