Deploy: leitura obrigatória para tirar todas as suas dúvidas

Veja neste Post

A TI tradicional tem enfrentado desafios e sido obrigada a evoluir no mesmo ritmo de transformação do mercado, ávido por agilidade, inovação e experiência positiva do cliente. Hoje são exigidas respostas assertivas e imediatas na mesma velocidade de um dinamismo sem precedentes no mundo empresarial. Para responder à altura, o desenvolvimento de software precisa deixar de ser conservador e adotar novos métodos. Um caminho a ser adotado é o deploy automatizado e contínuo, como forma de otimizar processos de implantação e configuração de infraestrutura na hora de entregar uma aplicação.

O deploy de forma automática é uma das engrenagens para atendimento das demandas dos clientes na era digital. A TI foi impactada por essa nova dinâmica tecnológica nos últimos anos e, para fazer frente ao novo contexto, tem lançado mão de soluções como a cloud computing, mobilidade, BYOD (Bring Your Own Device), Internet das Coisas, dentre tantas outras inovações.

Porém, todo esse aparato citado remete muito à visão do usuário, que já está acostumado a usar seu dispositivo móvel para acessar aplicações na nuvem e, a partir dela, acionar comandos capazes de controlar a automação de equipamentos residenciais, por exemplo. Já do lado do desenvolvimento de aplicações, além desses adventos, o caminho está mais para uma gestão racional de processos da esteira de TI.

Quando falamos em processos da esteira de TI, nos referimos ao design e arquitetura de TI, levantamento de requisitos, construção de infraestrutura, desenvolvimento, testes, operação e suporte. Nessa cadeia de valor tão relevante em uma empresa, é preciso contar com metodologias capazes de enfatizar comunicação, colaboração e integração entre as áreas e profissionais envolvidos.

Nessa linha, estão tendências como o DevOps (que aproxima as práticas de desenvolvimento ágil com testes e implantação), a TI Modal (que valoriza a união da TI tradicional e seus processos bem definidos com uma TI mais experimental que permita inovar) e as metodologias ágeis (que estimulam entregas rápidas e contínuas, com valor que possa ser percebido pelo cliente durante todo o projeto). No campo do desenvolvimento de software, um elemento essencial na nova TI que se apresenta é o deploy automatizado e contínuo.

Muitos conceitos foram lançados nessa introdução apenas para dar ideia da dimensão que a nova TI tem assumido e, embora complexa, ela está embasada em novos parâmetros bem estruturados e já tidos como melhores práticas em todo mundo, inclusive reconhecidos por instituições que são referências internacionais, como o Gartner Group, uma das principais consultorias de mercado em temas como gestão e tecnologia.

Então vamos explorar um pouco mais esses conceitos? Que tal começar com o de deploy automatizado?

Afinal, o que é automação de deploy?

O framework ITIL (Information Technology Infrastructure Library), um conjunto de boas práticas para serem aplicadas na infraestrutura, operação e gerenciamento de serviços de TI, tem em sua estrutura de processos a Implantação (ao lado do processo de Liberação). Esse guia prevê que o processo relacionado à implantação de novas aplicações deve “montar e posicionar todos os aspectos dos serviços em produção e estabelecer o uso eficaz dos serviços novos ou alterados” (ITIL v3, 2007).

Está claro que esse processo aborda a previsão e o tratamento de problemas no ambiente de produção, mas essa fase pode ser ainda melhor cuidada se incorporados novos elementos da nova TI, como o deploy automatizado.

Para não entrar em tequiniquês, porque este está disponível nos manuais das ferramentas de interesse do público deste post, o deploy, de forma muito simplista, pode ser considerado como um conjunto de procedimentos de upload de um projeto para o ambiente de produção.

Guardadas as devidas proporções de todo a cadeia de processos envolvida nessa transição da homologação e testes para a colocação de uma aplicação em produção, o conceito aqui descrito é simplificado, mas guarda total coerência com a robusta realidade envolvida nesse processo de deploy. Prova disso é o elemento comum percebido tanto na “vida real” quanto na forma didática aqui descreve a implantação de uma aplicação: os riscos!

Todo processo de deploy possui riscos porque algo imprevisível pode acontecer, um bug de qualquer natureza. E o pior é que esse tipo de ocorrência ou incidente (na linguagem do ITIL v3) acontece quando o cliente já colocou a mão no produto que ele encomendou ao desenvolvimento.

Para deixar os bugs no passado e minimizar esses riscos inerentes, a melhor alternativa é a automatização do deploy e, para explicar como ela funciona, vamos trazer um exemplo mais lúdico.

Imagine que o processo padrão de deploy de uma empresa de fabricação de software ainda é manual e o desenvolvedor está em vias de disponibilizar uma aplicação que acabou de sair do forno.

Quando ele transfere os arquivos do seu projeto para o servidor em um processo lento e que sobrecarrega a rede, percebe que ao final do processo o último bloco de construção não foi junto com o conjunto.

Daí ele repete a transferência, aguarda mais preciosas dezenas de minutos ou algumas horas, dependendo da conexão, e, quando pensa que está tudo certo, lá vem a enxurrada de bugs!

Para tornar o fim dessa história um pouco mais feliz, entra em cena o deploy automatizado! Nessa solução todos os processos executados pelo programador ou analista são entendidos pelo sistema de automatização no momento da atualização do software, nas etapas de testes, homologação ou produção. E esse processo é contínuo para que nenhum novo “build” seja perdido.

Com a automatização do deploy, erros de implantação são eliminados e é assegurada a disponibilidade das aplicações sem falhas para o usuário. Além disso, é dado fim à repetibilidade dos trabalhos já que um script automático se encarrega das tarefas continuamente, tendo sido necessário apenas uma configuração prévia.

Deployment automation e automação de infraestrutura: por que minha empresa precisa deles?

É difícil alcançar um contexto eficiente de deploy, sem a utilização de alguma ferramenta de automatização porque só aí se garante a redução da incidência de falha humana. Todo e qualquer procedimento de colocação de um projeto em produção corre algum tipo de risco e o deploy automatizado reduz significativamente essa possibilidade, permitindo que a entrega da aplicação para diversos ambientes seja o mais racionalizada e segura possível.

A empresa que adota o deployment automation e a automação da configuração da infraestrutura ganha, ainda, em economia de tempo e de recursos humanos especializados empregados nessa ação, liberando o desenvolvedor para sua atividade-fim, que é se dedicar aos códigos.

Outro benefício colhido pela empresa que opta pelo deploy automatizado e infrastructure automation em ambientes de testes, homologação ou produção é a agilidade — aquela premissa tão disseminada na atualidade em função da consolidação dos modelos baseados em “Agile”, que considera o conceito de iterações como entregas contínuas e a adoção de automatização de tarefas repetitivas.

Graças aos ciclos de entrega mais curtos de deploy, inspirados no “Agile”, o cliente testa o seu software mais cedo e o feedback tempestivo de bugs existentes permite a disponibilização de versão otimizada rapidamente.

Há mais um importante valor capturado com adoção do deploy e infraestrutura automatizados: a substituição de processos manuais lentos, caros e ineficientes no ambiente de testes. Isso pode ser percebido quando o esforço manual para testar cada nova funcionalidade, mediante consulta de documentações complexas, é dispensado e entra em cena um sistema automatizado que realiza uma integração contínua para execução de toda a biblioteca de testes, sempre que forem realizados versionamentos na aplicação.

Vale reforçar como benefício que a configuração de scripts específicos permite que os principais processos da infraestrutura de TI envolvidos no desenvolvimento de software são automatizados. Assim não é necessário que o desenvolvedor ou analista se preocupem com a instalação de sistema operacional ou configuração de serviços, nem com a realização de testes manuais ou com a migração de bancos de dados.

Por fim, outras vantagens estão agregadas no escopo do deploy automation e infrastructure automation, como maior interação entre as equipes, já que qualquer integrante pode realizar a operação de deployment da aplicação, sem que o conhecimento esteja localizado na especialização de algum funcionário.

A qualidade do resultado final também se destaca, além da redução do prazo de entrega. Poder contar com uma solução flexível é o que faz a diferença nos quesitos qualidade e agilidade, já que o deploy automatizado possui configurações adaptáveis ao ambiente onde vai rodar, o que permite um desenvolvimento incremental a partir de sugestões do cliente depois dos primeiros usos da aplicação.

Em resumo, as principais vantagens facilmente percebidas pelas empresas que já adotam o deploy e infraestructure automation são:

  • Poder contar com implantações menos propensas a erros, já que uma vez estando em perfeito funcionamento a configuração é repetida para as próximas rodadas;
  • Ser executada por qualquer pessoa da equipe porque todo o conhecimento necessário para liberar a aplicação está embutido no sistema;
  • Liberar pessoal especializado para focar no desenvolvimento;
  • Facilidade de alteração de equipamentos de destino da liberação a partir de configuração flexível.

Se a argumentação deste post ainda não foi suficiente para demonstrar tudo o que a automação de deploy e configuração de infraestrutura pode trazer de ganhos para uma empresa, vale a pena acessar o ebook “Tudo o que você precisa saber sobre automatização de deploy”!

Saiba como otimizar a automação de deploy

Tecnologia boa é aquela que, além de trazer benefícios a curto e médio prazos, ainda permite ser otimizada para expansão das vantagens em um horizonte temporal mais distante, de forma que todo o ecossistema envolvido gere frutos positivos ao processo, de forma crescente. E com a automação de deploy e de infraestrutura isso ocorre.

Não bastasse conjugar tantos benefícios de peso, como os já citados neste post, é possível, ainda, otimizar o modelo de automação de deploy, por meio de algumas iniciativas incrementais, como:

Investimento em planejamento

Processos de liberação e implantação são gerenciáveis como qualquer outro processo empresarial. Ter plano de operações, com cronogramas de atividades definidos e com indicadores estabelecidos para mensuração e melhoria contínua é uma estratégia muito bem-vinda.

Adoção de metodologias

Processos sempre são otimizados quando são executados com base em metodologias e, no caso da liberação e implantação automatizada de aplicações, é importante contar com os métodos ágeis porque eles pregam a integração entre os profissionais e áreas envolvidos e mais qualidade e tempestividade nas entregas, com intervalos curtos de tempo.

Suporte de ferramentas

É válido apostar todas as fichas na automatização do deploy e configuração da infraestrutura porque tarefas executadas por ferramentas implicam menos falhas, menor prazo e menos custos.

Melhoria contínua

Medir o desempenho do processo de implantação automatizado para saber onde ainda há espaço para otimização é uma forma de capturar ganhos além dos previstos no planejamento inicial.

Apoio de parceiros

Não basta adquirir uma ferramenta de automação de deploy, é preciso contar com suporte metodológico do fornecedor para eventuais necessidades que se apresentem durante o ciclo de vida da solução dentro da empresa.

É importante escolher um provedor de solução que seja um verdadeiro parceiro na potencialização do uso da ferramenta.

6 dicas para implementar novas tecnologias na empresa

A capacidade de se adaptar a novos cenários é uma das principais características de empresas que conseguem responder rapidamente às mudanças do mercado. E essas são aquelas que alcançam um lugar ao sol e se tornam perenes em seu nicho de atuação.

Adaptar-se a novos contextos, nos dias de hoje, é praticamente o mesmo que evoluir tecnologicamente para conseguir lidar com as novas realidades que a todo o momento se apresentam.

Porém, incorporar novas tecnologias que permitam alinhar as entregas com as expectativas do mercado não é tarefa tão simples, não se limita a apenas adquirir soluções tecnológicas. É preciso considerar que quando novas tecnologias são implementadas em uma empresa, paradigmas são quebrados e uma nova cultura organizacional de aceitabilidade de novidades precisa ser criada.

Para facilitar esse processo de aceitação da mudança, vamos listar aqui alguns pontos de partida para a criação de um terreno receptivo para o incremento tecnológico em um ambiente empresarial.

1. Comece pelas pessoas

Envolver as pessoas nos objetivos da empresa é fundamental. Quando todos compartilham da mesma visão do ponto onde a empresa almeja chegar, fica mais fácil que os esforços sejam direcionados para a mesma direção.

Além disso, capacitar é fundamental para que os funcionários se sintam seguros para atuar em uma nova dinâmica, na qual novos fluxos e regras de colaboração estarão disponíveis para melhorar as rotinas de trabalho.

2. Seja transparente

Comunicação é fundamental na gestão de pessoas em torno de qualquer projeto. Saber exatamente o que se espera de cada um enquanto integrante de um processo é muito importante.

E quando o assunto a ser comunicado é uma mudança expressiva nas formas de trabalho, vale todo cuidado para que o novo seja apresentado como algo que agrega e não como algo que pode vir a substituir o profissional ou tornar seu cotidiano mais árduo.

3. Estimule a gestão participativa

Quando uma novidade é internalizada em uma empresa, muitas vezes nem os próprios gestores sabem, exatamente, como extrair dali os melhores resultados possíveis.

Envolver os funcionários nas sugestões de como a nova tecnologia pode ter todo seu potencial aproveitado em benefício dos processos da empresa faz toda diferença e ainda aproxima o corpo funcional da nova tecnologia.

Com isso, abre-se não só uma receptividade por parte da equipe, como também estimula a colaboração e o engajamento de todos com a intenção de fazer daquele novo insumo um meio para produzir com qualidade cada vez maior.

4. Adeque os processos

Toda mudança implica na necessidade de análise da fotografia da esteira atual do processo produtivo. Assim, se uma nova tecnologia chegará na empresa, é preciso criar condições para que ela se estabeleça e faça sua parte dentro da cadeia de valor interna.

Se, para uma nova tecnologia funcionar adequadamente, for necessário criar uma outra função ou departamento que maximizará seu potencial, isso não pode ser visto como problema.

Basta voltar na origem da necessidade da aquisição de nova tecnologia e certamente será confirmado que ela é indispensável para melhorar alguma parte de algum processo ou um processo completo ou uma cadeia deles.

Então não há dúvidas de que o investimento foi acertado e de que não se pode medir esforços para adaptar o que for necessário para que ela produza os resultados esperados.

5. Aceite que a aceitação pode não ser imediata

É preciso considerar que determinadas mudanças demandam um tempo de amadurecimento e absorção pela organização. E isso é fácil de ser compreendido, basta considerar que mudanças mexem na cultura organizacional já sedimentada.

Então não deve haver motivos para frustração se, de início, uma mudança for recebida com resistência. Com o tempo, as melhorias trazidas pela nova tecnologia internalizada falarão por si e pessoas e processos estarão bem mais à vontade para lidar com o novo e aceitá-lo como elemento positivo na organização.

6. Revise os fatores críticos de sucesso

Se é que é possível propor um guia de preparação para uma mudança importante na empresa, advinda da internalização de uma nova tecnologia, propomos que os itens abaixo nunca sejam deixados de lado:

  • Analise e trate possíveis riscos que possam ocorrer com a mudança;
  • Defina objetivos e estratégias para promover as mudanças de acordo com prazos e metas (ter a noção clara de onde e quando se pretende chegar);
  • Crie planos de contingência para imprevistos que possam ocorrer;
  • Elabore planos de sustentação da mudança e continuidade do negócio para que premissas como a missão e os valores da empresa nunca sejam impactadas por eventuais desvios nos resultados esperados da mudança implementada;
  • Seja otimista, dissemine os benefícios aos quatro cantos e deixe as pessoas cientes de que elas também fazem parte da mudança.

Sem tecnologia e inovação não há negócio que se destaque no mercado

Não é exagero afirmar que a TI está no centro do sucesso de uma empresa. Muito se debateu sobre a conexão entre TI e negócio e hoje não há mais dúvidas da ligação inexorável entre essas duas disciplinas.

Uma TI robusta e focada em eficiência é capaz de transformar os rumos de uma empresa e reduzir a distância entre planejamento estratégico e resultados efetivos.

É urgente modificar os modelos tradicionais, de forma que princípios que começam a ser mais difundidos na TI, especialmente no desenvolvimento de software, sejam absorvidos, como metodologias ágeis que pregam entregas pontuais que agregam valor continuamente ao cliente e o DevOps, que foca na interação entre as equipes de desenvolvimento e operação para o alcance de maior agilidade e qualidade nos produtos entregues.

No caso dos processos de liberação e implantação, toda essa realidade é absolutamente aplicável. É preciso racionalizar fluxos, reduzir prazos de entrega, alocar adequadamente recursos, reduzir custos e mitigar riscos. E a aplicação de tecnologias é o que viabiliza essa mudança.

Com a automação do deploy e da configuração da infraestrutura, uma empresa internaliza não só uma nova ferramenta tecnológica, mas também um novo método de trabalho, muito mais eficaz que o manual e que agrega expressivo valor ao negócio.

A partir do momento que ganhos como aceleração do ritmo de entregas e entregas mais adequadas à necessidade são percebidos pelo cliente, a empresa que optou pela automação de processos passa a ter a certeza de que se tornou mais competitiva em seu mercado porque o cliente tende a ser fiel a quem é capaz de entregar mais valor.

Nesse cenário, cabe uma citação de um dos mais renomados especialistas mundiais em inovação, o executivo Greg Brandeau: “Quem não se reinventar vai desaparecer”. E para ter condições de estar dentre as empresas que não desaparecerão, quando o coração do negócio é a TI, é indispensável que as atenções sejam voltadas para a TI bimodal. Só ela dotará uma empresa de recursos para atender às necessidades do novo mercado que cobra flexibilidade e inovação constante.

Voltando para o foco deste post, a automação de deploy, o paralelo que se faz com a necessidade de uma nova roupagem aos modelos de negócio, é que se as empresas não automatizarem seus processos de liberação e implantação de aplicações, elas terão grandes dificuldades para competir com os concorrentes que já entenderam que esse é o caminho para a satisfação dos clientes, essencialmente focados em qualidade e agilidade.

Sua empresa certamente possui lições aprendidas sobre processos manuais de deploy e vale a pena analisar cada uma delas para uma tomada de decisão rumo à automação desse processo. Quer nos ajudar a enriquecer a discussão sobre as diferenças entre esses dois modelos com as experiências já vividas na sua área de desenvolvimento? Use o campo de comentários para compartilhar conosco!

Conheça nossa ferramenta e como ela pode ajudá-lo em seus processos!

2017-08-07T18:58:28+00:000 Comments

Leave A Comment