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.
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.
1 Comment
Magnífica abordagem,direta e objetiva..