Recherchez vos lignes de code les plus onéreuses avec Amazon CodeGuru

Amazon CodeGuru est un outil de développement optimisé par 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. Il effectue des examens de code automatisés et fournit des recommandations sur les performances des applications.

Amazon CodeGuru Reviewer

Amazon CodeGuru Reviewer recherche des problèmes dans votre code et vous recommande des solutions pour les résoudre. Par exemple, CodeGuru Reviewer détecte les écarts par rapport aux bonnes pratiques d'utilisation des API et SDK AWS, et identifie également les problèmes de concurrence, les fuites de ressources, les failles de sécurité et la validation incorrecte des entrées. Pour commencer à réviser le code, vous pouvez associer les référentiels de code existants sur GitHub, GitHub Enterprise, Bitbucket ou AWS CodeCommit avec CodeGuru.

Recommandations automatisées pour les demandes d’extraction

CodeGuru Reviewer analyse automatiquement les demandes d'extraction de code source afin de détecter les problèmes critiques et émet des recommandations intelligentes en vue de résoudre les problèmes de code directement au sein de la demande d'extraction. CodeGuru Reviewer identifie les problèmes de qualité du code dans neuf grandes catégories:

• Bonnes pratiques AWS : utilisation correcte des API AWS (par exemple, sondage, pagination)
• Bonnes pratiques Java et Python (disponibles en version préliminaire): utilisation correcte des fonctionnalités populaires des langages et des bibliothèques Java et Python
• Concurrence: détecte une synchronisation manquante qui entraîne une fonctionnalité incorrecte ou une synchronisation excessive, ce qui entraîne des problèmes de performance.
• Blocages : contrôle de la coordination entre les threads concurrentes
• Fuites de ressources: manipulation correcte des ressources (par exemple, libération des connexions aux bases de données)
• Fuites d'informations sensibles: fuite d'informations personnelles identifiables (par exemple, enregistrement de données de carte de crédit)
• Bogues de code communs: des erreurs difficiles à trouver, comme le fait de ne pas créer un client pour chaque invocation lambda
• Clonage de code: identifie le code dupliqué qui pourrait être consolidé pour une meilleure maintenance du code
• Validation des entrées: vérifications des données mal formées ou malveillantes provenant de sources non fiables

Recommandations automatisées pour les demandes d’extraction
 Cliquer pour agrandir

En bref, CodeGuru fournit à votre équipe de développement les outils nécessaires pour maintenir un niveau élevé de normes de codage dans le processus de développement de logiciels.

Vous pouvez également consulter tous les avis sur les codes dans la page de console « Révisions de code » (section Reviewer). Cette page répertorie toutes les informations relatives à la révision du code, telles que le statut de la révision du code, le référentiel, le nombre de recommandations, etc. Vous pouvez cliquer sur une révision de code terminée pour consulter les détails des recommandations, rechercher des recommandations et voir le nombre de lignes analysées. Vous pouvez également donner votre avis sur les recommandations de CodeGuru en cliquant sur l'icône de pouce levé ou pouce baissé sous la recommandation.

PullRequest
 Cliquer pour agrandir
Recommandations
 Cliquer pour agrandir
Analyse du référentiel complet

Avec CodeGuru, vous pouvez obtenir des recommandations automatisées de révision du code pour les référentiels associés du code complet (pas uniquement des changements incrémentiels via des demandes d'extraction) sous une branche de code spécifiée. Les cas d'utilisation comprennent les recommandations de révision de code lors de la migration du code, l'audit préalable du code et les initiatives de maintenance périodique du code. Vous pouvez accéder à l’onglet « Repository Analysis » (Analyse du référentiel) sur la page « Code Reviews» (Révisions de code) pour démarrer une nouvelle analyse sur un référentiel complet.

Analyse du référentiel complet
 Cliquer pour agrandir

Avec la demande d'extraction et l'analyse du référentiel complet, l’adoption de Reviewer peut vous aider à 1) associer votre référentiel, 2) lancer une analyse du référentiel complet, 3) analyser en continu les demandes d'extraction avec des modifications progressives du code et 4) effectuer une réanalyse périodique du référentiel complet pour garantir la qualité du code.

Détection de sécurité

Codeguru Reviewer vous aide à améliorer la sécurité du code et fournit des recommandations de bonnes pratiques. Il utilise le machine learning pour analyser le flux de données depuis la source jusqu’au récepteur et au travers de multiples fonctions pour détecter les failles de sécurité difficiles à repérer. Security Detector prend en charge Java jusqu’à la version 11 et identifie plusieurs catégories de problèmes tels que:

1. Bonnes pratiques de sécurité des API AWS: vous pouvez vérifier la sécurités des API pour AWS EC2 et KMS
2. Bonne pratique de bibliothèque cryptographique Java: vous pouvez vérifier si Javax.Crypto.Cipher est initialisé et appelé correctement
3. Sécurité des applications Web: vous pouvez vérifier les problèmes de sécurité liés aux applications Web, comme les injections LDAP
4. Fuite d’informations sensibles: vous pouvez rechercher d’éventuelles fuites d’informations à caractère personnel ou confidentielles
5. Bonnes pratiques de sécurité AWS (comme les recommandations AWS Crypto): vous pouvez vérifier si votre code répond aux bonnes pratiques d’AWS
 
Vous pouvez vous rendre sur la console CodeGuru et lancer une analyse de sécurité sur tout votre répertoire ou base de codes en téléchargeant vos artefacts sources et de génération.
Détection de sécurité
 Cliquer pour agrandir

Amazon CodeGuru Profiler

Amazon CodeGuru Profiler recherche constamment à optimiser les performances de l'application, en identifiant vos lignes de code les plus « onéreuses » et en recommandant des manières de les corriger en vue de réduire l'utilisation de la CPU, de diminuer les coûts de calcul et d'améliorer les performances de l'application. Par exemple, CodeGuru Profiler est capable d'identifier les situations dans lesquelles votre application consomme une capacité de CPU excessive sur une routine de journalisation, au lieu d'exécuter une logique applicative de base.

Profilage permanent d'applications en production

CodeGuru Profiler est conçu pour s’exécuter continuellement en production avec une consommation minimale de ressources, ce qui vous permet de le laisser activé. Il vous permet d'établir le profil et de dépanner votre application à l'aide de véritables modèles de trafic client et de facilement détecter les problèmes de performances. Si votre application de production rencontre des problèmes, vous pouvez rapidement les corriger grâce aux données et recommandations du profileur. CodeGuru Profiler fournit également un résumé du heap, vous permettant d’identifier les objets qui consomment de la mémoire à tout moment donné

Comprendre le comportement d'exécution des applications

CodeGuru Profiler analyse en permanence l'utilisation de l’unité centrale par l'application, l’utilisation du heap et les caractéristiques de latence pour vous montrer où vous passez le plus de cycles ou de temps dans votre application. L’analyse de l’unité centrale et de la latence est présentée dans un graphique de type flamme interactif qui vous aide à comprendre facilement quels chemins de code consomment le plus de ressources, à vérifier que votre application fonctionne normalement et à découvrir les domaines qui peuvent être optimisés davantage.

Anomalie de traitement des images
 Cliquer pour agrandir

Les graphiques de type flamme permettent de visualiser les performances de votre application en regroupant les échantillons de traces de pile sur une période afin de produire une image précise du comportement de l'application pendant cette période. Vous pouvez utiliser un graphique de type flamme pour comprendre les chemins qui consomment le plus de ressources, vérifier que votre application fonctionne normalement et détecter les domaines qui peuvent être optimisés davantage. Par exemple, la méthode UploadGreyImage coûte 134 868 USD par an et consomme 10,22 % de temps réel, donc si vous ne vous attendiez pas à ce qu'elle prenne autant de temps, vous devez enquêter.

Résumé du heap

L’analyse de l’utilisation du heap est une représentation visuelle des objets alloués dans votre heap, que ce soient vos propres classes de domaines ou celles détenues par des bibliothèques ou le kit JDK.

Découvrir les anomalies et les problèmes courants dans les performance de votre application
 Cliquer pour agrandir

Le résumé du heap permet de visualiser tous les objets alloués dans le heap pour une période donnée ainsi que leur taille, leur nombre et leurs séries temporelles. Par exemple, dans le graphique des séries temporelles, vous pouvez voir que, à 16:20, deux objets commencent à grossir sensiblement (java.util.LinkedHashMap$Entry et java.land.UUID), ce qui révèle une fuite potentielle de mémoire. Si cette tendance à la hausse se poursuit sans autre vérification, elle pourrait mener à une saturation de la mémoire.

Recommandations intelligentes

CodeGuru Profiler identifie automatiquement les problèmes de performance dans votre application et adresse des recommandations intelligentes concernant la façon d'y remédier. Ces recommandations vous aident à identifier et à optimiser les méthodes les plus onéreuses ou les plus gourmandes en ressources au sein du code sans devoir être un expert de l'ingénierie de performance. Ces optimisations vous aident à réduire le coût de votre infrastructure, à réduire la latence et à améliorer votre expérience globale d'utilisateur final.

Recommandations intelligentes
 Cliquer pour agrandir

Lorsqu'il détecte des possibilités d'optimiser les performances de votre application, Amazon CodeGuru Profiler explique pourquoi il recommande une modification, la raison du problème, la manière de le résoudre et à quel endroit du code ce problème affecte votre application. Cette recommandation montre que cette ligne de code onéreuse vous coûte 182 160 USD par an et que son impact représente 2,97 % de l’utilisation de votre CPU. Si vous suivez les étapes de résolution proposées, vous pourrez économiser jusqu'à 182 160 USD.

Détection des anomalies

Amazon CodeGuru Profiler analyse en permanence les profils de votre application en temps réel et détecte les anomalies dans son comportement et de ses méthodes. Chaque anomalie est suivie dans le rapport de recommandation, et vous pouvez voir les séries chronologiques du comportement de la latence de la méthode au fil du temps, les anomalies étant clairement mises en évidence. Si cela est configuré, une notification Amazon SNS est également envoyée lorsqu'une nouvelle anomalie est détectée.

Détection des anomalies
 Cliquer pour agrandir
Profilage permanent d'applications en production

CodeGuru Profiler est conçu pour s’exécuter continuellement en production avec une consommation minimale de ressources, ce qui vous permet de le laisser activé en permanence avec un impact minimal sur les performances des applications. Cela vous permet d'établir le profil et de dépanner votre application à l'aide de véritables modèles de trafic client et de facilement détecter les problèmes de performances qui ne seraient pas détectés dans votre environnement de test.

Product-Page_Standard-Icons_01_Product-Features_SqInk
En savoir plus sur la tarification d'Amazon CodeGuru

Consultez la page de tarification d'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