En su conferencia re:Invent, AWS anunció hoy una serie de actualizaciones para Desarrollador Qsu plataforma de asistente de codificación que compite con empresas como GitHub Copilot. El objetivo aquí es ir más allá de la finalización del código y ayudar a los desarrolladores con una gama más amplia de tareas rutinarias involucradas en el ciclo de vida del software de un extremo a otro.
El servicio, que quizás aún recuerde con su nombre anterior de ‘CodeWhisperer’, es parte de la plataforma general de inteligencia artificial generativa Amazon Q de AWS, que también incluye Q Business (y que también está recibiendo una gran cantidad de actualizaciones hoy).
«Lo que los desarrolladores necesitan es que Q sea el compañero para resolver parte del trabajo pesado indiferenciado para que puedan tener más libertad para innovar», me dijo Swaminathan ‘Swami’ Sivasubramanian, vicepresidente de IA y datos de AWS. . «Por eso es tan importante tener un asistente, o un compañero, que les ayude a hacer las cosas más rápido y más ágilmente, y es por eso que nos centramos en ello a lo grande».
Gestión del ciclo de vida del software de un extremo a otro
Sivasubramanian me dijo que cree que lo que diferencia a Q Developer de las plataformas de la competencia es su enfoque en todo el ciclo de vida del desarrollo de software. Hasta ahora, eso significaba ayudar a los desarrolladores a solucionar problemas y realizar tareas de varios pasos para solucionarlos (o crear aplicaciones completamente nuevas), así como escanear el código en busca de vulnerabilidades de seguridad.
En este re:Invent, la empresa va un paso más allá. Q ahora puede, por ejemplo, generar automáticamente pruebas unitarias, por ejemplo. Pero lo que quizás sea aún más importante es que ahora también puede hacer lo que muchos desarrolladores más odian: escribir y mantener la documentación para ese código. Para completar este ciclo, Q ahora puede generar una primera revisión de código cuando los desarrolladores revisan su código.
«En Amazon, tenemos la regla de que ningún código se registra sin una revisión del código», dijo Sivasubramanian. “Entonces, si no realiza una revisión del código, no podrá registrar el código. Pero no muchas empresas tienen suficientes ingenieros superiores para revisar o el ingeniero superior dice: «No puedo hacer frente a tantas revisiones». ¿Alguien puede revisarlo primero antes de que lo hagamos? Q agilizaremos el proceso de revisión del código siendo la primera línea de revisores y nos encargaremos de verificar automáticamente la calidad del código, las vulnerabilidades de seguridad, etc.
Luego, una vez que el código está en producción, un nuevo agente de operaciones para Q ahora puede extraer datos automáticamente de AWS CloudWatch, el servicio de monitoreo de la compañía, e inmediatamente comenzar a investigar cuando suena una alarma. “Utiliza el [knowlege it has about an] los recursos de AWS de la organización y luego analiza cientos de puntos de datos en varios recursos ubicados en CloudWatch. Luego, después de analizarlo, Q presenta posibles hipótesis para la causa raíz y luego guía a los usuarios sobre cómo solucionarlo”, explicó Sivasubramanian.
Todo lo que querías para Navidad era ayuda con tus migraciones de Cobol y .NET, ¿verdad?
Para aquellas empresas con bases de código más antiguas, la transición a la nube a menudo implica reescribir gran parte de su código existente. Una de las primeras características diferenciadoras de Amazon Q Developer fue su agente para la transformación de código. En ese momento, el enfoque de este agente era moderando aplicaciones Java antiguas. Hoy, el equipo está ampliando esto ayudando también a los desarrolladores a actualizar sus aplicaciones más antiguas basadas en .NET de Windows a Linux.
Y si bien esto puede parecer al principio una curiosidad, AWS también está lanzando un agente para modernizar las aplicaciones de mainframe COBOL. Después de todo, muchas grandes empresas todavía dependen de este código antiguo, con el que pocos desarrolladores saben cómo trabajar hoy en día. Se trata de migraciones muy complejas, destacó Sivasubramanian, por lo que el objetivo aquí no es simplemente traducir el código existente 1:1.
«Nuestro objetivo no es simplemente introducir y codificar completamente el proyecto COBOL», dijo. “La realidad es que estos proyectos son inherentemente extremadamente complejos. Es necesario tener un ser humano al tanto para aprovecharlo, pero he escuchado a clientes decir: ‘Oye, esto lleva varios años y los clientes nos han dicho explícitamente que esto cambiará las reglas del juego y reduciría significativamente ese cronograma’.
Sivasubramanian señaló que si bien hay menos código COBOL para entrenar modelos para automatizar la migración del código, el equipo pudo aprovechar la experiencia general de AWS en la modernización de aplicaciones de mainframe, así como métodos más tradicionales para la traducción de código.
“Podría decirse que llevar el código de un idioma a otro es la parte fácil”, dijo. “Pero la parte más difícil es: ¿cómo sabes que lo hiciste bien? ¿Y cómo sabes qué hace el código? Y luego el desafío en estos [codebases] Generalmente están mal documentados y las dependencias no se comprenden bien. Entonces, lo que hemos construido es realmente extremadamente innovador y [the system] también comprende, a nivel de proyecto, cuáles son los objetivos de cada uno de los módulos, y luego planifica y crea un cronograma de planificación de la migración para generar realmente el código y luego generar la prueba, e involucrar a los humanos en el circuito para ver cómo se validarlo”.