Aspectos generales

Amazon CodeGuru es una herramienta para desarrolladores que proporciona recomendaciones inteligentes para mejorar la calidad del código e identificar las líneas de código más costosas de una aplicación.

Amazon CodeGuru ya está disponible de manera general. Puede comenzar ahora mismo en la consola de Amazon CodeGuru.

Para comenzar a utilizar Amazon CodeGuru Reviewer, inicie sesión en la consola de Amazon CodeGuru Reviewer, donde puede asociar un repositorio de código existente en GitHub, GitHub Enterprise, Bitbucket o AWS CodeCommit. Una vez configurado por única vez, Amazon CodeGuru Reviewer comienza a analizar el código y a proporcionar recomendaciones para mejorarlo directamente en la solicitud de extracción o en el repositorio de código.

También puede comenzar a generar perfiles de las aplicaciones en cuestión de minutos. Para comenzar a utilizar el generador de perfiles de Amazon CodeGuru, inicie sesión en la consola del generador de perfiles de Amazon CodeGuru, donde podrá configurar un grupo de generación de perfiles para la aplicación. Inicie la aplicación con el agente de generación de perfiles en la línea de comandos o siga los pasos para utilizar uno de los siguientes métodos personalizados que se describen. Puede permitir que el generador de perfiles de Amazon CodeGuru se ejecute de manera permanente para detectar de forma proactiva los problemas de rendimiento en las aplicaciones en funcionamiento.

Para ver la lista de las regiones de AWS admitidas, consulte la tabla de regiones de AWS, que contiene información acerca de la infraestructura global de AWS. Para obtener más información, consulte Regiones y puntos de conexión en la Referencia general de AWS.

Amazon CodeGuru Security

CodeGuru Security es una herramienta de escaneo de código basada en ML y análisis de programas que encuentra vulnerabilidades de seguridad en su código de aplicación.

Actualmente, CodeGuru Security admite el escaneo de código Java, Python y JavaScript.
 

CodeGuru Security detecta los diez problemas principales del Open Worldwide Application Security Project (OWASP), los 25 problemas principales del Common Weakness Enumeration (CWE), inyección de registros, secretos y el uso seguro de las API y SDK de AWS. Consulte la biblioteca de detectores de Amazon CodeGuru para obtener más información sobre las vulnerabilidades detectadas por CodeGuru Security.
 

Visite la consola de CodeGuru para integrar CodeGuru Security en su ciclo de vida como desarrollador. Se puede integrar en herramientas de integración y entrega continuas (CI/CD), exploración de repositorios y entornos de desarrollo integrados (IDE).
 

CodeGuru Security necesita acceso de solo lectura a su código para generar recomendaciones. Su confianza, privacidad y la seguridad de su contenido son nuestra máxima prioridad. Implementamos los controles adecuados, incluido el cifrado durante el transporte, para evitar el acceso no autorizado a su contenido o su divulgación y garantizar que nuestro uso cumpla con nuestros compromisos con usted. También admitimos las claves KMS del administrador de clientes (CMCMK) para el cifrado. Consulte las Preguntas frecuentes acerca de la privacidad de datos para obtener más información.

No, CodeGuru Security no almacena el código fuente.
 

CodeGuru Security se entrena mediante la minería de reglas y modelos de ML supervisados que utilizan una combinación de regresión logística y redes neuronales. Por ejemplo, durante la formación para detectar la exposición de información confidencial, realiza un análisis completo del código que abarca todas las rutas de código que utilizan el recurso o la información confidencial, crea un conjunto de características que las representan y luego las utiliza como entradas para los modelos de regresión logística y las redes neuronales convolucionales (CNN).

CodeGuru Security está integrado con el escaneo de código de Amazon Inspector para Lambda. Próximamente habrá integraciones adicionales con repositorios y herramientas de CI/CD.
 

Amazon CodeGuru Profiler

Amazon CodeGuru Profiler ayuda a los desarrolladores y operadores de TI a comprender fácilmente el comportamiento del tiempo de ejecución de las aplicaciones, mejorar el rendimiento y reducir los costos de infraestructura. Amazon CodeGuru Profiler analiza el perfil de tiempo de ejecución de la aplicación y proporciona recomendaciones inteligentes y visualizaciones que guían a los desarrolladores para que puedan mejorar el rendimiento de las partes más relevantes del código.

Un grupo de generación de perfiles es una agrupación lógica que usted crea. Representa el límite de una aplicación. Por ejemplo, en una arquitectura de microservicios, un grupo de generación de perfiles combinaría los perfiles de los microservicios que se le han asignado y generaría un perfil para todos ellos.

Registrar el tiempo de ejecución solo funciona para un conjunto limitado de situaciones porque el registro solo puede monitorear la latencia (no el uso de la CPU). Además, la implementación requiere de bastante tiempo debido a que los desarrolladores tienen que registrar todas las funciones de una aplicación (sin que ello impacte el rendimiento de la aplicación), lo que deja a los desarrolladores sin las herramientas que necesitan para monitorear y resolver los problemas de las aplicaciones de forma efectiva en la fase de producción. Aquí es donde la generación de perfiles resulta útil: Amazon CodeGuru Profiler está diseñado para recopilar datos acerca de todo lo que ocurrió en el comportamiento de esa aplicación, independientemente de la situación. CodeGuru Profiler utiliza una base de conocimiento de las ineficiencias de rendimiento más comunes para detectar automáticamente patrones de código en la aplicación en funcionamiento que afectan su rendimiento. De tal forma, los desarrolladores pueden seguir las recomendaciones proporcionadas para solucionar los problemas.

Las herramientas de gestión de rendimiento de aplicaciones tradicionales brindan datos útiles acerca del monitoreo, el seguimiento y el rendimiento de las aplicaciones. Amazon CodeGuru Profiler complementa estas capacidades de las herramientas de gestión de rendimiento de aplicaciones al proporcionar visualización de los datos de tiempo de ejecución de la aplicación, así como recomendaciones prácticas para los problemas de rendimiento que detecta. También utiliza el aprendizaje automático para detectar anomalías en el perfil de la aplicación y alertar sobre ellas, para lo que señala las líneas del código anómalas. Amazon CodeGuru Profiler permite ver fácilmente las partes del código que presentan una mayor oportunidad para la optimización del rendimiento, así como ahorros potenciales, y recibir orientación para abordarlas sin necesidad de tener un conocimiento amplio en ingeniería de rendimiento. Amazon CodeGuru Profiler genera perfiles para las instancias EC2, los contenedores y las plataformas de informática sin servidor, incluida AWS Lambda, como así también aquellas en las instalaciones. Además, algunos generadores de perfiles independientes están diseñados para funcionar solo en entornos de prueba, mientras que Amazon CodeGuru Profiler está diseñado para funcionar de forma permanente en la fase de producción, durante las cargas de tráfico de producción y sin afectar el funcionamiento de la aplicación. Esto es útil cuando se trata de solucionar problemas operativos en la etapa de producción, incluidos casos en los que se utilizan alojamientos sin sistema operativo.

Amazon CodeGuru Profiler funciona con aplicaciones alojadas en Amazon EC2, aplicaciones en contenedores que se ejecutan en Amazon ECS y Amazon EKS, así como aplicaciones sin servidor que se ejecutan en AWS Fargate y AWS Lambda. Además, puede ejecutar el Generador de perfiles de Amazon CodeGuru a nivel local

El agente de Amazon CodeGuru Profiler utiliza los recursos (CPU, memoria) asignados a las funciones de AWS Lambda. Está ajustado para que tenga un impacto mínimo en el rendimiento de la aplicación mientras se ejecuta como un subproceso en curso. Si la aplicación consume la mayoría de los recursos en la función de AWS Lambda, considere aumentar los recursos para permitir que el agente funcione correctamente.

CodeGuru Security actualmente admite el escaneo de Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go y Ruby.

El generador de perfiles de Amazon CodeGuru tiene tres partes: un agente, el servicio de generador de perfiles y recomendaciones inteligentes. El agente se inicia con la aplicación en la línea de comandos y se ejecuta como un subproceso en curso como parte de la aplicación. Toma datos de cada una de las instancias de su servicio que ejecutan el agente y los envía al servicio de generador de perfiles cada cinco minutos, donde se agrupan. Amazon CodeGuru Profiler publica los datos del perfil en gráficos de llama interactivos que permiten visualizar el rendimiento de la aplicación. Amazon CodeGuru Profiler también analiza los datos incluidos en perfiles de manera permanente y los compara con las prácticas recomendadas de ingeniería de rendimiento y de Amazon, y envía recomendaciones inteligentes de forma proactiva cuando se detectan problemas de rendimiento. También utiliza el machine learning para analizar de forma continua los datos de tiempo de ejecución de la aplicación y genera alertas cuando detecta anomalías en el perfil de la aplicación, además de señalar las líneas del código anómalas.

CodeGuru Profiler genera perfiles para la CPU (CPU activa y tiempo real) y la memoria (resumen de montón) de Java y de otros lenguajes de JVM, y CPU (tiempo real) para aplicaciones de Python.

Sí, una vez que habilita la generación de perfiles de memoria y comienza a generarlos, CodeGuru Profiler recopilará la información de la CPU y de la memoria para su aplicación. Solo necesita un grupo de generación de perfiles para obtener datos de la CPU y la memoria para una aplicación determinada.

CodeGuru Profiler ofrece información de resumen del montón. El resumen del montón ofrece una vista consolidada del uso de la memoria por tipo de objeto (p. ej., string, int, char[]) y tipos personalizados durante un período predeterminado (por lo general, de 5 minutos). CodeGuru Profiler realiza un seguimiento tanto de los tamaños agregados de los objetos como de su recuento. Estas métricas se presentan en un gráfico de línea de tiempo, por lo que puede identificar con facilidad las tendencias y los picos de uso de memoria por tipo de objeto.

El resumen del montón es útil para dos situaciones. Primero, puede detectar fugas de memoria potenciales. Una curva de uso de memoria en crecimiento constante de uno o más tipos de objetos puede indicar una fuga, lo que a su vez puede generar errores de falta de memoria y bloqueos de aplicación. El segundo caso es cuando quiere optimizar el espacio ocupado en la memoria de su aplicación. En este caso, el desglose del uso de la memoria por tipo de objeto lo ayudará a saber dónde prestar atención. Por ejemplo, si sabe que una alta e inesperada cantidad de memoria se ha asociado a un tipo de objeto específico, puede enfocar sus tareas de análisis y optimización en las partes de su aplicación que sean responsables de asignar y de hacer referencia a los objetos de este tipo.