DevOps: Por que é necessário automatizá-lo?

O ritmo das vers√Ķes de software est√° se tornando cada vez mais fren√©tico. H√° dois anos, 35% das empresas pesquisadas pela CNC Native (Cloud Native Computing Foundation) executavam software diariamente ou semanalmente. Na pesquisa mais recente do CNCF, esse n√ļmero subiu para 65%. Dos entrevistados, o percentual de empresas de software que operam diariamente aumentou de 15% para 27% durante esse per√≠odo. Nas lojas de desenvolvimento de software, √© importante ter pessoas inteligentes e especializadas que sejam realmente boas no desenvolvimento de solu√ß√Ķes de neg√≥cios. No entanto, com as vers√Ķes de software sendo executadas diariamente ou a cada hora, mesmo os melhores nessa √°rea t√™m dificuldade em acompanhar esse processo, o que geralmente envolve “voltar” para fazer as corre√ß√Ķes. Por esse motivo, uma estrat√©gia de conclus√£o / entrega cont√≠nua (CI / CD) bem projetada e altamente automatizada deve ser criada, de acordo com Andrew Davis, da Copado, e autor do Mastering Salesforce DevOps. No Dreamforce 19, Davis descreveu os desafios que as empresas enfrentam atualmente, observando que a acelera√ß√£o efetiva dos ciclos de desenvolvimento requer coordena√ß√£o e ferramentas √ļteis.

Enquanto Davis se dirige √†s equipes do Salesforce, suas vis√Ķes ressoam em todo o campo de TI. Normalmente, ele disse, o desenvolvimento de software segue seis fases que formam a base do DevOps:

  • Entendendo o que os usu√°rios precisam.
  • Crie o que os usu√°rios precisam.
  • Confirma√ß√£o de que o que foi constru√≠do funciona.
  • Confirma√ß√£o de que funciona bem com qualquer outra coisa.
  • Confirma√ß√£o de que nada mais estragar√°.
  • Instale-o nos usu√°rios.
  • Nos √ļltimos tr√™s passos, muitas equipes de desenvolvimento tendem a “trope√ßar”, de acordo com Davis. Assim, Davis transforma o DevOps em um processo de tr√™s etapas: desenvolvimento, entrega da inova√ß√£o e fun√ß√Ķes. Ele explica que existe a parte de desenvolvimento, onde as equipes criam coisas novas, bem como a parte das fun√ß√Ķes, onde as coisas s√£o executadas na produ√ß√£o. Depois, h√° a tradi√ß√£o da inova√ß√£o, que fornece essa inova√ß√£o na produ√ß√£o. √Č por isso que a automa√ß√£o do DevOps √© necess√°ria, para que “ajustes manuais” n√£o sejam necess√°rios na fase entre desenvolvimento e opera√ß√£o. Davis tamb√©m mencionou os recursos de uma estrat√©gia eficaz de DevOps e CI / CD:

  • Todo desenvolvedor e equipe de uma empresa se re√ļne em um n√ļcleo ou c√≥digo comum, pelo menos diariamente.
  • Depois que a base de c√≥digo √© alterada, s√£o realizados testes automatizados. Se os testes falharem ou as coisas derem errado, elas ser√£o corrigidas em dez minutos.
  • A capacidade de automatizar a fase de teste para testes r√°pidos √© crucial para os esfor√ßos de CI / CD, disse Davis. Os desenvolvedores precisam de testes r√°pidos, nos quais podem receber feedback enquanto continuam entusiasmados durante o trabalho. Esses testes devem ser feitos de forma a fornecer feedback pr√≥ximo ao tempo real para os desenvolvedores, em menos de cinco minutos. Testes de unidade mais completos podem ser seguidos.
  • Outro problema que precisa ser resolvido √© o chamado “desvio da configura√ß√£o”, em que “os ambientes perdem a sincroniza√ß√£o por v√°rios motivos”, afirmou Davis. Talvez as equipes estejam fazendo altera√ß√Ķes na produ√ß√£o que n√£o est√£o ajudando no desenvolvimento e nos testes. H√° tamb√©m a possibilidade de que eles tenham mudado seu ambiente de desenvolvimento, mas que haja muito lixo em sua caixa de areia desde 2006, que n√£o foi renovada, para que n√£o se encaixe perfeitamente na produ√ß√£o.