Optimizați pentru durabilitate cu Amazon CodeWhisperer | Amazon Web Services

Optimizați pentru durabilitate cu Amazon CodeWhisperer | Amazon Web Services

Această postare explorează cum Amazon Code Whisperer poate ajuta la optimizarea codului pentru durabilitate prin creșterea eficienței resurselor. Codarea eficientă din punct de vedere al resurselor este o tehnică care urmărește reducerea cantității de energie necesară procesării unei linii de cod și, prin urmare, ajută companiile să consume mai puțină energie în general. În această eră a cloud computing-ului, dezvoltatorii folosesc acum biblioteci open source și puterea avansată de procesare disponibilă pentru a construi microservicii la scară largă care trebuie să fie eficiente din punct de vedere operațional, performante și rezistente. Cu toate acestea, aplicațiile moderne constau adesea în cod extins, care necesită resurse de calcul semnificative. Deși impactul direct asupra mediului ar putea să nu fie evident, codul suboptimizat amplifică amprenta de carbon a aplicațiilor moderne prin factori precum consumul crescut de energie, utilizarea prelungită a hardware-ului și algoritmi învechiți. În această postare, descoperim cum Amazon CodeWhisperer ajută la abordarea acestor preocupări și la reducerea amprentei de mediu a codului dvs.

Amazon CodeWhisperer este un însoțitor generativ de codare AI care accelerează dezvoltarea software-ului făcând sugestii bazate pe codul existent și comentariile în limbaj natural, reducând efortul general de dezvoltare și eliberând timp pentru brainstorming, rezolvarea problemelor complexe și crearea de cod diferențiat. Amazon CodeWhisperer poate ajuta dezvoltatorii să-și eficientizeze fluxurile de lucru, să îmbunătățească calitatea codului, să construiască posturi de securitate mai puternice, să genereze suite de testare robuste și să scrie cod ușor de utilizat din punct de vedere computațional, ceea ce vă poate ajuta să optimizați pentru durabilitatea mediului. Este disponibil ca parte a Setul de instrumente pentru codul Visual Studio, AWS Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambdas, AWS Adezivși JetBrains IntelliJ IDEA. Amazon CodeWhisperer acceptă în prezent Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, scripting Shell, SQL și Scala.

Impactul codului neoptimizat asupra cloud computing și amprenta de carbon a aplicațiilor

Infrastructura AWS este de 3.6 ori mai eficientă din punct de vedere energetic decât media centrelor de date pentru întreprinderi din SUA chestionate și de până la 5 ori mai eficientă din punct de vedere energetic decât centrul de date mediu al întreprinderilor europene.. Prin urmare, AWS poate ajuta la reducerea amprentei de carbon a sarcinii de lucru cu până la 96%. Acum puteți utiliza Amazon CodeWhisperer pentru a scrie cod de calitate cu utilizare redusă a resurselor și consum de energie și pentru a îndeplini obiectivele de scalabilitate, beneficiind în același timp de infrastructura AWS eficientă din punct de vedere energetic.

Creșterea utilizării resurselor

Codul neoptimizat poate duce la utilizarea ineficientă a resurselor de cloud computing. Ca rezultat, pot fi necesare mai multe mașini virtuale (VM) sau containere, crescând alocarea resurselor, utilizarea energiei și amprenta de carbon aferentă volumului de lucru. Este posibil să întâmpinați creșteri în următoarele:

  • Utilizarea procesorului – Codul neoptimizat conține adesea algoritmi ineficienți sau practici de codare care necesită cicluri CPU excesive pentru a rula.
  • Consumul de memorie – Gestionarea ineficientă a memoriei în codul neoptimizat poate duce la alocarea, dealocarea sau duplicarea datelor inutile.
  • Operațiuni I/O pe disc – Codul ineficient poate efectua operațiuni de intrare/ieșire (I/O) excesive. De exemplu, dacă datele sunt citite sau scrise pe disc mai des decât este necesar, poate crește utilizarea I/O și latența discului.
  • Utilizarea rețelei – Din cauza tehnicilor de transmisie a datelor ineficiente sau a comunicării duplicate, codul prost optimizat poate cauza o cantitate excesivă de trafic în rețea. Acest lucru poate duce la o latență mai mare și la creșterea utilizării lățimii de bandă a rețelei. Utilizarea crescută a rețelei poate duce la cheltuieli și nevoi mai mari de resurse în situațiile în care resursele de rețea sunt impozitate în funcție de utilizare, cum ar fi în cloud computing.

Consum mai mare de energie

Aplicațiile care susțin infrastructură cu cod ineficient utilizează mai multă putere de procesare. Utilizarea excesivă a resurselor de calcul din cauza codului ineficient și umflat poate duce la un consum mai mare de energie și producție de căldură, ceea ce ulterior necesită mai multă energie pentru răcire. Alături de servere, și sistemele de răcire, infrastructura de distribuție a energiei și alte elemente auxiliare consumă energie.

Provocări de scalabilitate

În dezvoltarea aplicațiilor, problemele de scalabilitate pot fi cauzate de codul neoptimizat. Este posibil ca un astfel de cod să nu se scaleze eficient pe măsură ce sarcina crește, necesitând mai multe resurse și utilizând mai multă energie. Aceasta crește energia consumată de aceste fragmente de cod. După cum sa menționat anterior, codul ineficient sau risipitor are un efect de combinare la scară.

Economiile combinate de energie din optimizarea codului pe care clienții îl rulează în anumite centre de date sunt și mai amplificate atunci când luăm în considerare faptul că furnizorii de cloud precum AWS au zeci de centre de date în întreaga lume.

Amazon CodeWhisperer folosește învățarea automată (ML) și modele de limbaj mari pentru a oferi recomandări de cod în timp real pe baza codului original și a comentariilor în limbaj natural și oferă recomandări de cod care ar putea fi mai eficiente. Eficiența utilizării infrastructurii programului poate fi crescută prin optimizarea codului utilizând strategii, inclusiv progrese algoritmice, management eficient al memoriei și o reducere a operațiunilor I/O inutile.

Generarea codului, completarea și sugestiile

Să examinăm câteva situații în care Amazon CodeWhisperer poate fi util.

Prin automatizarea dezvoltării de cod repetitiv sau complex, instrumentele de generare de cod minimizează posibilitatea erorilor umane, concentrându-se în același timp pe optimizări specifice platformei. Folosind modele sau șabloane stabilite, aceste programe pot produce cod care aderă mai constant la cele mai bune practici de durabilitate. Dezvoltatorii pot produce cod care respectă anumite standarde de codare, ajutând la livrarea unui cod mai consistent și mai de încredere pe tot parcursul proiectului. Codul rezultat poate fi mai eficient și pentru că elimină variațiile de codare umană și poate fi mai lizibil, îmbunătățind viteza de dezvoltare. Poate implementa automat modalități de a reduce dimensiunea și lungimea programului de aplicație, cum ar fi ștergerea codului de prisos, îmbunătățirea stocării variabilelor sau utilizarea metodelor de compresie. Aceste optimizări pot ajuta la optimizarea consumului de memorie și sporesc eficiența generală a sistemului prin micșorarea dimensiunii pachetului.

AI generativă are potențialul de a face programarea mai durabilă prin optimizarea alocării resurselor. Este important să privim în mod holistic amprenta de carbon a unei aplicații. Instrumente ca Profil Amazon CodeGuru poate colecta date de performanță pentru a optimiza latența dintre componente. Serviciul de profilare examinează rulările de cod și identifică potențiale îmbunătățiri. Dezvoltatorii pot rafina manual codul generat automat pe baza acestor constatări pentru a îmbunătăți și mai mult eficiența energetică. Combinația dintre AI generativă, profilare și supraveghere umană creează o buclă de feedback care poate îmbunătăți continuu eficiența codului și poate reduce impactul asupra mediului.

Următoarea captură de ecran vă arată rezultatele generate de CodeGuru Profiler în modul de latență, care include I/O rețea și disc. În acest caz, aplicația își petrece în continuare cea mai mare parte a timpului ImageProcessor.extractTasks (al doilea rând de jos) și aproape tot timpul în interior, care poate fi rulat, ceea ce înseamnă că nu a așteptat nimic. Puteți vizualiza aceste stări ale firului de execuție trecând la modul de latență din modul CPU. Acest lucru vă poate ajuta să vă faceți o idee bună despre ceea ce influențează ora ceasului de perete al aplicației. Pentru mai multe informații, consultați Reducerea amprentei de carbon a organizației dvs. cu Amazon CodeGuru Profiler.

imagine

Generarea cazurilor de testare

Amazon Code Whisperer poate ajuta la sugerarea cazurilor de testare și la verificarea funcționalității codului, luând în considerare valorile limită, cazurile marginale și alte probleme potențiale care ar putea trebui testate. De asemenea, Amazon CodeWhisperer poate simplifica crearea de cod repetitiv pentru testarea unitară. De exemplu, dacă trebuie să creați date mostre utilizând instrucțiuni INSERT, Amazon CodeWhisperer poate genera inserțiile necesare pe baza unui model. Cerințele generale de resurse pentru testarea software-ului pot fi, de asemenea, reduse prin identificarea și optimizarea cazurilor de testare care necesită multe resurse sau prin eliminarea celor redundante. Suitele de testare îmbunătățite au potențialul de a face aplicația să devină mai ecologică prin creșterea eficienței energetice, scăderea consumului de resurse, minimizarea deșeurilor și reducerea amprentei de carbon a sarcinii de lucru.

Pentru o experiență mai practică cu Amazon CodeWhisperer, consultați Optimizați dezvoltarea software-ului cu Amazon CodeWhisperer. Postarea prezintă recomandările de cod de la Amazon CodeWhisperer în Amazon SageMaker Studio. De asemenea, demonstrează codul sugerat pe baza comentariilor pentru încărcarea și analiza unui set de date.

Concluzie

În această postare, am aflat cum Amazon CodeWhisperer poate ajuta dezvoltatorii să scrie cod optimizat și mai durabil. Folosind modele avansate ML, Amazon CodeWhisperer analizează codul dvs. și oferă recomandări personalizate pentru îmbunătățirea eficienței, ceea ce poate reduce costurile și poate ajuta la reducerea amprentei de carbon.

Sugerând ajustări minore și abordări alternative, Amazon CodeWhisperer permite dezvoltatorilor să reducă semnificativ utilizarea resurselor și emisiile fără a sacrifica funcționalitatea. Indiferent dacă doriți să optimizați o bază de cod existentă sau să vă asigurați că noile proiecte sunt eficiente din punct de vedere al resurselor, Amazon CodeWhisperer poate fi un ajutor neprețuit. Pentru a afla mai multe despre resursele Amazon CodeWhisperer și AWS Sustainability pentru optimizarea codului, luați în considerare următorii pași:


Despre autori

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Isha Dua este un arhitect senior de soluții cu sediul în San Francisco Bay Area. Ea îi ajută pe clienții întreprinderilor AWS să se dezvolte prin înțelegerea obiectivelor și provocărilor lor și îi îndrumă asupra modului în care își pot arhitectura aplicațiile într-o manieră nativă în cloud, asigurând în același timp rezistența și scalabilitatea. Este pasionată de tehnologiile de învățare automată și de sustenabilitatea mediului.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Ajjay Govindaram este arhitect senior de soluții la AWS. Lucrează cu clienți strategici care folosesc AI/ML pentru a rezolva probleme complexe de afaceri. Experiența sa constă în furnizarea de direcție tehnică, precum și asistență de proiectare pentru implementări de aplicații AI/ML la scară mică sau mare. Cunoștințele sale variază de la arhitectura aplicațiilor la big data, analiză și învățarea automată. Îi place să asculte muzică în timp ce se odihnește, să experimenteze în aer liber și să petreacă timpul cu cei dragi.

Optimize for sustainability with Amazon CodeWhisperer | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Erick Irigoyen este arhitect de soluții la Amazon Web Services, concentrându-se pe clienții din industria semiconductoarelor și a electronicelor. El lucrează îndeaproape cu clienții pentru a înțelege provocările lor de afaceri și pentru a identifica modul în care AWS poate fi folosit pentru a-și atinge obiectivele strategice. Munca sa s-a concentrat în primul rând pe proiecte legate de inteligența artificială și învățarea automată (AI/ML). Înainte de a se alătura AWS, a fost consultant senior la practica Deloitte Advanced Analytics, unde a condus fluxuri de lucru în mai multe angajamente în Statele Unite, concentrându-se pe Analytics și AI/ML. Erick deține o licență în afaceri de la Universitatea din San Francisco și un master în analiză de la Universitatea de Stat din Carolina de Nord.

Timestamp-ul:

Mai mult de la Învățare automată AWS