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:
Legenda: Podemos dividir o deploy em trรชs etapas. | Imagem: Pexels
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:
Legenda: Confira as formas para realizar o trabalho. | Imagem: Pexels
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..