Deploy: Um guia completo para o desenvolvedor

Deploy: Um guia completo para o desenvolvedor

Deploy: Um guia completo para o desenvolvedor
 

O desenvolvimento de uma aplicação segue um caminho repleto de detalhes, o Deploy é um deles. Saiba mais neste artigo!

 

Tempo de Leitura: 4 minutos

Cada profissão produz uma cultura e um jargão próprio, com a informática não poderia ser diferente. Em especial, quando falamos de desenvolvedores, eles utilizam uma série de termos específicos em sua comunicação, a maioria deles originados da língua inglesa, e o Deploy é um destes termos técnicos bem comuns em rodas de conversas entre programadores.

Neste mercado tão especializado, é fundamental conhecer as principais expressões para não se sentir intimidado em uma conversa, ou ainda, mostrar seu nível de conhecimento em uma entrevista. São nestas ocasiões que temas específicos como o Deploy podem se fazer presente, e o desconhecimento dele pode complicar o andamento da interação.

Vamos entender um pouco mais sobre a expressão Deploy em TI e como ela impacta as rotinas de programação das Software Houses.

Conheça a Casa do Desenvolvedor

O que é Deploy em programação?

Consiste em uma expressão originada do inglês, que significa literalmente “Implantar”. No caso, o termo “fazer um Deploy” significa mandar para o ar um software concluído.

Esta é a etapa final do desenvolvimento de uma aplicação, o qual já passou por todas as cadeias de produção e testes, ela faz parte das rotinas da vida de um programador.

Quando um sistema passa por uma alteração, ou melhoria, o jargão Deploy também é utilizado para marcar que aquele processo está concluído e foi entregue.

Caminhos para seguir no deploy:

Ao adentrarmos no assunto, podemos dividir o deploy em três etapas.

Desenvolvimento 

É o início da vida de um software, mesmo não sendo exatamente um deploy, é uma importante etapa em sua criação.

Em geral o programador escreve os códigos em um ambiente de programação IDE (Integrated Development Environment) usando a linguagem definida, este é um momento de liberdade para este profissional, onde ele fica à vontade para transformar o problema dos usuários em algoritmos, sem se preocupar muito com erros.

Staging/Teste

A segunda etapa do caminho já carrega um pouco mais de seriedade, pois é nela em que os testes serão realizados, isto ocorre após o primeiro deploy da equipe de desenvolvimento.

A equipe de testes tem uma grande responsabilidade, já que o software está em maturação, e o programa está entre eles e o usuário final.

Produção

Chegamos a última etapa, a equipe de testes já identificou os possíveis bugs, já reportou para a equipe de desenvolvimento, a qual fez os ajustes necessários e o programa passou por novas testagens, ficando pronto para o seu deploy.

Este deploy significa que a aplicação será instalada no servidor em que ficará disponível para o usuário final, o que é conhecido comumente como deploy final, uma vez que a aplicação já está “pronta”. Contudo, o software ainda receberá outros deploys quando acontecerem atualizações e manutenções corretivas.

Fazendo deploy: 4 etapas

Para facilitar este processo, separamos os quatro passos básicos para a concretização de um deploy, são eles:

Infraestrutura 

Trata-se da etapa inicial, resumidamente é a definição de em que lugar sua aplicação, ou site ficará hospedada durante seu desenvolvimento.

Neste caso, existem várias opções que devem ser observadas de acordo com suas necessidades. É possível usar seu computador, um servidor físico, uma hospedagem em nuvem, etc.

É uma decisão muito importante e que se deve atentar em especial com a compatibilidade do ambiente com a linguagem escolhida, pois caso não se dê a devida atenção para este ponto, pode ser necessária a troca do ambiente de infraestrutura.

Este problema possivelmente vai criar transtornos e atrasos no projeto com um todo.

Domínio 

No caso do desenvolvimento de um site, um domínio deve ser escolhido e comprado, este passo é importantíssimo pois a escolha de um bom nome de domínio vai facilitar o acesso e atrair mais clientes.

Após a aquisição, é necessário o direcionamento do DNS (Domain Name System) para a hospedagem escolhida.

Ambiente 

O próximo passo para o desenvolvimento de uma aplicação é o deploy para o ambiente escolhido. Esta etapa é repleta de detalhes e desafios como a preparação estrutural dos sistemas do servidor/hospedagem, implantação do banco de dados e o upload do código para o ambiente.

Após todo este trabalho o sistema estará pronto para ser acessado pelos usuários finais.

Otimização

Finalizado a implantação e os acessos dos usuários, o sistema pode identificar pontos de melhoria, ou pequenos reparos. Nestes casos, outros deploys vão acontecer.

Formas para fazer deploy:

Veja agora quatro formas para realizar o trabalho.  

Manual 

É a maneira mais trabalhosa e que mais depende da intervenção humana para acontecer, pois, seu processo não é automático. Neste caso, as entregas, ou melhorias são enviadas, por exemplo, via FTP (File Transfer Protocol), protocolo de transferência de arquivos. Apesar de ser a mais trabalhosa, esta forma de fazer o deploy ainda é bem popular.

Parcialmente automatizado 

Este método ainda depende de alguns comandos humanos. É utilizado um repositório GIT, um repositório virtual para automatizar parte do processo, uma das grandes vantagens deste tipo de deploy é o controle de versão.

Completamente automatizado 

Nessa forma, faz-se o uso de recursos tecnológico de ponta, que garante mais segurança e eficiência que as opções anteriores. Existem várias soluções no mercado que automatizam as entregas dos deploys, como: Azure Pipelines, Circles CI e Jenkins.

Integração contínua (CI - Continuous Integration) 

Esta é uma grande evolução nos deploys dos sistemas, graças a CI, as melhorias e aperfeiçoamentos de um ERP, por exemplo, podem acontecer de forma mais rápida e sem a necessidade da intervenção humana. Graças a ele, o processo que antes era muito complexo e demorado acontece automaticamente, distribuindo softwares e sites de forma eficiente.

Melhores estratégias para o Deploy

Agora que chegou até aqui, confira as melhores estratégias para colocar em prática. 

Rolling 

Permite que duas versões coexistam no mesmo ambiente ao mesmo tempo, na prática, a nova versão vai sendo atualizada enquanto a antiga continua no ar, até ser substituída totalmente por sua nova versão.

Blue-Green

Representa a divisão de dois ambientes, para que sejam realizados testes em uma versão espelhada do sistema. Neste caso, o blue é a versão antiga do código, enquanto a green representa a versão melhorada.

Canary 

Esta é a mais complexa das técnicas, pois consiste em liberar a nova versão de um software para uma pequena parte dos usuários finais fazerem testes, assim, é possível fazer uma análise da nova aplicação em testes práticos no próprio ambiente de trabalho.

Conheça mais sobre deploys e outras tecnologias que fazem parte do nosso cotidiano como desenvolvedor, ou gestor de software houses. 

Conclusão

Os deploys fazem parte da vida de uma aplicação, e existem muitas maneiras de os aplicarmos, a melhor escolha para cada software vai concretizar uma solução mais prazerosa e eficiente para os usuários finais.

Casa do Desenvolvedor
Casa do Desenvolvedor
Somos a Casa do Desenvolvedor, uma comunidade que tem como propósito, fortalecer o desenvolvimento de software no Brasil. Faça parte você também dessa comunidade!

1 Comment

  1. Marcos Vinicius disse:

    Magnífica abordagem,direta e objetiva..

Deixe um comentário

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.