Utilice Amazon CodeGuru para encontrar las líneas de código más costosas

Amazon CodeGuru es una herramienta para desarrolladores que utiliza el poder del machine learning para ayudar a mejorar la calidad del código y encontrar las líneas de código más costosas. Realiza revisiones de código automatizadas y proporciona recomendaciones para el rendimiento de las aplicaciones.

Amazon CodeGuru Reviewer

Amazon CodeGuru Reviewer encuentra problemas en el código Java y Python a la vez que recomienda cómo solucionarlos. Por ejemplo, CodeGuru Reviewer detecta discrepancias con las prácticas recomendadas para el uso de las API y los SDK de AWS y, también, identifica los problemas de simultaneidad, la fuga de recursos, las vulnerabilidades de seguridad y la validación incorrecta de entrada. Para comenzar a revisar el código, puede asociar los repositorios de código existentes en GitHub, GitHub Enterprise, Bitbucket o AWS CodeCommit con CodeGuru.

Recomendaciones automatizadas para las solicitudes de extracción

CodeGuru Reviewer identifica los problemas de calidad del código y los riesgos de seguridad (incluidas las 10 principales categorías de OWASP) mediante el análisis automático de las solicitudes de extracción de código fuente con el objetivo de encontrar problemas críticos. Posteriormente, proporciona recomendaciones inteligentes para resolver los defectos del código directamente en la solicitud de extracción. CodeGuru Reviewer identifica los problemas de calidad del código en nueve categorías amplias y permite al equipo de desarrollo mantener un alto nivel de estándares de codificación en el proceso de desarrollo de software:

• Prácticas recomendadas de AWS: uso correcto de las API de AWS (por ejemplo, sondeo, paginación)
• Prácticas recomendadas de Java y Python: uso correcto de las características comunes del lenguaje y de la biblioteca de Java y Python
• Simultaneidad: detecta falta de sincronización que resulta en una funcionalidad incorrecta o en una sincronización excesiva, lo que produce problemas de rendimiento.
• Calidad del código: identifica las complejidades del código o cualquier particularidad del código fuente que dificulte su mantenimiento a lo largo del tiempo
• Fuga de recursos: gestión adecuada de los recursos (por ejemplo, liberación de las conexiones de la base de datos)
• Exposición de información confidencial: exposición de información de identificación personal (por ejemplo, registro de los detalles de las tarjetas de crédito)
• Prácticas recomendadas de codificación habituales: comprueba los parámetros y busca las líneas de código que podrían generar errores (por ejemplo: olvidarse de comprobar si un objeto es nulo antes de ajustarlo, reasignar un objeto sincronizado u olvidarse de inicializar una variable a lo largo de una ruta de excepción).
• Clonación de código: identifica código duplicado que se puede consolidar para un mejor mantenimiento del código
• Validación de entradas: busca datos con formatos erróneos o malintencionados de fuentes que no son de confianza

Recomendaciones automatizadas para las solicitudes de extracción
 Haga clic para agrandar

Detección de seguridad
Codeguru Reviewer ayuda a mejorar la seguridad del código y proporciona recomendaciones para prácticas recomendadas. Utiliza razonamiento automatizado para analizar el flujo de datos de la fuente al destino y en varias funciones para detectar vulnerabilidades de seguridad difíciles de encontrar. El detector de seguridad admite Java hasta Java 11 e identifica varias categorías de código, como las siguientes:

1. Prácticas recomendadas de seguridad para API de AWS: puede verificar la seguridad de las API de AWS EC2 y KMS
2. Prácticas recomendadas para bibliotecas criptográficas de Java: puede consultar si Javax.Crypto.Cipher se inició y llamó de manera correcta
3. Aplicaciones web seguras: puede revisar los problemas de seguridad relacionados con las aplicaciones web, como las inyecciones de LDAP
4. Exhibición de información confidencial: puede verificar si hay alguna fuga de información personal o confidencial
5. Prácticas recomendadas de seguridad de AWS (como las recomendaciones criptográficas de AWS): puede comprobar si el código sigue las prácticas recomendadas de AWS

Puede ir a la consola de CodeGuru y activar un análisis de seguridad que cubra todo el repositorio o base de código. Para ello, solo debe cargar la fuente y crear artefactos.

Recomendaciones

Puede ver todas las revisiones de código en la página de la consola “Revisiones de código” (en la sección de Reviewer). La página enumera toda la información sobre revisiones de código, como el estado de la revisión, el repositorio, la cantidad de recomendaciones y más. Puede hacer clic en la revisión de código completada correctamente para ver detalles de recomendaciones, buscar recomendaciones y consultar la cantidad de líneas analizadas. Además, pueden brindar comentarios sobre las recomendaciones de CodeGuru al hacer clic en los iconos de pulgar hacia arriba y pulgar hacia abajo situados debajo de la recomendación.

PullRequest
 Haga clic para agrandar
Análisis completo de repositorio

Gracias a CodeGuru, puede obtener recomendaciones de revisión de código basadas en machine learning para todas las líneas de código de los repositorios asociados (no solo cambios graduales a través de solicitudes de extracción), en una ramificación de código específica. Puede ejecutar análisis completos del repositorio para obtener recomendaciones de revisión del código durante la migración del mismo, la debida diligencia del código y las iniciativas periódicas de mantenimiento del código. En la consola de CodeGuru, puede ir a la pestaña “Análisis de repositorio” en la página “Revisiones de código” para activar un nuevo análisis de un repositorio completo. El nuevo modelo de precios basado en el tamaño de los repositorios incluye dos análisis completos de repositorios. Para obtener más información, consulte la página de precios de CodeGuru.

Análisis completo de repositorio
 Haga clic para agrandar

Con la solicitud de extracción y el análisis completo del repositorio disponibles, al incorporarse a CodeGuru Reviewer es posible 1) asociar el repositorio, 2) iniciar un análisis completo del repositorio, 3) analizar continuamente las solicitudes de extracción para los cambios de código graduales y 4) realizar nuevos análisis periódicos del repositorio para garantizar la calidad del código.

Detección de seguridad
 Haga clic para agrandar

Amazon CodeGuru Profiler

El generador de perfiles de Amazon CodeGuru siempre busca optimizar el rendimiento de las aplicaciones, identifica las líneas de código más “costosas” y recomienda formas de corregirlas para reducir la utilización de la CPU, disminuir los costos de informática y mejorar el rendimiento de las aplicaciones. Por ejemplo, CodeGuru Profiler puede identificar si la aplicación consume una capacidad excesiva de la capacidad de CPU en una rutina de registro en lugar de que se ejecute en una lógica empresarial principal.

Generación permanente de perfiles de las aplicaciones en producción

CodeGuru Profiler está diseñado para funcionar de manera constante en la fase de producción con una mínima sobrecarga, lo que significa que puede dejarlo encendido todo el tiempo con un impacto mínimo en el rendimiento de la aplicación. De esta forma, puede generar perfiles y solucionar problemas en la aplicación mediante patrones reales de tráfico de clientes y detectar con facilidad problemas de rendimiento. Con los datos del generador de perfiles y las recomendaciones basadas en machine learning, puede identificar y solucionar los problemas de rendimiento de las aplicaciones en la fase de producción. CodeGuru Profiler también proporciona un resumen del montón para que pueda identificar los objetos que utilizan la memoria en exceso en cualquier momento determinado.

Comprenda el comportamiento del tiempo de ejecución de las aplicaciones

CodeGuru Profiler analiza de forma continua las características de latencia, de uso del montón y de utilización de la CPU de la aplicación para mostrar en qué parte de la aplicación se utiliza la mayoría de los ciclos o se pierde más tiempo. El análisis de la CPU y la latencia se presenta en un gráfico de llama interactivo que permite comprender fácilmente las rutas de código que consumen la mayoría de los recursos, verificar que la aplicación funcione como se espera y descubrir cuáles áreas se pueden optimizar aún más.

Anomalía de procesamiento de imagen
 Haga clic para agrandar

Los gráficos de llama permiten visualizar el rendimiento de su aplicación al agrupar las pruebas de seguimiento de pila durante un periodo de tiempo para ofrecer una imagen precisa del comportamiento de la aplicación durante ese tiempo. Puede usar un gráfico de llama para comprender fácilmente las rutas que consumen la mayoría de los recursos, verificar que la aplicación funciona como se espera y descubrir cuáles áreas se pueden optimizar aún más. Por ejemplo, el método UploadGreyImage gasta 134 868 USD por año y esto consume 10,22 % del tiempo real. De tal forma que, si no tenía previsto perder tanto tiempo, debe investigar.

Resumen del montón

El análisis del uso del montón se presenta en una visualización de resumen del montón que muestra qué objetos están asignados en el montón, ya sean sus propias clases de dominio o las que pertenecen a las bibliotecas o al JDK.

Descubra anomalías y problemas comunes del rendimiento de su aplicación
 Haga clic para agrandar

El resumen del montón permite visualizar todos los objetos asignados en el montón durante un periodo de tiempo determinado junto con su tamaño, recuento y serie temporal. Por ejemplo, puede ver en el gráfico de serie temporal que a las 16:20 hay dos objetos que comienzan a crecer de manera significativa (java.util.LinkedHashMap$Entry y java.land.UUID), que indican una posible fuga de memoria. Si esta tendencia en ascenso continúa y no se controla, podría ocasionar una situación de falta de memoria.

Recomendaciones inteligentes

CodeGuru Profiler identifica automáticamente los problemas de rendimiento en la aplicación y ofrece recomendaciones basadas en machine learning sobre cómo solucionarlos. Estas recomendaciones ayudan a identificar y optimizar los métodos más costosos o que requieren más recursos dentro del código sin necesidad de ser un experto en ingeniería de rendimiento. Estas optimizaciones le permiten disminuir el costo de la infraestructura, reducir la latencia y mejorar la experiencia general del usuario final.

Recomendaciones inteligentes
 Haga clic para agrandar

Cuando Amazon CodeGuru Profiler detecta oportunidades para optimizar el rendimiento de las aplicaciones, describe los motivos por los que recomienda un cambio, las causas del problema, la manera de resolverlo y la parte del código en la que el problema impacta la aplicación. Esta recomendación muestra que esta línea de código onerosa genera costos de 182 160 USD al año y tiene un impacto del 2,97 % en el uso de la CPU. Si sigue los pasos de resolución sugeridos, podrá ahorrar hasta 182 160 USD

Detección de anomalías

Amazon CodeGuru Profiler analiza de forma continua los perfiles de la aplicación en tiempo real y detecta anomalías en el comportamiento y los métodos de la aplicación. Se hace un seguimiento a cada anomalía en el informe de recomendaciones de la consola de CodeGuru Profiler. Además, se pueden ver las series de tiempo de cómo se comporta la latencia del método a través del tiempo con las anomalías resaltadas de forma clara. Si está configurado, también se enviará una notificación de Amazon SNS al detectar una anomalía nueva.

Detección de anomalías
 Haga clic para agrandar
Standard Product Icons (Features) Squid Ink
Obtenga más información acerca de los precios de Amazon CodeGuru

Visite la página de precios de Amazon CodeGuru.

Más información 
Sign up for a free account
Regístrese para obtener una cuenta gratuita

Obtenga acceso instantáneo a la capa gratuita de AWS. 

Regístrese 
Standard Product Icons (Start Building) Squid Ink
Comience a crear en la consola

Comience a crear con Amazon CodeGuru en la consola de administración de AWS.

Iniciar sesión