Configurar pipelines básicos de integração contínua e entrega contínua (CI/CD) que automatizam o empacotamento, a compilação e o envio de código para ambientes de entrega de aplicativos é considerado uma prática fundamental do devsecops. Ao automatizar o caminho para a produção, as equipes devsecops podem reduzir erros, aumentar a frequência de implantação, resolver problemas de produção mais rapidamente e melhorar a cultura da equipe.

A criação de um pipeline básico de CI/CD pode ser um catalisador para impulsionar uma cultura de melhoria contínua. Por exemplo, muitas equipes adicionarão automação de testes, verificação de erros e alertas aos seus pipelines para evitar defeitos de publicação ou quebras de builds que afetem a produtividade do desenvolvedor.

“Algumas organizações acreditam que a experiência do desenvolvedor é uma arte mística que envolve máquinas de fliperama ou tênis de mesa, mas os desenvolvedores obtêm maior satisfação com o fluxo suave de suas mudanças, desde o compromisso até o cliente”, diz Paul Stovell, fundador e CEO da Octopus Deploy. “Quando seus desenvolvedores desejam fazer um ótimo trabalho, CI/CD é a diferença entre a frustração total e a alegria do desenvolvedor.”

O desenvolvimento de pipelines de CI/CD e suas plataformas subjacentes é uma disciplina madura de devsecops, mas há espaço para melhorias. Aqui estão seis maneiras de melhorar o estado atual dos pipelines de CI/CD e gerar impactos comerciais significativos.

6 maneiras de aproveitar melhor seus pipelines de CI/CD

  1. Aumente os testes contínuos com genAI
  2. Implantação contínua de destino
  3. Adote CI/CD híbrido
  4. Segurança Shift-Left com plug-ins CI/CD
  5. Proteja e melhore a observabilidade do pipeline
  6. Entenda os impactos nos negócios

Aumente os testes contínuos com genAI

Oitenta por cento dos entrevistados no Relatório de Qualidade Mundial 2023-24 disseram que 25% a 50% dos seus testes automatizados foram integrados em pipelines de entrega. Portanto, não é nenhuma surpresa que 39% dos entrevistados identificaram CI/CD como a habilidade mais crítica para associados de engenharia de qualidade, ficando em segundo lugar, atrás das habilidades de codificação. A implicação é que existe uma vontade de melhorar os testes contínuos, mas muitas organizações ainda têm uma “dívida de qualidade” – um acúmulo de testes que não são automatizados em seus pipelines de CI/CD.

David Brooks, vice-presidente sênior de evangelismo da Copado, diz: “Você poderia pensar que a automação de testes é bem adotada, mas a verdade é que muitas empresas ainda dependem de testes manuais, e aquelas que automatizam mal cobrem um terço de seus recursos. Na realidade, a manutenção é demais.”

Brooks refere-se ao trabalho de manutenção, que inclui a atualização da automação quando o código muda, melhorando o desempenho do teste e aumentando os dados de teste. Os dados sintéticos são uma solução potencial para gerar um conjunto de dados de teste mais abrangente, e a genAI pode provar ser uma virada de jogo para o controle de qualidade ao expandir o número de testes automatizados e simplificar sua manutenção.

“A IA finalmente tornará os testes automatizados uma parte confiável dos pipelines de CI/CD, em vez de um gatekeeper instável que atrasa as equipes”, diz Gevorg Hovsepyan, chefe de produto da Mabl. “A maioria das equipes de desenvolvimento busca a genAI para gerar casos de teste, mas se esses novos testes falharem constantemente, os pipelines de CI/CD serão paralisados. Usar genAI para atualizar testes automaticamente à medida que o produto muda é a maneira mais impactante de aprimorar os recursos de CI/CD.”

Outro caminho para melhorar os testes contínuos é incorporar testes de desempenho, estresse e escalabilidade em pipelines de CI/CD. Ferramentas de teste de desempenho como Gatling, LoadNinja, LoadRunner e Katalon têm integrações com as principais plataformas de CI/CD.

Implantação contínua de destino

O teste contínuo é um pré-requisito para a implantação contínua, um processo em que as equipes de devsecops estendem o CI/CD para implantação em ambientes de produção. Minha lista de verificação para preparação para implantação contínua também inclui fazer com que as equipes de desenvolvimento usem sinalização de recursos, desenvolvam uma estratégia de lançamento canário e usem uma plataforma AIops em operações de TI.

Os impactos comerciais da implantação contínua podem ser importantes para organizações onde a implantação de mudanças frequentes e a solução rápida de problemas de produção de aplicativos são essenciais. Muitas empresas de SaaS, empresas que desenvolvem aplicativos voltados para o cliente e outras que criam aplicativos de missão crítica para funcionários usam métricas DORA para medir como a implantação contínua e outras práticas de devsecops geram impactos nos negócios.

De acordo com o Relatório sobre o estado do CI/CD 2024: A evolução do desempenho de entrega de software, a implantação contínua reduz significativamente o prazo de entrega para alterações de código, uma métrica DORA definida como o tempo desde o commit do código até a produção bem-sucedida do código. Daqueles capazes de implementar várias vezes por dia, 53% viram um tempo de espera para alterações de código inferior a um dia, em comparação com os 27% que implementaram entre uma vez por hora e uma vez por semana, e 9% que implementaram entre uma vez por semana e uma vez por mês.

“As ferramentas Devops habilitadas para IA prometem oferecer 30% ou mais de produtividade ao desenvolvedor”, diz Kumar Chivukula, fundador e CEO da Opsera. “Após a primeira onda de implantações, as empresas agora procuram desesperadamente um mecanismo automatizado para capturar insights, KPIs e métricas DORA para comprovar as afirmações do setor e o ROI realizado.”

Melhorar o tempo de espera para alterações de código pode ser significativo para aplicações onde defeitos e tempo de inatividade resultam em perda de receita, experiências ruins do cliente ou interrupções no fluxo de trabalho dos funcionários.

Adote CI/CD híbrido

Um dado surpreendente no Estado de CI/CD relatório foi o número de plataformas de CI/CD que os entrevistados possuíam e como isso impactou as métricas DORA. As empresas que usam uma abordagem híbrida de plataformas de CI/CD auto-hospedadas e gerenciadas superaram aquelas que padronizaram uma abordagem ou não usavam plataformas de CI/CD.

Das empresas que utilizam uma abordagem híbrida, 49% tinham um prazo de entrega inferior a uma semana para mudanças e 24% tinham um prazo de entrega inferior a um dia. Sessenta e seis por cento normalmente poderiam restaurar o desempenho do serviço após uma interrupção não planejada em menos de um dia, e 25% poderiam fazê-lo em menos de uma hora. Essas taxas foram significativamente melhores do que aquelas que usaram apenas uma abordagem. O relatório também mostrou que as organizações que usam três ou menos plataformas de CI/CD geralmente superam aquelas com mais de três ferramentas.

Há muitos motivos pelos quais as organizações podem ter múltiplas plataformas de CI/CD. Por exemplo, uma empresa pode usar Copado ou Opsera para implantar aplicativos no Salesforce, usar Jenkins para aplicativos de data center, GitHub Actions para aplicativos nativos da nuvem e, em seguida, herdar implementações usando AWS CodeBuild e AWS CodePipeline após adquirir uma empresa. A pesquisa sugere os benefícios de ter múltiplas soluções, mas recomenda consolidar e padronizar soluções com capacidades semelhantes.

Segurança Shift-Left com plug-ins CI/CD

Uma área importante a ser pesquisada, prova de conceito e implementação é o uso de plug-ins para integrar recursos de terceiros em pipelines de CI/CD. Jenkins, a plataforma CI/CD com maior participação de mercado, anuncia 1.900 plug-ins, com seus principais plug-ins suportando conexões com Git, Jira e Kubernetes. Plug-ins de segurança e qualidade de código são essenciais para avaliação e podem minimizar vulnerabilidades antes que o código seja compilado e implantado.

“Os recursos subutilizados incluem análise preditiva para identificar possíveis falhas de implantação e IA com revisão de código de qualidade para identificar bugs, vulnerabilidades de segurança e problemas de governança de dados”, afirma Aislinn Wright, vice-presidente de gerenciamento de produtos da EDB. “Essas ferramentas podem aumentar muito a agilidade e a eficiência dos processos Devops, mas exigem um nível mais alto de maturidade tecnológica e esforço de integração, o que pode contribuir para suas taxas de adoção mais lentas.”

Os recursos de segurança que se conectam aos pipelines de CI/CD incluem verificação de segurança de contêiner, testes estáticos de segurança de aplicativos (SAST), verificação de qualidade de código e verificação de vulnerabilidade da cadeia de suprimentos de software.

“Os líderes empresariais priorizam recursos confiáveis, seguros e de alto valor para clientes com zero problemas de SEV-1 ou SEV-2 na produção, entregues rapidamente e em escala”, afirma Peter McKee, chefe de relações e comunidade com desenvolvedores da Sonar. “O Devops atua como guardião dessas necessidades, mas o teste de qualidade do código é um aspecto crucial muitas vezes esquecido. Embora os testes unitários, os testes de integração e os testes ponta a ponta garantam a funcionalidade, eles deixam de avaliar a qualidade do código. Incluir a análise de código estático no processo de CI/CD garante um código limpo, promovendo confiabilidade, capacidade de manutenção e segurança, vitais para atender às demandas modernas.”

Proteja e melhore a observabilidade do pipeline

Além dos plug-ins que fornecem recursos de segurança, as equipes de devsecops também devem tomar medidas para proteger os pipelines de CI/CD. A folha de dicas de segurança de CI/CD da OWASP é um bom recurso para revisar riscos de CI/CD, configurações seguras de pipeline, considerações de gerenciamento de identidade e acesso (IAM), gerenciamento de código de terceiros e outras práticas recomendadas. Os principais riscos de segurança de CI/CD incluem:

  • Pipelines sem controles de autorização que evitam envios de código inadvertidos ou mal-intencionados.
  • Problemas de cadeia de dependência quando estações de trabalho de desenvolvimento ou ambientes de construção extraem pacotes maliciosos.
  • Utilizar serviços de terceiros sem validação e controles adequados.

As equipes de Devsecops devem encontrar um equilíbrio entre os aprimoramentos de CI/CD que aceleram as frequências de implantação e aqueles que abordam os riscos de segurança. Além de proteger seus pipelines, as equipes devem melhorar a observabilidade do DevOps para ajudar a identificar problemas de desempenho, rastrear gargalos de teste e permitir a depuração de problemas de conexão com serviços de terceiros.

Uma abordagem para reunir considerações operacionais e de segurança é aproveitar ferramentas que suportam políticas como código (PaC). Esses sistemas abstraem políticas e regras em código, fornecendo às equipes devsecops uma maneira escalonável de capturar, implementar e dimensionar regras de negócios operacionais e de segurança.

“A política como código é um recurso poderoso para gerenciar consistentemente políticas críticas em dados altamente confidenciais, fornecendo um sistema automatizado e autodocumentado para equipes de segurança, governança e devops”, afirma Mike Scott, CISO da Immuta. “A política como código pode ser implementada usando um pipeline de CI/CD que realiza testes e validação, implantando automaticamente políticas validadas em ambientes de produção.”

As organizações Devsecops com muitos pipelines ativos, serviços integrados e plug-ins podem encontrar maneiras de simplificar e criar pipelines reutilizáveis ​​quando as regras de negócios subjacentes são desenvolvidas com plataformas e serviços PaC.

Entenda os impactos nos negócios

As equipes Devsecops devem explorar essas opções mais avançadas e determinar quais métricas DORA implementar por meio de ciclos de melhoria contínua. Mas Srikumar Ramanathan, diretor de soluções da Mphasis, compartilha um lembrete importante de que o objetivo final de qualquer sistema é servir o negócio.

Ele diz: “Muitas vezes, nós, como tecnólogos, nos empolgamos na implementação da tecnologia mais recente e geek, apenas por si só. Mudar para a esquerda realmente significa adotar uma visão comercial das coisas. Isso é muito necessário quando se considera controle de qualidade, segurança, observabilidade e automação.”

Uma prática recomendada é definir os beneficiários e as propostas de valor daqueles que se beneficiam das melhorias operacionais e de segurança do devsecops. A partir daí, as equipes devsecops podem decidir em quais recursos focar e direcionar métricas de desempenho com valor comercial significativo.