Généralités

Q : Qu'est-ce qu'Amazon CodeGuru ?

Amazon CodeGuru se compose de deux éléments : Amazon CodeGuru Security et Amazon CodeGuru Profiler. CodeGuru Security est un outil basé sur le machine learning (ML) et l'analyse de programmes qui détecte les failles de sécurité dans le code de votre application. CodeGuru Security analyse également les informations d'identification codées en dur. CodeGuru Profiler optimise les performances des applications fonctionnant en production et identifie les lignes de code les plus onéreuses, ce qui réduit considérablement les coûts opérationnels.

Q : Comment démarrer avec CodeGuru ?

CodeGuru est désormais disponible pour tous. Vous pouvez démarrer maintenant dans la console Amazon CodeGuru.

Q : Dans quelles régions AWS CodeGuru est-il disponible ?

Pour connaître les régions prises en charge, veuillez consulter le tableau des régions AWS qui présente un aperçu de toute l'infrastructure mondiale AWS. Pour en savoir plus, consultez la section Régions et points de terminaison du document Références générales AWS.

Amazon CodeGuru Security

Q : Qu'est-ce que sécurité Amazon CodeGuru ?

CodeGuru Security est un outil d'analyse de code basé sur le ML et sur l'analyse de programmes qui détecte les failles de sécurité dans le code de votre application.

Q : Quels sont les langages de programmation pris en charge ?

CodeGuru Security prend actuellement en charge l'analyse de Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go et Ruby.

Q : Quels sont les types de problèmes détectés par CodeGuru Security ?

CodeGuru Security détecte les dix principaux problèmes de l'Open Worldwide Application Security Project (OWASP), les 25 principaux problèmes du Common Weakness Enumeration (CWE), l'injection de journaux, les secrets et l'utilisation sécurisée des API et des kits SDK AWS. Consultez la bibliothèque Amazon CodeGuru Detector pour en savoir plus sur les vulnérabilités détectées par CodeGuru Security.

Q : Comment démarrer avec CodeGuru Security ?

Accédez à la console CodeGuru pour intégrer CodeGuru Security à votre cycle de vie de développeur. Vous pouvez l'intégrer dans les outils d'intégration et de diffusion continues (CI/CD), l'analyse des référentiels et les environnements de développement intégrés (IDE).

Q : CodeGuru Security accède-t-il à mon code ?

CodeGuru security n'a besoin que d'un accès en lecture seule à votre code afin de générer des recommandations. Votre confiance, votre confidentialité et la sécurité de votre contenu sont notre priorité absolue. Nous mettons en œuvre des contrôles appropriés, notamment le chiffrement en transit, pour empêcher tout accès non autorisé à votre contenu ou sa divulgation et nous assurer que notre utilisation est conforme à nos engagements à votre égard. Nous prenons également en charge les clés KMS du gestionnaire de clientèle (CMCMK) pour le chiffrement. Consultez les questions fréquentes (FAQ) sur la confidentialité des données pour en savoir plus.

Q : CodeGuru Security conserve-t-il une copie de mon code ?

Non, CodeGuru Security ne stocke pas votre code source.

Q : Comment CodeGuru Security est-il formé à adresser des recommandations intelligentes ?

CodeGuru Security est entraîné à l'aide de modèles d'exploration de règles et de machine learning supervisés qui utilisent une combinaison de régression logistique et de réseaux neuronaux. Par exemple, lors de l'entraînement sur les fuites de données sensibles, il effectue une analyse complète du code pour tous les chemins de code qui utilisent les ressources ou les données sensibles, il crée un ensemble de fonctions qui les représente, puis il les utilise comme entrées pour les modèles de régression logistique et les réseaux neuronaux convolutifs.

Q : Quelles intégrations sont-elles prises en charge par CodeGuru Security ?

CodeGuru Security est intégré à l'analyse de code Amazon Inspector pour Lambda. Des intégrations supplémentaires avec des référentiels et des outils CI/CD seront bientôt disponibles.

Amazon CodeGuru Profiler

Q : Qu'est-ce qu'Amazon CodeGuru Profiler ?

CodeGuru Profiler aide les développeurs et les opérateurs informatiques à comprendre facilement le comportement d'exécution de leurs applications, à améliorer les performances et à réduire les coûts d'infrastructure. Amazon CodeGuru Profiler analyse le profil d'exécution de l'application et fournit des recommandations et des visualisations intelligentes qui guident les développeurs sur la manière d'améliorer les performances des parties les plus pertinentes de leur code.

Q : Qu'est-ce qu'un groupe de profilage ?

Un groupe de profilage consiste en un regroupement logique créé par vos soins. Il représente les limites d'une application. Par exemple, dans une architecture de microservices, un groupe de profilage regroupe les profils des microservices que vous lui avez attribués et produit un profil pour l’ensemble des microservices.

Q : J'ai déjà intégré à mon code une journalisation étendue. Est-il nécessaire que j'établisse un profil ?

Le temps d'exécution de la journalisation ne fonctionne que pour un ensemble limité de scénarios, car la journalisation ne permet de surveiller que la latence (et non pas l'utilisation du processeur), et sa mise en œuvre est longue, car les développeurs doivent journaliser chaque fonction d'une application (sans impact sur les performances de l'application), ce qui les laisse sans les outils nécessaires pour surveiller les applications en production et résoudre efficacement les problèmes associés. C'est là qu'intervient le profilage : CodeGuru Profiler est conçu pour collecter des données sur tout ce qui s'est passé dans le comportement de l'application, quels que soient les scénarios. CodeGuru Profiler utilise une base de connaissances des inefficacités de performance couramment rencontrées pour découvrir automatiquement les modèles de code dans votre application live qui ont un impact sur ses performances. Les développeurs peuvent alors suivre les recommandations avancées pour corriger les problèmes.

Q : En quoi CodeGuru Profiler diffère-t-il des applications de gestion de la performance (APM, Application Performance Management) traditionnelles et des profileurs autonomes ?

Les APM traditionnels fournissent des données utiles à propos de la surveillance, du traçage et des performances des applications. CodeGuru Profiler complète ces fonctionnalités APM en proposant une visualisation des données d'exécution de l'application, ainsi que des recommandations exploitables pour corriger les problèmes de performances qu'il découvre. Il utilise également le machine learning pour détecter et signaler les anomalies dans le profil de votre application, en pointant les lignes de code anormales. CodeGuru Profiler vous permet de voir facilement les parties du code qui présentent la plus grande opportunité d'optimisation des performances, ainsi que les économies potentielles, et de recevoir des conseils sur la façon de les aborder sans avoir besoin d'une formation approfondie en ingénierie des performances. Amazon CodeGuru Profiler profile à la fois les instances EC2, les conteneurs et les plateformes de calcul sans serveur, y compris AWS Lambda, ainsi que sur site. En outre, certains profileurs autonomes sont conçus pour fonctionner uniquement dans des environnements de test, tandis que CodeGuru Profiler est conçu pour fonctionner en continu en production, sous des charges de trafic de production, et sans impact sur l'application. Cela se révèle utile au moment de résoudre des problèmes opérationnels en production, y compris en cas d'exécution sur des hôtes bare metal.

Q : De quels types d'applications puis-je établir le profil ?

CodeGuru Profiler fonctionne avec les applications hébergées sur Amazon EC2, les applications conteneurisées fonctionnant sur Amazon ECS et Amazon EKS, ainsi que les applications sans serveur fonctionnant sur AWS Fargate et AWS Lambda. Vous pouvez en outre exécuter CodeGuru Profiler sur site.

Q : Quel est l'impact de CodeGuru Profiler sur les performances des applications hébergées sur AWS Lambda ?

L'agent CodeGuru Profiler utilise les ressources (processeur, mémoire) allouées aux fonctions AWS Lambda. Il est optimisé pour avoir un impact minimal sur les performances de votre application lorsqu'elle s'exécute comme un thread interne au processus. Si votre application consomme la plupart des ressources sur la fonction AWS Lambda, évaluez la possibilité d'augmenter les ressources pour permettre à l'agent de fonctionner correctement.

Q : Quels sont les langages de programmation pris en charge ?

CodeGuru Profiler prend actuellement en charge Java, Python (version préliminaire) et les langages JVM tels que Scala et Kotlin.

Q : Comment fonctionne CodeGuru Profiler ?

CodeGuru Profiler se compose des trois éléments suivants : un agent, le service de profileur et des recommandations intelligentes. L'agent est lancé avec votre application sur la ligne de commande et s'exécute comme un thread interne au processus dans le cadre de votre application. Il prend les données de chacune des instances de votre service qui exécutent l'agent et les envoie toutes les cinq minutes au service de profilage, qui les agrège ensuite. CodeGuru Profiler publie ensuite les données de profil dans des graphiques de type flamme interactifs qui vous permettent de visualiser les performances de votre application. CodeGuru Profiler analyse également en permanence les données profilées et les compare aux bonnes pratiques d'Amazon et de l'ingénierie des performances, et vous alerte de manière proactive avec des recommandations intelligentes lorsque des problèmes de performances sont découverts. Il utilise également le ML pour analyser en permanence les données d'exécution des applications et alerte lorsqu'il détecte des anomalies dans le profil de l'application et indique les lignes de code anormales.

Q : Quelles sont les ressources profilées par CodeGuru Profiler et quels sont les langages pris en charge ?

CodeGuru Profiler profile le processeur (processeur actif et temps réel écoulé) et la mémoire (résumé du heap) pour Java et les autres langages JVM, et le CPU (temps réel écoulé) pour les applications Python.

Q: Puis-je avoir des informations sur le processeur et sur la mémoire pour la même application ?

Oui. Une fois que vous activez le profilage de la mémoire et commencez à profiler, CodeGuru Profiler collecte les informations à la fois du CPU et de la mémoire concernant votre application. Un seul groupe de profilage suffit pour obtenir les informations à la fois sur le CPU et sur la mémoire pour une application donnée.

Q : Quelles sont les informations de profilage de la mémoire fournies par CodeGuru Profiler ?

CodeGuru Profiler fournit un résumé du heap. Le résumé du heap offre une vue consolidée de l'utilisation de la mémoire par type d'objet (p. ex., chaîne, int, char[]), y compris les types personnalisés, sur une période donnée (généralement 5 minutes). CodeGuru Profiler suit à la fois les tailles cumulées des objets et leur nombre. Ces métriques sont présentées sous la forme d'une ligne de temps, ce qui vous permet de repérer facilement les tendances et les pics d'utilisation de la mémoire par type d'objet.

Q : Que puis-je faire avec les informations du résumé du heap ?

Le résumé du heap est utile dans deux scénarios. Tout d'abord, il permet d’identifier les fuites potentielles de mémoire. Une courbe d’utilisation de la mémoire qui grimpe constamment pour un ou plusieurs types d’objets peut être le signe d’une fuite pouvant éventuellement saturer la mémoire et provoquer des crashs de l’application. Le second scénario est celui où vous souhaitez optimiser la mémoire occupée par votre application. Dans ce cas, la répartition de l’utilisation de la mémoire par type d’objet vous aidera à savoir où concentrer vos efforts. Par exemple, en sachant qu’une quantité étonnamment élevée de mémoire a été associée à un type d’objet spécifique, vous pouvez concentrer vos efforts d’analyse et d’optimisation sur les parties de votre application qui sont responsables de l’allocation et du référencement d’objets de ce type.

En savoir plus sur nos clients

Consultez la page des clients Amazon CodeGuru.

En savoir plus 
Créer gratuitement un compte

Obtenez un accès instantané à l'offre gratuite d'AWS. 

S'inscrire 
Commencer à créer sur la console

Commencez à créer avec Amazon CodeGuru dans AWS Management Console.

Se connecter