Amazon CodeGuru
Rechercher vos lignes de code les plus onéreuses
Recherchez vos lignes de code les plus onéreuses et améliorez la qualité
Amazon CodeGuru est un outil pour développeurs optimisé par le machine learning qui fournit des recommandations intelligentes afin d'améliorer la qualité du code et d'identifier les lignes de code les plus onéreuses d'une application. Intégrez Amazon CodeGuru dans votre flux de travail de développement logiciel existant où vous bénéficierez de révisions de code intégrées pour détecter et optimiser les lignes de code coûteuses afin de réduire les coûts.
Amazon CodeGuru Profiler aide les développeurs à trouver les lignes de code les plus coûteuses d'une application, ainsi que des visualisations spécifiques et des recommandations sur la façon d'améliorer le code pour économiser de l'argent. En savoir plus »
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. En savoir plus »
Avantages
Découvrir où votre demande vous coûte de l'argent
Plus le code et l'application sont efficaces, moins il est coûteux de les faire fonctionner. Les développeurs peuvent utiliser Amazon CodeGuru Profiler pour trouver des économies potentielles pour toute application fonctionnant en production. Amazon CodeGuru Profiler fournit des visualisations et des recommandations sur la manière de résoudre les problèmes de performance et le coût estimé de l'exécution d'un code inefficace, aidant ainsi les développeurs à établir des priorités en matière de remédiation. Optimiser les performances des applications fonctionnant sur AWS Lambda, Amazon EC2, Amazon ECS, AWS Fargate ou AWS Elastic Beanstalk, et sur site. Pour les applications EC2, de containers et sur site, attachez l'agent Profiler à votre JVM. Pour Lambda, instanciez l'agent dans votre code Lambda à l'aide d'un changement de ligne.
Rechercher les problèmes de code avant qu'ils ne touchent la production
Entraîné sur des décennies de connaissances et d'expérience, Amazon CodeGuru Reviewer utilise le machine learning, les bonnes pratiques et les leçons durement apprises à travers des millions de vérifications de code et des milliers d'applications présentées sur des projets open-source et en interne sur Amazon.com. Pour les vérifications de code, les développeurs valident leur code sur GitHub, GitHub Enterprise, Bitbucket Cloud, AWS CodeCommit et ajoutent Amazon CodeGuru Reviewer comme l'un des vérificateurs, sans autre modification du processus de développement normal. Amazon CodeGuru Reviewer analyse les bases de code existantes dans le référentiel, identifie les bogues difficiles à trouver et les problèmes critiques avec une grande précision, fournit des suggestions intelligentes sur la façon de les corriger, et crée une base de référence pour les vérifications de code successives.
Identifier vos lignes de code les plus onéreuses
Amazon CodeGuru Profiler détecte automatiquement les anomalies de performance des méthodes critiques dans la pile d'applications qui commencent à consommer plus de CPU ou présentent une latence accrue. Dans un délai de 10 minutes, il notifie l'anomalie au développeur désigné. Cette détection et cette notification précoces permettent d'éviter l'escalade du problème en production et donnent au développeur suffisamment de temps pour le résoudre avant qu'il n'affecte la disponibilité de son service et l'expérience de ses clients.
Amazon CodeGuru Reviewer détecte les écarts par rapport aux bonnes pratiques d’utilisation des API et des SDK AWS, en signalant les problèmes courants qui peuvent entraîner des problèmes de production, tels que la détection d'une pagination manquante ou le traitement des erreurs avec les opérations par lots. Il détecte les problèmes de concurrence, tels que les violations d'atomicité et l'utilisation de classes qui ne sont pas sûres, qui sont difficilement localisables, même par des programmateurs chevronnés. Il détecte les situations dans lesquelles les ressources sont mal fermées, ce qui entraîne leur épuisement et des pannes. Il identifie également l’absence de validation des entrées, où des entrées non assainies peuvent conduire à des problèmes tels que des attaques par injection ou un déni de service.
Témoignages de réussite
Lorsque nous détectons des anomalies de production, nous pouvons réduire le temps d'investigation de plusieurs jours à quelques heures, voire quelques minutes, grâce à la fonction de profilage en continu de l'AWS CodeGuru. Nos développeurs consacrent désormais une plus grande partie de leur énergie à fournir des capacités différenciées et moins de temps à enquêter sur les problèmes de notre environnement de production.
Zak Islam, responsable de l’ingénierie, équipes techniques, Atlassian
Découvrez comment Atlassian profile des services en production avec CodeGuru Profiler »
« Une partie du développement des applications est la création de systèmes performants, ainsi que le retour d'information et l'amélioration continue des systèmes existants. Cela commence par une base architecturale solide, mais se termine souvent par les informations du code de la demande. Lorsque notre équipe chez EagleDream creuse ces informations, elle dispose d'une variété d'outils, et il est utile d'utiliser l'analyse statique et dynamique. Nous avons constaté que l'analyse d'exécution proposée par l'Amazon CodeGuru Profiler est l'une des plus simples et des plus rapides à mettre en œuvre, et qu'elle génère des informations sur le code de l'application qui sont faciles à corriger. Grâce à cet outil, nous avons pu rapidement mettre au point les parties d'une application qui représentent des goulots d'étranglement qui auraient autrement été difficiles à repérer, puis développer des changements qui peuvent être mis en œuvre et testés avec une boucle de rétroaction très rapide. Cela nous permet de fournir et d'améliorer en permanence notre propre charge de travail et les charges de travail de nos clients, en les rendant plus performantes tout en réduisant les coûts. »
Dustin Potter, architecte principal de solutions cloud, EagleDream
Découvrez comment EagleDream optimise ses applications avec CodeGuru Profiler »
« Chez DevFactory, nous gérons plus de 600 millions de lignes de code sur plus d'une centaine de logiciels d'entreprise. Un élément clé de notre future feuille de route est de transformer tous nos produits en produits natifs cloud qui tirent parti de l'incroyable gamme de services gérés disponibles chez AWS. Reconstruire les architectures sur site de la vieille école et les transformer pour le cloud pose tout un ensemble de défis d'ingénierie qui vont du suivi des derniers services à l'adaptation au changement de paradigme qui est associé à ces architectures. Amazon CodeGuru est un outil incroyablement précieux qui permet d'optimiser les performances de nos produits tout en s'assurant que nous exploitons ces services avec toutes les bonnes pratiques en place. Sans des outils comme Amazon CodeGuru Reviewer, nous n'aurions pas pu réécrire des produits entiers comme FogBugz pour qu'ils soient natifs du Cloud AWS. Nous utilisons maintenant Amazon CodeGuru Profiler pour optimiser un certain nombre de produits, notamment la plate-forme « No Ops » de EngineYard basée sur les conteneurs et la nouvelle génération de la plate-forme de collaboration Jive. »
Rahul Subramaniam, PDG de DevFactory
Découvrez comment DevFactory crée de meilleures applications avec CodeGuru »
Chris Butterfield, ingénieur de développement logiciel travaillant sur un service de planification destiné à des vendeurs sur Amazon.in :
“Après avoir lancé Amazon CodeGuru Profiler et vu ses recommandations, j'ai réalisé que nous devions mettre à jour notre service pour corriger un bogue lié au verrouillage de la CPU. Le correctif recommandé a fonctionné à merveille et a éliminé l'avertissement de conflit de thread qui utilisait 55,97 % du temps CPU. Après avoir effectué la correction, j'ai réalisé le test de la charge et j'ai découvert que, désormais, un hôte unique peut servir 700 TPS, soit environ 7,5 fois plus de trafic que ce qu'un seul hôte pouvait gérer auparavant. Nous avons pu réduire notre nombre d'instances d'environ 75 % après le test de charge tout en continuant à gérer le même trafic. »
Rajesh Konatham, un ingénieur de développement logiciel senior travaillant sur le service de gestion de catalogue pour Amazon.com :
“Nous avions seulement désactivé quelques configurations liées au logiciel afin d'améliorer le temps de démarrage du serveur et de réduire l’encombrement des profils. Nous avons utilisé Amazon CodeGuru Profiler pour comprendre l'impact de ce changement et avons réalisé que notre système de flux de travail clonait des documents à chaque fois qu'il exécutait des branches, même lorsque cela n'était pas nécessaire. Par conséquent, nous dépensions inutilement 15 % des valeurs de clonage de capacité de la CPU. Après avoir suivi la recommandation d'Amazon CodeGuru Profiler de supprimer ces valeurs clonées, nous avons constaté d'énormes réductions dans l'utilisation de la CPU, une réduction de 40 % sur la flotte synchrone et de 67 % sur la flotte asynchrone. Bien plus que les 15 % de réduction de l'utilisation de la CPU que nous espérions ! La réduction supplémentaire était imputable à une activité réduite de nettoyage de la mémoire, étant donné que les clones n'occupaient plus la mémoire de tas. »
Neeraj Kumar, ingénieur de développement logiciel senior travaillant sur Amazon CloudWatch :
“Nous avons utilisé Amazon CodeGuru Profiler et constaté que la plupart des capacités de notre CPU étaient utilisées pour signer la demande Amazon S3 en utilisant SHA-2. Nous utilisions l'implémentation fournie par le JDK pour SHA-2, mais Amazon CodeGuru Profiler nous a recommandé d'utiliser plutôt Amazon Corretto Crypto Provider. Nous avons suivi cette recommandation, ce qui nous a permis de mettre en œuvre certains de ces algorithmes de chiffrement plus rapidement. Corretto Crypto Provider se comporte comme JDK, ce qui a simplifié la prise en main. Après le déploiement, nous avons constaté une réduction des processeurs d'environ 30 % dans plusieurs régions AWS. »
Mike Thompson, ingénieur de développement logiciel senior travaillant sur des outils de création AWS :
« Amazon CodeGuru Reviewer nous a permis d'intercepter une condition concurrence de longue date qui se cache dans un morceau de code essentiel. Un vérificateur humain l'aurait manqué, car elle était en dehors des sections du code que j'avais changé. Amazon CodeGuru Reviewer a fourni suffisamment de contexte autour du bogue, une explication claire sur les raisons pour lesquelles il était mauvais, et un exemple sur la façon de le corriger. Dès lors, il n'a fallu que quelques minutes et peu d'efforts pour apporter la modification requise. C'était un véritable avantage de disposer d'une solution qui a permis d'améliorer la qualité de notre code sans impliquer de configuration et sans nous déranger. »
Danish Bashar, un ingénieur de développement logiciel qui travaille sur AWS DynamoDB :
« J'étais en train de télécharger un fichier depuis Amazon S3 et je ne savais pas qu'il s'agissait d'un flux, ce qui a entraîné une fuite de ressources. Le test d'unité n'aurait pas détecté ce problème, car son exécution se déroulait parfaitement. Étant donné que je n'avais pas explicitement écrit le type d'objet, je n'avais pas remarqué ce problème et je suis quasiment certain que toute autre personne qui aurait effectué une révision du code ne l'aurait pas détecté non plus. Il a fallu quelques minutes à Amazon CodeGuru Reviewer pour examiner la sémantique du code et il a détecté la fuite de ressources relativement rapidement. Amazon CodeGuru Reviewer m'a recommandé d'utiliser une ressource d'essai pour fermer la ressource, et je l'ai mise en œuvre immédiatement. +1. »
Geetika Vasudeo, ingénieur de développement logiciel qui travaille sur AWS DynamoDB :
« Nous utilisions une table Amazon DynamoDB d'une façon inhabituelle et nous sommes passés à côté dans la révision du code. Amazon CodeGuru Reviewer a identifié que l'opération renvoyait des résultats paginés au lieu de tous les résultats. Nous réalisions des analyses qui ne retournaient des résultats que sur la première page, ce qui n'était pas un problème pour le moment, mais au fur et à mesure que la table évoluait, nous ne consultions que la première page et nous passions à côté du reste des résultats. Sans une gestion adéquate, cela aurait pu se transformer en un bogue majeur dans notre code. Une bonne trouvaille et une excellente recommandation. »
Amazon CodeGuru Reviewer prend en charge :
- Langage pris en charge par le Reviewer : Java
- Référentiels - GitHub, GitHub Enterprise, cloud Bitbucket et AWS CodeCommit
- Recommandations
Amazon CodeGuru Profiler prend en charge :
- Java et d’autres langages JVM
- Amazon EC2, Amazon ECS, Amazon EKS, AWS Fargate, AWS Beanstalk
- Détection des anomalies
- AWS Lambda
- Sur site
- Graphiques de style flamme
- Recommandations
Commencez à créer avec Amazon CodeGuru dans AWS Management Console.