[06/07/2020] Amazon Web Services anunció la disponibilidad general de Amazon CodeGuru, una herramienta de desarrollo impulsada por el aprendizaje automático que aseguran proporciona recomendaciones inteligentes para mejorar la calidad del código e identificar las líneas de código más caras de una aplicación.
"Amazon CodeGuru Reviewer ayuda a mejorar la calidad del código mediante la exploración de problemas críticos, la identificación de errores y la recomendación de cómo remediarlos. Amazon CodeGuru Profiler ayuda a los desarrolladores a encontrar las líneas de código más caras de una aplicación, junto con visualizaciones específicas y recomendaciones sobre cómo mejorar el código para ahorrar dinero. Amazon CodeGuru puede ser habilitado con unos pocos clics en la consola AWS, los clientes solo pagan por su uso real de Amazon CodeGuru, y es lo suficientemente fácil y asequible como para ejecutarse en cada revisión de código y aplicación en una organización”, comentó Swami Sivasubramanian, vicepresidente de Amazon Machine Learning de AWS.
El ejecutivo indicó que Amazon CodeGuru es un nuevo servicio para desarrolladores que utiliza el aprendizaje automático para automatizar tanto las revisiones de código durante el desarrollo de aplicaciones, como el perfilado de aplicaciones en producción. Amazon CodeGuru tiene dos componentes:
Code Reviewerr: Los desarrolladores pueden utilizar el CodeGuru Reviewer de Amazon, potenciado por el aprendizaje automático, para marcar automáticamente los problemas comunes que se desvían de las mejores prácticas (lo que podría conducir a problemas de producción), al tiempo que se proporcionan recomendaciones específicas sobre cómo solucionarlos, incluyendo código de ejemplo y enlaces a la documentación pertinente.
"Para las revisiones de código, los desarrolladores comprometen su código como de costumbre en el repositorio de su elección (por ejemplo, GitHub, GitHub Enterprise, Bitbucket Cloud, AWS CodeCommit) y agregan a Amazon CodeGuru Reviewer como uno de los revisores de código, sin ningún otro cambio en el proceso normal de desarrollo. El revisor de Amazon CodeGuru analiza las bases de código existentes en el repositorio, identifica errores difíciles de encontrar y problemas críticos con gran precisión, proporciona sugerencias inteligentes sobre cómo remediarlos, y crea una línea de base para sucesivas revisiones de código”, indicó el ejecutivo.
Para ello, agregó, el CodeGuru Reviewer de Amazon abre una solicitud de extracción y automáticamente comienza a evaluar el código utilizando modelos de aprendizaje automático que han sido entrenados en varias décadas de revisiones de código en Amazon.com y en más de diez mil proyectos de código abierto en GitHub. "Si el revisor de Amazon CodeGuru descubre un problema (por ejemplo, problemas de seguridad en los hilos, uso de entradas no esterilizadas, manejo inapropiado de datos sensibles como credenciales, fugas de recursos, copia y pegado de código redundante, desviación de las mejores prácticas para el uso de las APIs de Java y AWS, etc.), añadirá un comentario legible para el ser humano a la solicitud pull que identifica la línea de código, el problema específico y la solución recomendada. Amazon CodeGuru Reviewer también proporciona un panel de solicitud de extracción que enumera la información de todas las revisiones de código (por ejemplo, el estado de la revisión de código, el número de líneas de código analizadas y el número de recomendaciones). Los usuarios también pueden dar su opinión sobre las recomendaciones del CodeGuru Reviewer haciendo clic en un ícono de pulgares hacia arriba o hacia abajo, lo que ayuda a mejorar las recomendaciones a lo largo del tiempo utilizando el aprendizaje automático”, explicó Sivasubramanian.
Application Profiler: Los desarrolladores pueden utilizar el CodeGuru Profiler de Amazon, potenciado por el aprendizaje automático, para identificar las líneas de código más caras (en términos de ahorro potencial estimado en dólares), ayudándoles a comprender el comportamiento en tiempo de ejecución de sus aplicaciones (incluyendo las aplicaciones sin servidor que se ejecutan a través de AWS Lambda o AWS Fargate), identificar y eliminar las ineficiencias del código, mejorar el rendimiento y reducir significativamente los costes de computación.
"Por ejemplo, los equipos internos de Amazon han utilizado el Amazon CodeGuru Profiler en más de 30 mil aplicaciones de producción, lo que ha supuesto un ahorro de decenas de millones de dólares en costos de computación e infraestructura. Además, el equipo de pagos al consumidor de Amazon.com utilizó Amazon CodeGuru Profiler del 2017 al 2018 para ganar eficiencia para el día de compras más importante del año -Prime Day- y logró un aumento de eficiencia del 325% en la utilización de la CPU en todas sus aplicaciones y redujo los costos en un 39%”, señaló Sivasubramanian.
Agregó que, para empezar con Amazon CodeGuru Profiler, los clientes instalan un pequeño agente de bajo perfil en su aplicación que puede observar el tiempo de ejecución de la aplicación, y perfilar la aplicación para detectar problemas de calidad de código (por ejemplo, recreación de objetos caros, uso de bibliotecas ineficientes, evaluación de valores nulos o indefinidos, etc.) junto con detalles sobre la latencia y el uso de la CPU. CodeGuru Profiler de Amazon utiliza entonces el aprendizaje automático para identificar automáticamente los métodos de código (bloques de código reutilizables, también llamados funciones) y los comportamientos anómalos que más afectan a la latencia y al uso de la CPU.
"Esta información se reúne en un perfil que muestra claramente las áreas de código más ineficientes y proporciona visualizaciones que identifican los métodos de código que están creando cuellos de botella, junto con un gráfico de series temporales de las anomalías detectadas. El perfil incluye recomendaciones sobre la forma en que los desarrolladores pueden solucionar los problemas para mejorar el rendimiento y también estima el costo (en dólares) de seguir ejecutando código ineficiente para que los desarrolladores puedan dar prioridad a la solución. Los desarrolladores pueden ahora aprovechar la misma tecnología desplegada en Amazon para mejorar el rendimiento de las aplicaciones y las experiencias de los clientes, eliminando al mismo tiempo sus líneas de código más costosas”, indicó Sivasubramanian.
Amazon CodeGuru está disponible hoy en EE.UU. Este (N. Virginia), EE.UU. Este (Ohio), EE.UU. Oeste (Oregón), UE (Irlanda), UE (Londres), UE (Frankfurt), UE (Estocolmo), Asia Pacífico (Singapur), Asia Pacífico (Sydney), y Asia Pacífico (Tokio) con disponibilidad en regiones adicionales en los próximos meses.