Mejora automática de la calidad del código con Amazon CodeGuru - Uso de Reviewer y Profiler
Reviewer, basado en ML, detecta automáticamente las fugas de recursos y los problemas de concurrencia, y Profiler visualiza los cuellos de botella de CPU con gráficos de llama. Presentamos patrones de integración en CI/CD.
Revisión automática de código con CodeGuru Reviewer
CodeGuru Reviewer es un servicio que utiliza modelos de ML para detectar automáticamente problemas en el código. Se integra con repositorios de GitHub, CodeCommit y Bitbucket, y ejecuta automáticamente una revisión de código cuando se crea una pull request. Los objetivos de detección son las fugas de recursos (streams y conexiones sin cerrar), los problemas de concurrencia (condiciones de carrera y bloqueos mutuos) y el uso ineficiente de las API de AWS (no usar la paginación, llamadas a la API innecesarias). También se detectan las vulnerabilidades de seguridad (credenciales codificadas de forma fija, inyección SQL). Como los resultados de la detección se publican directamente como comentarios de la pull request, los desarrolladores pueden atenderlos dentro del flujo habitual de revisión de código. Sin embargo, a partir del 7 de noviembre de 2025, CodeGuru Reviewer ya no permite asociar nuevos repositorios y solo se puede utilizar con las asociaciones existentes.
Análisis del rendimiento con CodeGuru Profiler
CodeGuru Profiler es un servicio que analiza de forma continua el rendimiento en tiempo de ejecución de las aplicaciones. Es compatible con aplicaciones Java y Python y, al incorporar un agente, visualiza los métodos con un alto uso de CPU, los cuellos de botella de latencia y los puntos críticos de asignación de memoria. Con los gráficos de llama, puede ver de un vistazo el consumo de CPU de toda la pila de llamadas e identificar las rutas de código que conviene optimizar. La sobrecarga de Profiler se mantiene baja. También es compatible con las funciones de Lambda, por lo que puede identificar los cuellos de botella del arranque en frío y el procesamiento ineficiente.
Integración en pipelines de CI/CD
También se pueden ejecutar análisis completos del repositorio, con los que se pueden detectar de una vez los problemas de toda la base de código existente. Las recomendaciones de Profiler se presentan junto con una estimación del efecto de reducción de costes. Por ejemplo, como se muestran indicadores concretos del tipo «la optimización de este método puede reducir los costes de computación en XX USD al mes», puede utilizarlos para priorizar las optimizaciones. Los resultados de la detección de Reviewer y Profiler también se pueden enviar a Security Hub, de modo que el equipo de seguridad puede supervisar de forma centralizada la calidad del código de toda la organización.
Precios de CodeGuru
CodeGuru Reviewer se factura mensualmente según el número de líneas de código analizadas del repositorio, y las primeras 100,000 líneas cuestan aproximadamente 10.00 USD al mes (a fecha de octubre de 2026). No hay límite en el número de revisiones de pull requests, por lo que es una estructura de precios con la que resulta fácil prever los costes incluso para los equipos de desarrollo que crean pull requests con frecuencia. CodeGuru Profiler cuesta aproximadamente 0.005 USD por hora de muestreo por grupo de perfilado, hasta 36,000 horas de muestreo al mes, y el coste varía según el número de aplicaciones perfiladas.
Tipos de problemas detectados
CodeGuru Reviewer detecta de forma mecánica los problemas que suelen pasarse por alto en las revisiones humanas. Señala las fugas en las que se olvida liberar los recursos tras usarlos, las condiciones de carrera cuando varios procesos se ejecutan a la vez, las deficiencias en el manejo de excepciones y las formas de escribir no recomendadas, entre otros. En el aspecto de la seguridad, detecta implementaciones con riesgo, como la codificación fija de información confidencial o la falta de validación de las entradas. Aunque a primera vista el código parezca funcionar, estos problemas salen a la luz cuando hay carga en producción o en condiciones específicas. Detectarlos de forma mecánica en la fase de revisión ayuda a prevenir los fallos y los incidentes de seguridad en las fases posteriores antes de que ocurran.
Análisis del rendimiento con Profiler
CodeGuru Profiler visualiza en qué partes consume tiempo y recursos una aplicación en ejecución. Como muestra las relaciones de llamada del procesamiento en gráficos de llama apilados, puede identificar de forma intuitiva los puntos que usan mucha CPU y los métodos que se llaman con más frecuencia de lo previsto. Lo importante es que puede encontrar los cuellos de botella a partir de datos medidos, en lugar de optimizar por suposiciones. También puede detectar problemas en el uso de la memoria y, en algunos casos, al reducir el procesamiento innecesario, puede bajar el tamaño de instancia necesario y reducir costes. Es un medio para, como punto de partida de la mejora del rendimiento, medir primero y conocer los hechos.
Incorporación al flujo de trabajo de desarrollo
La mejora de la calidad del código solo se mantiene cuando se incorpora de forma natural al flujo de desarrollo. Si tiene una asociación de repositorio existente, la revisión se ejecuta automáticamente al crear una pull request, y puede recibir las observaciones antes de que se fusione un cambio con problemas. Los desarrolladores obtienen observaciones automáticas además de las de los revisores humanos, por lo que pueden cubrir los descuidos de las revisiones. A medida que se atienden las observaciones una y otra vez, también se eleva la calidad de la programación de todo el equipo. Al incorporarlo al pipeline de CI/CD y hacer que la comprobación de calidad sea una condición para avanzar, puede impedir que se publique código que no cumple un nivel determinado y sostener la calidad mediante mecanismos.
Posición frente a otros medios
Lo adecuado es considerar el análisis automático del código no como un sustituto de la revisión humana, sino como un complemento. A las máquinas se les dan bien los problemas de patrones habituales y la comprobación sin omisiones de una gran cantidad de código. En cambio, las decisiones que dependen del contexto, como la validez del diseño o la coherencia con los requisitos de negocio, corresponden a la revisión humana. Al combinar ambos, puede reducir automáticamente los errores mecánicos mientras las personas se concentran en los debates esenciales. Además, si se combina con la generación de perfiles y la supervisión que observan el comportamiento en tiempo de ejecución, puede construir un sistema que mejore la calidad de forma continua desde el desarrollo hasta la operación.
Resumen
CodeGuru es un servicio que ofrece revisión automática de código basada en ML (Reviewer) y análisis del rendimiento en tiempo de ejecución (Profiler). Con las asociaciones de repositorio existentes, Reviewer detecta automáticamente las fugas de recursos y los problemas de concurrencia que suelen pasarse por alto en las revisiones humanas, y Profiler visualiza de forma continua los cuellos de botella de rendimiento del entorno de producción. Incorporarlo al proceso de desarrollo puede conducir a la mejora continua de la calidad del código y del rendimiento de las aplicaciones.
Referencias (recursos oficiales de AWS)
Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.
- Amazon CodeGuru (página oficial)
- AWS CodeCommit (página oficial)
- AWS Lambda (página oficial)
- Documentación de AWS (oficial)
Si esta página y la documentación oficial difieren, prevalece la documentación oficial.