Généralités

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

Amazon CodeGuru, un outil de développement optimisé le machine learning qui fournit des recommandations intelligentes pour améliorer la qualité du code et identifier les lignes de code les plus coûteuses d'une application.

Q : Que puis-je faire avec Amazon CodeGuru ?

Amazon CodeGuru se compose de deux éléments : Amazon CodeGuru Reviewer et Amazon CodeGuru Profiler. Amazon CodeGuru Reviewer utilise le machine learning pour identifier les problèmes critiques et les bogues difficiles à trouver pendant le développement des applications afin d'améliorer la qualité du code. Amazon CodeGuru Profiler optimise les performances des applications fonctionnant en production et identifie les lignes de code les plus coûteuses, ce qui réduit considérablement les coûts opérationnels.

Q : Comment démarrer avec Amazon CodeGuru ?

Amazon CodeGuru est désormais disponible d’une manière générale. Vous pouvez démarrer maintenant dans la console Amazon CodeGuru.

Pour commencer à utiliser Amazon CodeGuru Reviewer, connectez-vous à la console Amazon CodeGuru Reviewer où vous pouvez associer un référentiel de code existant sur GitHub, GitHub Enterprise, Bitbucket ou AWS CodeCommit. Après une configuration unique, Amazon CodeGuru Reviewer se met à analyser le code et à émettre des recommandations d'amélioration du code directement dans la demande d'extraction ou le référentiel de code.

Vous pouvez également commencer à établir le profil de vos applications en quelques minutes seulement. Pour démarrer avec Amazon CodeGuru Profiler, connectez-vous à la console CodeGuru Profiler dans laquelle vous pouvez configurer votre application. Démarrez votre application avec l'agent de profilage sur la ligne de commande ou suivez les étapes pour utiliser l'une des méthodes personnalisées décrites. Vous pouvez laisser Amazon CodeGuru Profiler fonctionner en continu afin qu'il puisse détecter de manière proactive les problèmes de performances de vos applications en direct.

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

Pour prendre connaissance des régions AWS prenant en charge Amazon CodeGuru, consultez le tableau des régions AWS qui constitue 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 Reviewer

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

Amazon CodeGuru Reviewer est un service automatisé de révision de code qui identifie les défauts critiques et les écarts par rapport aux bonnes pratiques de codage pour le code Java et Python (disponible en aperçu). Il analyse les lignes de code dans le cadre d'une demande d’extraction et fournit des recommandations intelligentes basées sur les normes apprises des principaux projets open source, ainsi que de la base de code d'Amazon. Amazon CodeGuru Reviewer s'intègre de manière transparente aux flux de travail de révision de code existants sur les systèmes de contrôle de source largement utilisés, notamment GitHub, GitHub Enterprise, Bitbucket et AWS CodeCommit, et fournit des recommandations concrètes pour améliorer la qualité du code.

Q : Quels sont les langages de programmation et les référentiels de code source pris en charge ?

Amazon CodeGuru Reviewer prend actuellement en charge le code Java et Python (disponible en aperçu) stocké dans des référentiels GitHub, GitHub Enterprise, Bitbucket et AWS CodeCommit.

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

Amazon CodeGuru Reviewer vérifie les problèmes de concurrence, les conditions de concurrence potentielle, les entrées non nettoyées ou malveillantes, le traitement inapproprié des données sensibles telles que les informations d'identification, les fuites de ressources, et détecte également les conditions de concurrence et les blocages dans du code concurrent. Il suggère également les bonnes pratiques AWS, Java et Python (disponible en aperçu) et détecte le code cloné qui pourrait être consolidé pour une meilleure maintenabilité du code.

Q : Comment démarrer avec Amazon CodeGuru Reviewer ?

Accédez à la console Amazon CodeGuru afin d'intégrer directement les recommandations de CodeGuru Reviewer dans vos demandes d'extraction de code. Vous pouvez commencer en accédant à la console CodeGuru et en suivant les étapes pour associer vos référentiels AWS CodeCommit, GitHub, GitHub enterprise et BitBucket afin de commencer à recevoir les recommandations d'Amazon CodeGuru Reviewer. Une fois activé, Amazon CodeGuru Reviewer fournit automatiquement des recommandations intelligentes sous forme de commentaires sur vos demandes d'extraction générées pour les référentiels connectés.

Q : Amazon CodeGuru Reviewer a-t-il accès à mon code ?

Amazon CodeGuru Reviewer n'a besoin que d'un accès en lecture seule à votre code afin de générer des recommandations. Votre confiance ainsi que la 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, afin d'éviter l'accès non autorisé à votre contenu ou sa divulgation. Nous nous assurons également que notre utilisation respecte nos engagements à votre égard. Consultez les questions fréquentes (FAQ) sur la confidentialité des données pour en savoir plus.

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

Non, Amazon CodeGuru Reviewer ne stocke pas votre code source.

Q : De quelle manière Amazon CodeGuru Reviewer est-il formé à adresser des recommandations intelligentes ?

Amazon CodeGuru Reviewer 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, au cours de l’entraînement sur les écarts par rapport aux bonnes pratiques AWS, Amazon CodeGuru Reviewer exploite les bases de code Amazon en utilisant des techniques de recherche et des modèles sensibles à l’emplacement pour les demandes d'extraction qui incluent des appels API AWS. Il examine les modifications de code visant à améliorer la qualité du code et il crée des références croisées entre elles et les données de documentation. Il crée ainsi un nouvel ensemble de règles que Reviewer vous recommande en tant que bonnes pratiques lorsqu'il examine votre code.
Lors de l’entraînement sur les fuites de ressources et 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 de neurones convolutifs.

Pour les modèles basés sur des règles et sur le machine learning, Amazon CodeGuru Reviewer utilise les commentaires que vous fournissez comme étiquettes et améliore itérativement la qualité des détecteurs de code.

Amazon CodeGuru Reviewer Security Detector

Q: Quels sont les langages de programmation pris en charge par Amazon CodeGuru Reviewer Security Detector ?

Amazon CodeGuru Reviewer Security Detector prend en charge Java 8 à Java 11.

Q: Pourquoi utiliser Amazon CodeGuru Reviewer Security Detector ?

Utiliser CodeGuru Reviewer Security Detector, c’est comme avoir un expert de la sécurité accessible à tout moment pour réviser votre code. Il vous aide à identifier les bonnes pratiques de sécurité avant le déploiement.

Q: Quel est le mode de fonctionnement d’Amazon CodeGuru Reviewer Security Detector ?

CodeGuru Reviewer Security Detector analyse le code de manière statique pour dresser un graphique de flux de contrôle représentant toutes les façons possibles dont le code peut être exécuté. Il détecte ensuite la façon dont les données circulent dans le graphique de flux de contrôle afin de déceler les problèmes potentiels impliquant des séquences d’opérations susceptibles de s’étendre à toute votre application, en impliquant de multiples méthodes et classes. Par exemple, le détecteur de sécurité détermine si Javax.Crypto.KeyGenerator, un générateur de clé secrète symétrique, est initialisé avant d’être utilisé, même si son initialisation et son utilisation ont lieu dans des méthodes différentes.

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

CodeGuru Reviewer peut vous aider à identifier quatre catégories de problèmes de sécurité de code : (1) AWS API Security Best Practices vous aide à identifier les bonnes pratiques de sécurité lors de l’utilisation d’API de plusieurs services AWS tels qu’AWS EC2 et KMS (2) Java Crypto Library Best Practices vous aide à vérifier les bibliothèques de cryptographie Java courantes telles que Javax.Crypto.Cipher, pour savoir si elles sont initialisées et appelées correctement (3) Secure Web Applications vous aide à vérifier les problèmes de sécurité des applications web tels que les scripts inter-sites, l’injection LDAP et l’injection path traversal (4) AWS Security Best Practices apporte à vos cas d’utilisation une expertise en sécurité interne telle que des recommandations concernant les services cryptographiques AWS.

Q : Amazon CodeGuru Reviewer Security Detector analyse-t-il tout le code de mon référentiel ?

Oui. CodeGuru Reviewer Security Detector analyse les artefacts de génération et tout le code source Java contenu dans un référentiel pour fournir des recommandations de sécurité.

Amazon CodeGuru Profiler

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

Amazon CodeGuru Profiler aide les développeurs à 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 de la CPU), 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 laisse les développeurs sans les outils nécessaires pour surveiller les applications en production et résoudre les problèmes associés efficacement. C'est là qu'intervient le profilage: Amazon 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 éliminer les problèmes.

Q : En quoi Amazon CodeGuru Profiler diffère-t-il des APM traditionnels et des profileurs autonomes?

Les APM traditionnels fournissent des données utiles à propos de la surveillance, du traçage et des performances des applications. Amazon 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. Amazon 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 qu’Amazon 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 ?

Amazon 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 Amazon 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 d'Amazon CodeGuru Profiler utilise les ressources (CPU, 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 une 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 ?

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

Q : Quel est le mode de fonctionnement d’Amazon CodeGuru Profiler ?

Amazon CodeGuru Profiler se compose de trois parties: un agent, le service de profilage et des recommandations intelligentes. L'agent est lancé avec votre application sur la ligne de commande et s'exécute comme une 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 5 minutes au service de profilage, qui les agrège ensuite. Amazon 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. Amazon 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 machine learning 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 et quels sont les langages pris en charge ?

CodeGuru profile le CPU (CPU 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 CPU 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 ?

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. String, int, char[]), y compris les types personnalisés, sur une période donnée (généralement 5 minutes). CodeGuru 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.

Product-Page_Standard-Icons_01_Product-Features_SqInk
En savoir plus sur nos clients

Consultez la page des clients Amazon CodeGuru.

En savoir plus 
Sign up for a free account
Créer gratuitement un compte

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

S'inscrire 
Standard Product Icons (Start Building) Squid Ink
Commencer à créer sur la console

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

Se connecter