Aspectos generales
P: ¿Qué es Amazon CodeGuru?
CodeGuru tiene dos componentes: Amazon CodeGuru Security y el Generador de perfiles de Amazon CodeGuru. CodeGuru Security es una herramienta basada en el machine learning (ML) y el análisis de programas que encuentra vulnerabilidades de seguridad en su código de aplicación. CodeGuru Security también busca credenciales codificadas. CodeGuru Profiler optimiza el rendimiento de las aplicaciones que se ejecutan en la fase de producción e identifica las líneas de código más costosas, lo que reduce los costos operativos de forma significativa.
P: ¿Cómo comienzo a usar CodeGuru?
CodeGuru ya está disponible de manera general. Puede comenzar ahora mismo en la consola de Amazon CodeGuru.
P: ¿En qué regiones de AWS se encuentra disponible CodeGuru?
Para ver la lista de las regiones 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
P: ¿Qué es 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.
P: ¿Qué lenguajes de programación admite?
CodeGuru Security actualmente admite el escaneo de Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go y Ruby.
P: ¿Qué tipo de problemas detecta CodeGuru Security?
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.
P: ¿Cómo puedo empezar a utilizar CodeGuru Security?
Visite la consola de CodeGuru para integrar CodeGuru Security en su ciclo de vida como desarrollador. Puede integrarse en las herramientas de integración y entrega continuas (CI/CD), el escaneo de repositorios y los entornos de desarrollo integrados (IDE).
P: ¿CodeGuru Security accede a mi código?
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.
P: ¿CodeGuru Security conserva una copia de mi código?
No, CodeGuru Security no almacena el código fuente.
P: ¿Cómo se entrena a CodeGuru Security para ofrecer recomendaciones inteligentes?
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).
P: ¿Qué integraciones admite CodeGuru Security?
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
P: ¿Qué es el Generador de perfiles de Amazon CodeGuru?
CodeGuru Profiler ayuda a los desarrolladores y operadores de TI a comprender fácilmente el comportamiento de la versión ejecutable de las aplicaciones, mejorar el rendimiento y reducir los costos de infraestructura. El Generador de perfiles de Amazon CodeGuru 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.
P: ¿Qué es un grupo de generación de perfiles?
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.
P: Ya tengo un proceso completo de registro integrado en el código. ¿Tengo que generar perfiles de todas maneras?
El registro del tiempo de ejecución solo funciona para un conjunto limitado de escenarios porque el registro solo puede supervisar la latencia (no la utilización de la CPU), y su implementación lleva mucho tiempo porque los desarrolladores tienen que registrar cada función de una aplicación (sin afectar al rendimiento de esta), lo que los deja sin las herramientas necesarias para supervisar y solucionar eficazmente los problemas de las aplicaciones en producción. Aquí es donde la generación de perfiles resulta útil: 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 patrones de código de forma automática en la aplicación en funcionamiento que afectan su rendimiento. Los desarrolladores pueden seguir las recomendaciones proporcionadas para solucionar los problemas.
P: ¿En qué se diferencia el generador de perfiles de CodeGuru de las APM tradicionales y de los generadores de perfiles independientes?
Las herramientas de administración de rendimiento de aplicaciones tradicionales brindan datos útiles acerca de la supervisión, el seguimiento y el rendimiento de las aplicaciones. CodeGuru Profiler complementa estas capacidades de las herramientas de administración de rendimiento de aplicaciones al proporcionar la visualización de los datos de la versión ejecutable de la aplicación, así como recomendaciones prácticas para los problemas de rendimiento que detecta. También utiliza machine learning 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. CodeGuru Profiler le 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. Generador de perfiles de Amazon CodeGuru genera perfiles para las instancias EC2, los contenedores y las plataformas de informática sin servidor, incluida AWS Lambda, como así también aquellas locales. Además, algunos generadores de perfiles independientes están diseñados para funcionar solo en entornos de prueba, mientras que el generador de perfiles de CodeGuru está diseñado para funcionar de forma permanente en la 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, incluso cuando se utilizan hosts sin sistema operativo.
P: ¿Sobre qué tipos de aplicaciones se pueden generar perfiles?
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 CodeGuru Profiler en las instalaciones.
P: ¿Cómo impacta el Generador de perfiles de CodeGuru en el rendimiento de las aplicaciones alojadas en AWS Lambda?
El agente de 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.
P: ¿Qué lenguajes de programación admite?
Actualmente, CodeGuru Profiler admite Java, Python (versión preliminar) y lenguajes de JVM, como Scala y Kotlin.
P: ¿Cómo funciona el generador de perfiles de CodeGuru?
El generador de perfiles de 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. El generador de perfiles de CodeGuru publica los datos del perfil en gráficos de llama interactivos que le permiten visualizar el rendimiento de la aplicación. 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 le envía recomendaciones inteligentes de forma proactiva cuando se detectan problemas de rendimiento. También utiliza ML para analizar de forma continua los datos de la versión ejecutable 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.
P: ¿Para qué recursos genera perfiles CodeGuru Profiler y cuáles son los lenguajes admitidos?
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.
P: ¿Puedo obtener información de la CPU y de la memoria de la misma aplicación?
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.
P: ¿Qué tipo de información de generación de perfiles de memoria proporciona CodeGuru Profiler?
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.
P: ¿Qué puedo hacer con la información del resumen del montón?
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.
Visite la página de clientes de Amazon CodeGuru.
Obtenga acceso instantáneo a la capa gratuita de AWS.
Comience a crear con Amazon CodeGuru en la consola de administración de AWS.