É fácil implantar em produção uma aplicação testada e homologada? Dependendo para quem se pergunta, a resposta é sim. E, para você, o que é fazer deploy de uma aplicação?
Para melhorar o entendimento, deploy, em inglês, quer dizer implantar.
Para a grande maioria, implantar uma nova aplicação no ambiente de produção nada mais é que copiar alguns arquivos em um servidor, fazer algumas configurações em determinados sistemas e pronto, tudo funcionando. Certo? Nem sempre é assim…
Já parou para pensar em tudo que envolve implantar uma nova aplicação em um ambiente de produção?
Na maioria das vezes, um novo sistema ou uma funcionalidade nasce de uma necessidade da área de negócio; é detalhada pelos analistas funcionais; estruturada pelos analistas de sistemas; e, só então, desenvolvida pelos programadores. Apenas depois de testado e homologado é que vai para produção. O problema começa quando o sistema sai do ambiente de desenvolvimento e começa a viajar pelos ambientes de homologação até chegar à produção.
Ainda hoje, não é comum encontrar empresas que possuam um ambiente de homologação que espelhe na íntegra todo o ambiente de produção. Isso, por si só, já traz para o deploy em produção um grande risco.
Em empresas menores ou em corporações fragmentadas, onde as aplicações "vivem" em ambientes exclusivos, implantar um sistema não é uma operação com muito risco: implantou na produção se funcionar ótimo; caso não funcione, é só desinstalar e quase nada foi afetado.
Infelizmente para o pessoal de TI, situações como esta são cada vez mais difíceis de encontrar e custa muito caro. Encontrar um ambiente de homologação que espelhe a produção em uma situação como a que falamos acima é difícil. Imagine uma situação onde os ambientes são extremamente complexos; as aplicações não são estanques; busca-se, a todo momento, informações em outros sistemas e outras bases de dados; fornece-se uma série enorme de dados; e processa-se uma série de requisições.
Muitas empresas ainda insistem em usar apenas pessoas, sem processos maduros e nem ferramentas para executar deploy em ambientes como esses. E muitas não são empresas pequenas.
Na maioria das empresas que persistem neste modelo a "culpa" de um deploy com insucesso é colocada na conta do pessoal de desenvolvimento; claro, o pessoal de desenvolvimento diz que o sistema foi homologado e que o problema é da produção. No fim, ninguém tem culpa e o pessoal de negócios fica sentado, esperando sua aplicação entrar em operação.
Como é fazer um deploy em um ambiente como este?
Fica cada dia mais claro que mudar não é mais uma escolha. É uma questão de sobrevivência! O mercado exige agilidade nos negócios e profissionalismo na gestão. Quantas empresas você conhece que foram dragadas por outras, por simplesmente perderem a capacidade de competir?
É obvio que implantar um sistema em um servidor é fácil e a possibilidade de erros é pouca. Imagine implantar o mesmo sistema em mais de 100 servidores espalhados em diversas localidades. Você é capaz de mensurar o tempo que seria gasto e as possibilidades de erros se esta atividade for executada por pessoas?
E a pergunta é inevitável: como fazer um deploy para ambientes complexos com o menor risco e custo possíveis?
Quanto mais automatizado estiver o deploy, menores serão os riscos e os custos. Os riscos se reduzem porque uma ferramenta bem customizada e suportada por processos maduros é capaz de garantir o deploy de vários sistemas em diversos ambientes, com o mesmo nível de excelência.
A redução de custo é resultado de duas ações: redução das horas extras dos profissionais nas implantações que, em sua maioria, são feitas nas janelas técnicas e estas ocorrem basicamente nas madrugadas, e a outra é resultado do retorno do investimento em treinamento dos profissionais e da melhoria continua dos processos. Mais treinamento resulta em mais conhecimento, mais conhecimento, em customizações mais eficientes da ferramenta e consequentemente redução de retrabalho e maior garantia de sucesso no seu deploy.
Alberto Marcelo Parada, formado em administração de empresas e análise de sistemas, com especializações em gestão de projetos pela FIAP. Já atuou em empresas como IBM, CPM-Braxis, Fidelity, Banespa, entre outras. Atualmente integra o quadro docente nos cursos de MBA da FIAP, além de ser diretor de projetos sustentáveis da Sucesu-SP.