The Source Inteligência artificial
Artigo

Como utilizar a IA generativa da melhor forma no ambiente DevSecOps

Saiba como a inteligência artificial, quando integrada em toda a plataforma, pode trazer resultados reais para as empresas e suas equipes de DevSecOps.

March 7, 2024 7 min de leitura
Taylor McCaslin
Taylor McCaslin Gerente de Grupo, Produto – Ciência de Dados

A IA generativa deu início a uma nova onda de inovação que tem tudo para diminuir muitas etapas manuais e demoradas do desenvolvimento e da entrega de software e, como resultado, acelerar os fluxos de trabalho de DevSecOps. No entanto, para aproveitar todo o potencial da IA generativa, a tecnologia precisa estar presente não apenas no momento da criação do código, mas em todo o processo.

De acordo com nossa pesquisa de 2024 com mais de 5 mil profissionais de DevSeOps, a criação de código ocupa menos de 25% do tempo de um desenvolvedor. Há muitas outras tarefas essenciais entre o primeiro commit e a produção que podem se beneficiar do poder da IA.

A IA pode ser integrada em todas as etapas para orientar o software, desde à concepção à entrega, criando um produto melhor e mais seguro com maior rapidez. Por exemplo, é possível otimizar uma tarefa corriqueira como a análise de uma compilação com falha usando a IA para avaliar o que está errado e corrigir o problema. Embora a IA não elimine a tarefa, ela pode ajudar a reduzir as etapas e o tempo necessários para concluí-la.

Confira aqui o que sua equipe de DevSecOps pode fazer para começar a entender e quantificar o impacto da IA generativa.

Comece com uma avaliação dos seus fluxos de trabalho

Antes de entender completamente o impacto da IA, você precisa preparar o terreno, revisando seus fluxos de trabalho, por exemplo. É importante saber como seria o fluxo de trabalho ideal que você pode desenvolver para abordagem uniforme de uso da IA. Também é preciso ter os verificadores de integridade corretos para reduzir os riscos que a IA possa apresentar.

Por exemplo, se sua equipe escreve código com IA generativa, parte do código gerado pode incluir vulnerabilidades de segurança. Faz parte do processo. Portanto, você precisa de um fluxo de trabalho que identifique essas vulnerabilidades e reduza a chance de que elas cheguem ao ambiente de produção. Depois de definir esse fluxo de trabalho, você pode incluir funcionalidades de IA de maneira mais uniforme, o que pode agilizar seu desenvolvimento.

Confira aqui um exemplo de como uma avaliação inicial do seu fluxo de trabalho pode otimizar os benefícios da IA. Embora a IA possa criar testes automaticamente, o ideal não é que isso seja feito depois que o código já foi criado. Os desenvolvedores não fazem parte da equipe de QA porque só testam o que escreveram. A IA generativa age de forma parecida. O teste gerado pela IA deve ocorrer antes no seu fluxo de trabalho para que os desenvolvedores possam usar informações nos tíquetes para gerar testes unitários interativamente para o código que querem escrever. Ao considerar o fluxo de trabalho, eles podem criar as solicitações de merge com o teste primeiro. Dessa forma, quando fizerem pull do branch para trabalhar na implementação, suas sugestões de código serão mais robustas porque o contexto irá incluir os testes adequados. Além disso, o número de respostas certas será muito maior do que se começassem com o código diretamente.

Não é possível reformular todos os fluxos de trabalho de uma só vez, portanto, concentre-se naqueles relacionados aos seus principais desafios de desenvolvimento e entrega de software, como modernizar codebases legados, gerenciar o aumento de tíquetes de segurança ou operar com orçamentos e equipes cada vez mais reduzidos.

Estabeleça verificadores de integridade de IA

Também é importante considerar o risco da IA em relação aos dados com os quais ela interage. Por isso, verificadores de integridade devem ser implementados para mitigar esse risco e atender às suas exigências de conformidade específicas. Você deve considerar os modelos de IA que usa, se acessa bancos de dados vetoriais e como os modelos de linguagem de grande porte (LLMs) são treinados.

Para lidar com essas questões, as equipes jurídica, de conformidade e de DevSecOps devem fazer perguntas difíceis aos provedores de IA juntas. Compartilhamos algumas orientações úteis no GitLab AI Transparency Center e no nosso post sobre como criar uma estratégia de IA que priorize a transparência.

Outro verificador de integridade essencial é otimizar o número de ferramentas de IA individuais que você usa no ciclo de vida do desenvolvimento de software e em toda a empresa. Quanto mais ferramentas são usadas, maior é a complexidade, o que pode causar problemas operacionais, desafios de supervisão e riscos de segurança. Além disso, o uso de muitas ferramentas também aumenta os gastos gerais.

Avalie o impacto da IA

Medir as mudanças na produtividade e outras métricas importantes é essencial para entender o impacto real da IA na empresa. Normalmente, as empresas analisam o resultado considerando a frequência com que enviam o código para o ambiente de produção, as quatro métricas DORA ou o tempo necessário para remediar bugs. Mas esses indicadores não representam o cenário geral.

No GitLab, medimos o impacto da IA padronizando os fluxos de trabalho dentro da estrutura hierárquica de grupos e projetos para acumular métricas das equipes para unidades de negócios e analisar esses resultados diretamente na interface do usuário.

Ao implementar a IA em cima dessa estrutura, o aumento da velocidade é perceptível, incluindo o tempo necessário para resolver vulnerabilidades e validar se as solicitações de merge têm os revisores e os testes certos, o que reduz o tempo do processo de revisão de código. Você pode conferir cada etapa no GitLab, incluindo dependências, e o delta que a equipe de desenvolvimento leva para passar por essas etapas. Os painéis de controle mostram a velocidade e facilitam o redirecionamento com base nesses dados. Por exemplo, você pode decidir se quer lançar o software no ambiente de produção.

Usos práticos de um assistente de IA no SDLC

Confira algumas maneiras práticas de usar assistentes de IA como o GitLab Duo no ciclo de vida do desenvolvimento de software.

  • Escreva descrições de solicitações de merge: automatize a criação de descrições detalhadas para solicitações de merge e resuma de forma rápida e precisa as principais alterações feitas nos commits de uma MR. Também é possível identificar tarefas que faltam com base no código escrito e na intenção do tíquete vinculado à MR.

  • Explique o código em linguagem natural: com uma a explicação do código, os testadores de QA conseguem entender o código de forma mais fácil e rápida. Por exemplo, se uma MR inclui código escrito em Rust e um conjunto complexo de métodos, o testador de QA pode destacar os métodos e receber uma descrição em linguagem natural sobre o que a mudança está tentando fazer. Assim, o testador de QA pode escrever casos de teste muito melhores que abrangem não apenas cenários positivos, mas também que apresentem dificuldades.

  • Análise da causa raiz de erros de pipeline: se seus pipelines estiverem aumentando e você tentar refatorar o código, poderá criar um problema que talvez seja difícil de solucionar, especialmente se estiver executando uma série de scripts Bash ou uma imagem Docker aproveitando comandos internos dentro da imagem. Quando você verifica os erros que recebe por meio da IA generativa, eles indicam a possível causa raiz e uma solução recomendada que pode ser copiada e colada diretamente no job de CI.

  • Resolução de vulnerabilidades: na pressa de mudar a segurança para a esquerda, as equipes de engenharia precisaram se tornar especialistas em segurança rapidamente. Com a IA generativa, os engenheiros podem acessar o chat para descobrir qual é a vulnerabilidade, onde ela está no código e até abrir uma MR automatizada com uma possível correção. Tudo isso dentro do intervalo de desenvolvimento, portanto, sem alternância de contexto.

GitLab Duo: uma solução única para recursos de IA generativa de grande impacto

Estamos desenvolvendo o GitLab Duo, nossa caixa de ferramentas de recursos de IA para a plataforma DevSecOps, com modelos potentes de IA generativa e tecnologias de ponta de fornecedores de hipercloud. Hoje, o GitLab Duo tem recursos nas fases de disponibilidade geral, beta e experimental, que vão do assistente de código ao assistente do chat e ao explicador de vulnerabilidades. Quando usado de forma contínua em todo o ciclo de vida do desenvolvimento de software, o GitLab Duo agiliza a duração do ciclo em 10 vezes, o que ajuda as empresas a fazer mais com menos e permite que os funcionários dediquem seu tempo em tarefas de maior valor.

O relatório "Omdia Market Radar: AI-Assisted Software Development, 2023–24" destacou o GitLab Duo como um dos produtos que a empresa de analistas considera "adequado para o desenvolvimento de aplicações de nível empresarial", apontando que seu "assistente de IA está integrado em todo o pipeline do SDLC".

Confira os recursos do GitLab Duo em ação:

>

Descubra os avanços da IA no DevSecOps

Leia os resultados da nossa pesquisa com mais de 5 mil profissionais de DevSecOps em todo o mundo para conferir insights sobre como as empresas incorporam a IA ao ciclo de vida do desenvolvimento de software (disponível em inglês).
Acesse o relatório

Principais conclusões
  • Para aproveitar ao máximo o potencial da IA no DevSecOps, é essencial incorporar a IA não apenas na etapa de criação do código, mas em todo o ciclo de vida do desenvolvimento de software.
  • A consolidação das ferramentas de IA em toda empresa reduz a complexidade, os riscos operacionais e os custos, promovendo um ambiente otimizado e seguro.
  • Avaliar a eficácia da IA exige mais que métricas tradicionais, como frequência de produção de código. Implemente fluxos de trabalho padrão para coletar métricas abrangentes, como tempo de resolução de vulnerabilidades e eficiência na revisão de código.