À l’occasion de sa conférence re :Invent, AWS a annoncé aujourd’hui une série de mises à jour de Q Développeur, sa plate-forme d’assistant de codage qui est en concurrence avec GitHub Copilot. L’objectif est d’aller au-delà de la complétion de code et d’aider les développeurs à effectuer un plus large éventail de tâches de routine dans le cycle de vie du logiciel de bout en bout.
Le service, dont vous vous souvenez peut-être encore sous son ancien nom de « CodeWhisperer », fait partie de la plate-forme globale d’IA générative Amazon Q d’AWS, qui comprend également Q Business (et qui reçoit également une multitude de mises à jour aujourd’hui).
« Ce dont les développeurs ont besoin, c’est qu’ils veulent que Q soit le partenaire nécessaire pour résoudre une partie du gros du travail indifférencié afin qu’ils puissent avoir plus de liberté pour innover », m’a expliqué Swaminathan « Swami » Sivasubramanian, vice-président de l’IA et des données chez AWS. « C’est pourquoi il est si important d’avoir un assistant – ou un copain – qui les aide à faire les choses plus rapidement, de manière plus rationalisée, et c’est pourquoi nous nous y concentrons beaucoup. »
Gestion du cycle de vie logiciel de bout en bout
Sivasubramanian m’a dit qu’il pensait que ce qui différencie Q Developer des plates-formes concurrentes, c’est qu’elle se concentre sur l’ensemble du cycle de vie du développement logiciel. Jusqu’à présent, il s’agissait d’aider les développeurs à résoudre les problèmes et à effectuer des tâches en plusieurs étapes pour les résoudre (ou à créer des applications entièrement nouvelles), ainsi qu’à analyser le code à la recherche de failles de Sécurité.
Avec cette re :Invent, l’entreprise va encore plus loin. Q peut désormais, par exemple, générer automatiquement des tests unitaires, par exemple. Mais ce qui est peut-être encore plus important, c’est qu’il peut désormais faire la chose que de nombreux développeurs détestent le plus : écrire et maintenir la documentation de ce code. Pour terminer ce cycle, Q peut désormais générer une première révision de code lorsque les développeurs archivent leur code.
« Chez Amazon, nous avons cette règle selon laquelle aucun code n’est jamais archivé sans un examen du code », a déclaré Sivasubramanian. « Donc, si vous ne faites pas de révision de code, vous ne pouvez pas archiver le code. Mais peu d’entreprises ont suffisamment d’ingénieurs seniors pour examiner ou l’ingénieur senior dit : « Je ne peux pas gérer autant d’évaluations. Quelqu’un peut-il d’abord l’examiner avant que nous ne le fassions ? Q : Nous simplifierons le processus de révision du code en étant le premier réviseur et en nous chargeant de la vérification automatique de la qualité du code, des vulnérabilités de sécurité, etc.
Ensuite, une fois le code en production, un nouvel agent d’exploitation pour Q peut désormais extraire automatiquement les données d’AWS CloudWatch, le service de surveillance de l’entreprise, et commencer immédiatement à enquêter lorsqu’une alarme se déclenche. [knowlege it has about an] ressources AWS de l’organisation, puis il passe au crible des centaines de points de données à travers diverses ressources stockées dans CloudWatch. Ensuite, après l’avoir analysé, Q propose une hypothèse potentielle pour la cause profonde, puis il guide les utilisateurs sur la façon de la résoudre », a expliqué Sivasubramanian.
Tout ce que vous vouliez pour Noël, c’était de l’aide pour vos migrations Cobol et .NET, n’est-ce pas ?
Pour les entreprises disposant de bases de code plus anciennes, la transition vers le cloud implique souvent de réécrire une grande partie de leur code existant. L’une des premières fonctionnalités différenciantes d’Amazon Q Developer était son agent de transformation de code. À l’époque, l’objectif de cet agent était de modération d’anciennes applications Java. Aujourd’hui, l’équipe élargit cela en aidant également le développeur à mettre à jour leurs anciens . Applications basées sur NET de Windows à Linux.
Et bien que cela puisse sembler à première vue une curiosité, AWS lance également un agent pour moderniser les applications mainframe COBOL. Après tout, de nombreuses grandes entreprises s’appuient encore sur ce vieux code, avec lequel peu de développeurs savent travailler aujourd’hui. Il s’agit de migrations très complexes, a souligné M. Sivasubramanian, et l’objectif ici n’est donc pas de simplement traduire le code existant 1:1.
« Notre objectif n’est pas de nous contenter d’un projet entièrement COBOL, d’un code », a-t-il déclaré. « La réalité, c’est que ces projets sont intrinsèquement extrêmement complexes. Il faut avoir un humain dans la boucle pour en tirer parti, mais j’ai entendu des clients dire : « Hé, cela prend plusieurs années et les clients nous ont explicitement dit que cela changeait la donne et que cela réduirait considérablement ce délai. »
Sivasubramanian a noté que même s’il y a moins de code COBOL pour entraîner les modèles afin d’automatiser la migration du code, l’équipe a pu tirer parti de l’expérience globale d’AWS dans la modernisation des applications mainframe, ainsi que des méthodes plus traditionnelles de traduction de code.
« Transférer du code d’un langage à un autre est sans doute la partie la plus facile », a-t-il déclaré. « Mais le plus difficile, c’est de savoir comment Savez-vous que vous avez bien fait les choses ? Et comment savez-vous même ce que fait le code ? Et puis le défi dans ces [codebases] est qu’ils sont généralement mal documentés et que les dépendances ne sont pas bien comprises. Donc, ce que nous avons construit est vraiment extrêmement innovant, et [the system] comprend également, au niveau du projet, quels sont les objectifs de chacun des modules, puis planifie et crée un calendrier de planification de la migration pour générer le code, puis générer le test, et faire participer les humains à la boucle pour voir comment vous le validez.