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

Amazon CodeGuru est un outil de développement qui utilise la puissance du machine learning pour vous aider à améliorer la maintenabilité de votre code et à trouver vos lignes de code les plus onéreuses. 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 Java et Python 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 vos 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 identifie les problèmes de maintenabilité du code et les risques de sécurité (y compris les 10 premières catégories de l'OWASP) en analysant automatiquement les demandes d'extraction de code source pour trouver les problèmes critiques. Il fournit ensuite des recommandations intelligentes pour résoudre les défauts du code directement dans la demande d'extraction. CodeGuru Reviewer identifie les problèmes de maintenabilité du code dans neuf grandes catégories et donne à votre équipe de développement les moyens de maintenir un niveau élevé de normes de codage dans le processus de développement logiciel :

• Bonnes pratiques AWS : utilisation correcte des API AWS (par exemple, sondage, pagination)
• Bonnes pratiques Java et Python : utilisation correcte des fonctionnalités populaires des langages et des bibliothèques Java et Python
• Simultanéité : détecte une synchronisation manquante qui entraîne une fonctionnalité incorrecte ou une synchronisation excessive, ce qui entraîne des problèmes de performances
• Maintenabilité du code : identifie les complexités du code ou toute caractéristique du code source qui le rend plus difficile à maintenir dans le temps
• 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)
• Bonnes pratiques de codage courantes : vérifie les paramètres et recherche les lignes de code qui pourraient créer des bogues (par exemple, oublier de vérifier si un objet est nul avant de le définir, réaffecter un objet synchronisé, ou oublier d'initialiser une variable le long d'un chemin d'exception).
• 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

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 raisonnement automatisé 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 déclencher une analyse de sécurité sur l'ensemble de votre référentiel ou base de code en chargeant vos artefacts de source et de génération.

Recommandations

Vous pouvez afficher toutes les révisions de code dans la page de la console « Code reviews» (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é située sous la recommandation.

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

Avec CodeGuru, vous pouvez obtenir des recommandations de révision de code alimentées par le ML pour toutes les lignes de code dans les référentiels associés (pas uniquement des changements incrémentiels via des demandes d'extraction) sous une branche de code spécifiée. Vous pouvez exécuter des analyses complètes du référentiel pour obtenir des 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. Dans la console CodeGuru, vous pouvez accéder à l'onglet « Repository Analysis » (Analyse du référentiel) dans la page « Code Reviews» (Révisions de code) pour déclencher une nouvelle analyse sur un référentiel complet. Deux analyses de référentiel complet sont incluses dans le nouveau modèle de tarification basé sur la taille du référentiel. Pour plus d'informations, consultez la page Tarification CodeGuru. 

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 CodeGuru 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 pour les modifications progressives du code et 4) effectuer une réanalyse périodique du référentiel complet pour garantir la maintenabilité du code.

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é en permanence avec un impact minimal sur les performances des applications. Il vous permet de profiler et de dépanner votre application en utilisant des modèles de trafic client réel et de découvrir facilement les problèmes de performance. Grâce aux données du profileur et aux recommandations alimentées par le ML, vous pouvez identifier et corriger les problèmes de performance de vos applications en production. 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 alimentées par le ML 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 que vous ayez à ê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 de la console CodeGuru Profiler, 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
Standard Product Icons (Features) Squid Ink
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