Logo Zéphyrnet

Optimisez la durabilité avec Amazon CodeWhisperer | Services Web Amazon

Date :

Cet article explore comment Chuchoteur de code Amazon peut aider à l’optimisation du code pour la durabilité grâce à une efficacité accrue des ressources. Le codage économe en ressources informatiques est une technique qui vise à réduire la quantité d’énergie nécessaire au traitement d’une ligne de code et, par conséquent, à aider les entreprises à consommer globalement moins d’énergie. À l’ère du cloud computing, les développeurs exploitent désormais les bibliothèques open source et la puissance de traitement avancée dont ils disposent pour créer des microservices à grande échelle qui doivent être efficaces sur le plan opérationnel, performants et résilients. Cependant, les applications modernes consistent souvent à code volumineux, exigeant des ressources informatiques importantes. Même si l’impact direct sur l’environnement n’est pas évident, un code sous-optimisé amplifie l’empreinte carbone des applications modernes en raison de facteurs tels qu’une consommation d’énergie accrue, une utilisation prolongée du matériel et des algorithmes obsolètes. Dans cet article, nous découvrons comment Amazon CodeWhisperer contribue à répondre à ces préoccupations et à réduire l'empreinte environnementale de votre code.

Amazon CodeWhisperer est un compagnon de codage d'IA génératif qui accélère le développement de logiciels en faisant des suggestions basées sur le code existant et les commentaires en langage naturel, réduisant ainsi l'effort de développement global et libérant du temps pour le brainstorming, la résolution de problèmes complexes et la création de code différencié. Amazon CodeWhisperer peut aider les développeurs à rationaliser leurs flux de travail, à améliorer la qualité du code, à élaborer des postures de sécurité plus solides, à générer des suites de tests robustes et à écrire du code économe en ressources informatiques, ce qui peut vous aider à optimiser la durabilité environnementale. Il est disponible dans le cadre du Boîte à outils pour Visual Studio Code, AWSCloud9, JupyterLab, Amazon SageMakerStudio, AWS Lambda, Colle AWSet JetBrains IntelliJ IDEA. Amazon CodeWhisperer prend actuellement en charge Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, les scripts Shell, SQL et Scala.

Impact du code non optimisé sur le cloud computing et l'empreinte carbone des applications

L'infrastructure d'AWS est 3.6 fois plus économe en énergie que la moyenne des centres de données d'entreprise américains interrogés et jusqu'à 5 fois plus économe en énergie que le centre de données d'entreprise européen moyen.. Par conséquent, AWS peut contribuer à réduire l'empreinte carbone de la charge de travail jusqu'à 96 %. Vous pouvez désormais utiliser Amazon CodeWhisperer pour écrire du code de qualité avec une utilisation des ressources et une consommation d'énergie réduites, et atteindre les objectifs d'évolutivité tout en bénéficiant de l'infrastructure AWS économe en énergie.

Utilisation accrue des ressources

Un code non optimisé peut entraîner une utilisation inefficace des ressources du cloud computing. En conséquence, davantage de machines virtuelles (VM) ou de conteneurs peuvent être nécessaires, ce qui augmente l'allocation des ressources, la consommation d'énergie et l'empreinte carbone associée de la charge de travail. Vous pourriez rencontrer des augmentations dans les cas suivants :

  • Utilisation de l'UC – Le code non optimisé contient souvent des algorithmes ou des pratiques de codage inefficaces qui nécessitent des cycles CPU excessifs pour s’exécuter.
  • Consommation de mémoire – Une gestion inefficace de la mémoire dans un code non optimisé peut entraîner une allocation, une désallocation ou une duplication de données inutiles.
  • Opérations d'E/S disque – Un code inefficace peut effectuer des opérations d’entrée/sortie (E/S) excessives. Par exemple, si les données sont lues ou écrites sur le disque plus fréquemment que nécessaire, cela peut augmenter l'utilisation des E/S du disque et la latence.
  • Utilisation du réseau – En raison de techniques de transmission de données inefficaces ou de communications en double, un code mal optimisé peut entraîner une quantité excessive de trafic réseau. Cela peut entraîner une latence plus élevée et une utilisation accrue de la bande passante du réseau. Une utilisation accrue du réseau peut entraîner des dépenses et des besoins en ressources plus élevés dans les situations où les ressources réseau sont taxées en fonction de leur utilisation, comme dans le cloud computing.

Consommation d'énergie accrue

Les applications prenant en charge l'infrastructure avec un code inefficace utilisent plus de puissance de traitement. La surutilisation des ressources informatiques en raison d'un code inefficace et volumineux peut entraîner une consommation d'énergie et une production de chaleur plus élevées, ce qui nécessite ensuite plus d'énergie pour le refroidissement. Outre les serveurs, les systèmes de refroidissement, l'infrastructure de distribution d'énergie et d'autres éléments auxiliaires consomment également de l'énergie.

Défis d'évolutivité

Dans le développement d'applications, des problèmes d'évolutivité peuvent être causés par un code non optimisé. Un tel code risque de ne pas évoluer efficacement à mesure que la tâche s'accroît, ce qui nécessitera davantage de ressources et consommera davantage d'énergie. Cela augmente l'énergie consommée par ces fragments de code. Comme mentionné précédemment, un code inefficace ou inutile a un effet cumulatif à grande échelle.

Les économies d'énergie cumulées résultant de l'optimisation du code que les clients exécutent dans certains centres de données sont encore aggravées si l'on prend en compte le fait que les fournisseurs de cloud tels qu'AWS possèdent des dizaines de centres de données dans le monde.

Amazon CodeWhisperer utilise l'apprentissage automatique (ML) et de grands modèles de langage pour fournir des recommandations de code en temps réel basées sur le code d'origine et les commentaires en langage naturel, et fournit des recommandations de code qui pourraient être plus efficaces. L'efficacité de l'utilisation de l'infrastructure du programme peut être augmentée en optimisant le code à l'aide de stratégies comprenant des avancées algorithmiques, une gestion efficace de la mémoire et une réduction des opérations d'E/S inutiles.

Génération, complétion et suggestions de code

Examinons plusieurs situations dans lesquelles Amazon CodeWhisperer peut être utile.

En automatisant le développement de code répétitif ou complexe, les outils de génération de code minimisent le risque d'erreur humaine tout en se concentrant sur les optimisations spécifiques à la plateforme. En utilisant des modèles ou des modèles établis, ces programmes peuvent produire un code qui adhère plus systématiquement aux meilleures pratiques en matière de développement durable. Les développeurs peuvent produire du code conforme à des normes de codage particulières, contribuant ainsi à fournir un code plus cohérent et fiable tout au long du projet. Le code résultant peut être plus efficace et, parce qu'il supprime les variations de codage humain, il peut être plus lisible, améliorant ainsi la vitesse de développement. Il peut automatiquement mettre en œuvre des moyens de réduire la taille et la longueur du programme d'application, comme la suppression du code superflu, l'amélioration du stockage des variables ou l'utilisation de méthodes de compression. Ces optimisations peuvent contribuer à optimiser la consommation de mémoire et augmenter l'efficacité globale du système en réduisant la taille du package.

IA générative a le potentiel de rendre la programmation plus durable en optimisant l’allocation des ressources. Il est important d’examiner de manière globale l’empreinte carbone d’une application. Des outils comme Profileur Amazon CodeGuru peut collecter des données de performances pour optimiser la latence entre les composants. Le service de profilage examine les exécutions de code et identifie les améliorations potentielles. Les développeurs peuvent ensuite affiner manuellement le code généré automatiquement en fonction de ces résultats pour améliorer encore l'efficacité énergétique. La combinaison de l’IA générative, du profilage et de la surveillance humaine crée une boucle de rétroaction qui peut améliorer continuellement l’efficacité du code et réduire l’impact environnemental.

La capture d'écran suivante montre les résultats générés à partir de CodeGuru Profiler en mode latence, qui inclut les E/S réseau et disque. Dans ce cas, l'application passe encore la plupart de son temps dans ImageProcessor.extractTasks (deuxième rangée du bas), et presque tout le temps à l'intérieur est exécutable, ce qui signifie qu'il n'attendait rien. Vous pouvez afficher ces états de thread en passant du mode CPU au mode latence. Cela peut vous aider à avoir une bonne idée de ce qui affecte l’heure de l’horloge murale de l’application. Pour plus d'informations, reportez-vous à Réduire l'empreinte carbone de votre organisation avec Amazon CodeGuru Profiler.

image

Génération de cas de test

Chuchoteur de code Amazon peut aider à suggérer des cas de test et à vérifier la fonctionnalité du code en prenant en compte les valeurs limites, les cas limites et d'autres problèmes potentiels qui peuvent devoir être testés. En outre, Amazon CodeWhisperer peut simplifier la création de code répétitif pour les tests unitaires. Par exemple, si vous devez créer des exemples de données à l'aide d'instructions INSERT, Amazon CodeWhisperer peut générer les insertions nécessaires en fonction d'un modèle. Les besoins globaux en ressources pour les tests logiciels peuvent également être réduits en identifiant et en optimisant les cas de test gourmands en ressources ou en supprimant les cas redondants. Des suites de tests améliorées ont le potentiel de rendre l'application plus respectueuse de l'environnement en augmentant l'efficacité énergétique, en diminuant la consommation de ressources, en minimisant les déchets et en réduisant l'empreinte carbone de la charge de travail.

Pour une expérience plus pratique avec Amazon CodeWhisperer, reportez-vous à Optimisez le développement de logiciels avec Amazon CodeWhisperer. L'article présente les recommandations de code d'Amazon CodeWhisperer dans Amazon SageMakerStudio. Il montre également le code suggéré basé sur les commentaires pour charger et analyser un ensemble de données.

Conclusion

Dans cet article, nous avons appris comment Amazon CodeWhisperer peut aider les développeurs à écrire du code optimisé et plus durable. À l'aide de modèles ML avancés, Amazon CodeWhisperer analyse votre code et fournit des recommandations personnalisées pour améliorer l'efficacité, ce qui peut réduire les coûts et contribuer à réduire l'empreinte carbone.

En suggérant des ajustements mineurs et des approches alternatives, Amazon CodeWhisperer permet aux développeurs de réduire considérablement l'utilisation des ressources et les émissions sans sacrifier les fonctionnalités. Que vous cherchiez à optimiser une base de code existante ou à garantir que les nouveaux projets utilisent efficacement les ressources, Amazon CodeWhisperer peut être d'une aide précieuse. Pour en savoir plus sur les ressources Amazon CodeWhisperer et AWS Sustainability pour l'optimisation du code, envisagez les étapes suivantes :


À propos des auteurs

Isha Doua est un architecte de solutions senior basé dans la région de la baie de San Francisco. Elle aide les entreprises clientes d'AWS à se développer en comprenant leurs objectifs et leurs défis, et les guide sur la manière dont elles peuvent concevoir leurs applications de manière native dans le cloud tout en garantissant la résilience et l'évolutivité. Elle est passionnée par les technologies d'apprentissage automatique et la durabilité environnementale.

Ajjay Govindaram est architecte de solutions senior chez AWS. Il travaille avec des clients stratégiques qui utilisent l'IA/ML pour résoudre des problèmes commerciaux complexes. Son expérience consiste à fournir une direction technique ainsi qu'une assistance à la conception pour les déploiements d'applications AI/ML à petite et grande échelle. Ses connaissances vont de l'architecture d'application au big data, à l'analyse et à l'apprentissage automatique. Il aime écouter de la musique tout en se reposant, profiter du plein air et passer du temps avec ses proches.

Erick Irigoyen est un architecte de solutions chez Amazon Web Services qui se concentre sur les clients du secteur des semi-conducteurs et de l'électronique. Il travaille en étroite collaboration avec les clients pour comprendre leurs défis commerciaux et identifier comment AWS peut être exploité pour atteindre leurs objectifs stratégiques. Son travail s'est principalement concentré sur des projets liés à l'intelligence artificielle et à l'apprentissage automatique (AI/ML). Avant de rejoindre AWS, il était consultant senior au sein de la pratique Advanced Analytics de Deloitte, où il a dirigé des flux de travail dans le cadre de plusieurs engagements à travers les États-Unis axés sur l'analyse et l'IA/ML. Erick est titulaire d'un BS en commerce de l'Université de San Francisco et d'une maîtrise en analytique de la North Carolina State University.

spot_img

Dernières informations

spot_img