L'IA générative a ouvert la voie à une nouvelle vague d'innovations capables de prendre en charge de nombreux aspects fastidieux et chronophages du développement et de la livraison de logiciels et, par conséquent, d'accélérer les workflows DevSecOps. Toutefois, pour exploiter pleinement le potentiel de l'IA générative, cette technologie ne doit pas être cantonnée à la création de code. Elle doit au contraire être intégrée à l'ensemble du développement logiciel.
Selon notre enquête 2024 menée auprès de plus de 5 000 professionnels DevSeOps, les développeurs consacrent moins de 25 % de leur temps à créer du code. Entre la première validation et le passage en production, de nombreuses autres tâches doivent être effectuées, qui pourraient bénéficier de la puissance de l'IA.
L'IA peut être incorporée à chaque étape pour aider à piloter le développement, de l'idée à la livraison, et créer de meilleurs logiciels plus sécurisés plus rapidement. Par exemple, l'IA peut accélérer une tâche banale, par exemple, l'examen d'un échec de compilation, en identifiant le problème et en proposant des mesures correctives. Bien que la tâche doive toujours être effectuée, l'IA peut réduire le nombre d'étapes et le temps nécessaires pour l'accomplir.
Voici les actions que votre équipe DevSecOps peut mettre en place pour comprendre et mesurer l'impact de l'IA générative.
Commencez par évaluer vos workflows
Vous devez effectuer un travail initial pour comprendre l'impact de l'IA dans les moindres détails, notamment revoir vos workflows. Identifiez le workflow idéal que vous pouvez mettre en place pour uniformiser la façon dont vous utilisez l'IA et établir des garde-fous appropriés afin de réduire les risques que l'IA pourrait introduire.
Par exemple, si votre équipe se sert de l'IA générative pour écrire du code, celui-ci peut inclure des failles de sécurité. Cela fait partie du processus. Vous aurez donc besoin d'un workflow capable de détecter ces failles et de réduire les chances qu'elles passent en production. Une fois le workflow établi, vous pouvez commencer à introduire différentes fonctionnalités d'IA de manière plus cohérente, ce qui augmentera la vélocité de développement.
Voici un exemple de la façon dont l'évaluation initiale de votre workflow peut vous permettre de mieux tirer parti des avantages offerts par l'IA. L'IA peut automatiquement créer des tests pour vous, mais il n'est toutefois pas souhaitable qu'elle le fasse après la création du code. Les développeurs ne font pas partie de l'équipe d'assurance qualité, c'est-à-dire qu'ils ne testent pas le code qu'ils ont écrit. L'IA générative fonctionne de la même manière. Le workflow d'un test généré par l'IA doit être effectué assez tôt pour que les développeurs puissent utiliser les informations contenues dans les tickets pour générer de manière interactive des tests unitaires pour le code qu'ils souhaitent écrire. Ils peuvent d'abord créer les merge requests où le test est effectué. Leurs suggestions de code sont ainsi plus robustes lorsqu'ils effectuent le pull de la branche pour l'implémentation, car le contexte inclut désormais les tests appropriés et ils obtiennent plus de réponses que s'ils avaient commencé directement avec le code.
Vous ne pouvez pas réorganiser tous vos workflows à la fois. Concentrez-vous sur ceux qui ont trait à vos principaux défis de développement et de livraison de logiciels, tels que la modernisation des code bases hérités, la gestion d'un plus grand nombre de tickets de sécurité ou l'adaptation à des budgets et à un nombre d'employés toujours plus limités.
Établissez des garde-fous pour l'IA
Prenez également en compte le risque que pose l'IA vis-à-vis des données avec lesquelles elle interagit. Assurez-vous de mettre en place des garde-fous pour l'atténuer et répondre à vos besoins uniques en matière de conformité. Passez en revue les modèles d'IA que vous utilisez, votre accès à des bases de données vectorielles et les méthodes d'entraînement des grands modèles de langage (LLM).
Vous devrez réunir vos équipes juridique, de conformité et DevSecOps pour poser des questions difficiles à vos fournisseurs d'IA à ces sujets. Nous fournissons des conseils utiles dans le Centre pour la transparence de l'IA de GitLab et notre article de blog sur la création d'une stratégie d'IA axée sur la transparence.
Un autre garde-fou essentiel consiste à optimiser le nombre d'outils d'IA distincts que vous utilisez tout au long du cycle de développement logiciel et dans votre entreprise. Plus vous en utilisez, plus vous introduisez des complexités, ce qui peut entraîner des problèmes au niveau des opérations et de la surveillance, et poser des risques de sécurité. L'utilisation de multiples outils entraîne en outre une augmentation des frais généraux.
Mesurez l'impact de l'IA
Mesurer les changements en matière de productivité et d'autres indicateurs clés est essentiel pour bien comprendre l'impact de l'IA sur votre entreprise. En règle générale, les entreprises s'intéressent à la fréquence de livraison du code en production, aux quatre métriques DORA ou au temps nécessaire pour corriger les bogues. Ces indicateurs ne donnent toutefois pas une vision globale.
Chez GitLab, nous standardisons les workflows au sein de notre structure hiérarchique de groupes et de projets pour mesurer l'impact de l'IA. Nous pouvons ainsi passer les indicateurs des équipes aux unités commerciales et analyser les données de sortie directement dans l'interface utilisateur.
Lorsque l'IA vient s'ajouter à cette structure, on remarque l'augmentation de la vélocité, y compris le temps nécessaire pour résoudre les vulnérabilités et valider les relecteurs et les tests des merge requests, ce qui accélère les revues de code. Vous pouvez voir toutes les étapes dans GitLab, y compris les dépendances, et le delta qu'il faut à l'équipe de développement pour chacune d'elles. Les tableaux de bord illustrent cette rapidité et permettent d'ajuster facilement la stratégie en fonction de ces données. Par exemple, vous pouvez décider de passer le logiciel en production ou non.
Cas pratiques d'utilisation d'un assistant d'IA SDLC
Voici plusieurs façons pratiques d'utiliser les assistants d'IA comme GitLab Duo tout au long du cycle de développement logiciel.
-
Rédaction des descriptions des merge requests : automatisez la création de descriptions complètes pour les merge requests pour saisir rapidement et précisément la portée de la chaîne de validations d'une MR. L'IA peut également identifier les tâches manquantes en fonction du code écrit et de l'intention du ticket lié à la merge request.
-
Explication du code en langage naturel : les testeurs d'assurance qualité peuvent utiliser les explications de code pour le comprendre rapidement et facilement. Par exemple, si une merge request comprend du code écrit en Rust et un ensemble complexe de méthodes, le testeur d'assurance qualité peut sélectionner les méthodes et recevoir une explication en langage naturel de l'objectif de la modification. Il peut ainsi écrire des cas de test plus adaptés qui couvriront non seulement le bon fonctionnement, mais également les problèmes potentiels.
-
Analyse des causes profondes des erreurs de pipeline : lorsque vous réusinez des pipelines devenus volumineux, vous pouvez casser le code. Ce problème peut être difficile à résoudre, en particulier si vous exécutez une série de scripts bash ou une image Docker à partir des commandes internes de l'image. Vous pouvez exécuter les erreurs dans l'IA générative. Elle vous fournit une cause racine possible et recommande une solution que vous pouvez copier et coller directement dans votre job CI.
-
Résolution des vulnérabilités : lorsque la sécurité est intégrée en amont précipitamment, les équipes d'ingénierie doivent rapidement maîtriser le sujet. Grâce à l'IA générative, les ingénieurs peuvent accéder au chat pour savoir quelle est la vulnérabilité, où elle se trouve dans le code et même ouvrir une merge request automatisée contenant un correctif possible. Toutes ces actions se font dans la fenêtre de développement, sans changement de contexte.
GitLab Duo : votre guichet unique pour des fonctionnalités d'IA génératives percutantes
Nous construisons GitLab Duo, notre boîte à outils de fonctionnalités d'IA pour la plateforme DevSecOps en pleine expansion, à partir de puissants modèles d'IA génératifs et de technologies de pointe provenant de fournisseurs d'hypercloud. Aujourd'hui, GitLab Duo propose des fonctionnalités en disponibilité générale, en phase bêta et expérimentales, allant de l'assistant de code au chat conversationnel en passant par l'explication des vulnérabilités. Lorsqu'il est utilisé de manière cohérente tout au long du cycle de développement logiciel, GitLab Duo multiplie par 10 la rapidité du cycle de vie. Les entreprises peuvent donc faire plus malgré des moyens limités, et les employés ont la possibilité de se consacrer aux tâches à plus forte valeur ajoutée.
Le rapport « Omdia Market Radar: AI-Assisted Software Development, 2023–24 » considère GitLab Duo comme l'un des produits « adaptés au développement d'applications de qualité professionnelle ». Le cabinet d'analystes souligne que son « assistance alimentée par l'IA est intégrée dans le pipeline SDLC ».
Voici un aperçu des fonctionnalités de GitLab Duo :
La maturité de l'IA dans l'approche DevSecOps
Lisez les conclusions de notre enquête menée auprès de plus de 5 000 professionnels DevSecOps dans le monde entier pour savoir comment les entreprises intègrent l'IA dans le cycle de vie du développement logiciel.
Lire le rapport