AWS: Allgemeine Verfügbarkeit von Amazon CodeGuru

AWS: Allgemeine Verfügbarkeit von Amazon CodeGuru
Lesedauer: 6 Minuten.

Amazon CodeGuru Reviewer nutzt maschinelles Lernen, um kritische Probleme und schwer zu findende Fehler während der Anwendungsentwicklung zu identifizieren und so die Code-Qualität zu verbessern.

Amazon Web Services hat die allgemeine Verfügbarkeit von Amazon CodeGuru bekannt gegeben, einem auf maschinellem Lernen basierenden Entwicklerwerkzeug, das intelligente Empfehlungen zur Verbesserung der Codequalität und zur Identifizierung der teuersten Codezeilen einer Anwendung liefert. Der Amazon CodeGuru Reviewer hilft bei der Verbesserung der Code-Qualität, indem er nach kritischen Problemen sucht, Fehler identifiziert und Empfehlungen zu deren Behebung ausspricht. Amazon CodeGuru Profiler hilft Entwicklern, die teuersten Codezeilen einer Anwendung zu finden, zusammen mit spezifischen Visualisierungen und Empfehlungen zur Verbesserung des Codes, um Geld zu sparen. Amazon CodeGuru kann mit wenigen Klicks in der AWS-Konsole aktiviert werden, Kunden zahlen nur für die tatsächliche Nutzung von Amazon CodeGuru, und es ist einfach und erschwinglich genug, um bei jeder Codeüberprüfung und Anwendung in einer Organisation ausgeführt zu werden. Um mit Amazon CodeGuru zu beginnen, besuchen Sie http://aws.amazon.com/codeguru

Genau wie Amazon.com schreiben AWS-Kunden eine Menge Code. Software-Entwicklung ist ein gut verstandener Prozess. Entwickler schreiben Code, überprüfen ihn, kompilieren den Code und stellen die Anwendung bereit, messen die Leistung der Anwendung und verwenden diese Daten, um den Code zu verbessern. Dann spülen und wiederholen sie den Code. Deshalb führen Teams Code-Reviews durch, um die Logik, Syntax und den Stil zu überprüfen, bevor neuer Code zu einer bestehenden Anwendungscode-Basis hinzugefügt wird. Sogar für eine große Organisation wie Amazon ist es angesichts der Menge an Code, die täglich geschrieben wird, eine Herausforderung, genügend erfahrene Entwickler mit genügend freier Zeit für Code-Reviews zu haben. Und selbst die erfahrensten Reviewer übersehen Probleme, bevor sie sich auf kundenseitige Anwendungen auswirken, was zu Bugs und Leistungsproblemen führt. Selbst wenn eine Anwendung bereits in Betrieb ist, müssen die Entwickler noch immer die Leistung überwachen, um sicherzustellen, dass sie effizient läuft. In der Regel überwachen Entwickler die Anwendungsleistung durch Protokollierung, wodurch sie beobachten können, wie viel Zeit eine Anwendung benötigt, um eine Aufgabe zu erledigen. Die Protokollierung ist jedoch umständlich zu implementieren (und erfordert von den Entwicklern, jede Funktion in der Anwendung zu instrumentieren), wirkt sich negativ auf die Anwendungsleistung aus und misst nicht andere Metriken wie die CPU-Auslastung, die zur Berechnung der Kosten beitragen, so dass den Entwicklern kein Tool zur Verfügung steht, mit dem sie effektiv Kosteneinsparungsmöglichkeiten für Anwendungen in der Produktion identifizieren können. Unternehmen entstehen oft unnötig höhere Kosten (manchmal bis zu mehreren zehn Millionen Dollar) für die Ausführung von Anwendungen, die weiterer Optimierungen bedürfen, weil diese Anwendungen mehr CPU und Infrastruktur verbrauchen, als sie sollten.

Amazon CodeGuru ist ein neuer Entwicklerdienst, der maschinelles Lernen verwendet, um sowohl die Codeüberprüfung während der Anwendungsentwicklung als auch die Profilerstellung von Anwendungen in der Produktion zu automatisieren. Amazon CodeGuru hat zwei Komponenten:

Code-Reviewer: Entwickler können den auf maschinellem Lernen basierenden Amazon CodeGuru Reviewer verwenden, um häufig auftretende Probleme, die von bewährten Verfahren abweichen (und möglicherweise zu Produktionsproblemen führen), automatisch zu markieren und gleichzeitig spezifische Empfehlungen zur Behebung dieser Probleme zu geben, einschließlich Beispielcode und Links zu relevanter Dokumentation. Für Code-Reviews übergeben die Entwickler ihren Code wie gewohnt an das Repository ihrer Wahl (z.B. GitHub, GitHub Enterprise, Bitbucket Cloud, AWS CodeCommit) und fügen den Amazon CodeGuru Reviewer als einen der Code-Reviewer hinzu, ohne weitere Änderungen am normalen Entwicklungsprozess vorzunehmen. Der Amazon CodeGuru Reviewer analysiert vorhandene Codebasen im Repository, identifiziert schwer zu findende Fehler und kritische Probleme mit hoher Genauigkeit, bietet intelligente Vorschläge zu deren Behebung und erstellt eine Basislinie für aufeinander folgende Code-Reviews. Zu diesem Zweck öffnet der Amazon CodeGuru Reviewer eine Pull-Anfrage und beginnt automatisch mit der Code-Evaluierung unter Verwendung von Modellen des maschinellen Lernens, die in mehreren Jahrzehnten der Code-Reviews bei Amazon.com und in über zehntausend Open-Source-Projekten auf GitHub trainiert wurden. Wenn der Amazon CodeGuru Reviewer ein Problem entdeckt (z.B. Probleme mit der Sicherheit von Threads, Verwendung von nicht sanitisierten Eingaben, unangemessener Umgang mit sensiblen Daten wie Anmeldedaten, Ressourcenlecks, redundanter kopierter und eingefügter Code, Abweichung von bewährten Verfahren für die Verwendung von Java- und AWS-APIs usw.), fügt er der Pull-Anfrage einen von Menschen lesbaren Kommentar hinzu, der die Codezeile, das spezifische Problem und die empfohlene Abhilfemaßnahme identifiziert. Der Amazon CodeGuru Reviewer bietet auch ein Dashboard für Pull-Anfragen, das Informationen zu allen Code-Reviews auflistet (z.B. Status des Code-Reviews, Anzahl der analysierten Codezeilen und die Anzahl der Empfehlungen). Benutzer können auch Feedback zu CodeGuru Reviewer-Empfehlungen geben, indem sie auf ein Daumen-nach-oben- oder Daumen-nach-unten-Symbol klicken, was dazu beiträgt, die Empfehlungen im Laufe der Zeit durch maschinelles Lernen zu verbessern.

Application Profiler: Entwickler können den auf maschinellem Lernen basierenden Amazon CodeGuru Profiler verwenden, um die teuersten Codezeilen (im Hinblick auf mögliche geschätzte Kosteneinsparungen) zu identifizieren, indem sie das Laufzeitverhalten ihrer Anwendungen (einschließlich serverloser Anwendungen, die über AWS Lambda oder AWS Fargate laufen) verstehen, Code-Ineffizienzen identifizieren und beseitigen, die Leistung verbessern und die Rechenkosten deutlich senken. Beispielsweise haben die internen Teams von Amazon den Amazon CodeGuru Profiler bei mehr als 30.000 Produktionsanwendungen eingesetzt, was zu Einsparungen bei den Rechen- und Infrastrukturkosten in zweistelliger Millionenhöhe geführt hat. Darüber hinaus hat das Amazon.com-Team für Verbraucherzahlungen den Amazon CodeGuru Profiler von 2017 bis 2018 eingesetzt, um die Effizienz für den größten Einkaufstag des Jahres zu steigern und eine Effizienzsteigerung von 325% bei der CPU-Auslastung ihrer Anwendungen zu erzielen und die Kosten um 39% zu senken. Um mit dem Amazon CodeGuru Profiler zu beginnen, installieren Kunden einen kleinen, unauffälligen Agenten in ihrer Anwendung, der die Anwendungslaufzeit beobachten und ein Profil der Anwendung erstellen kann, um Code-Qualitätsprobleme zu erkennen (z.B. Neuerstellung teurer Objekte, Verwendung ineffizienter Bibliotheken, Auswertung von null oder undefinierten Werten usw.), zusammen mit Details zu Latenz und CPU-Auslastung. Der Amazon CodeGuru Profiler verwendet dann maschinelles Lernen, um automatisch Code-Methoden (wiederverwendbare Code-Blöcke, auch Funktionen genannt) und anomale Verhaltensweisen zu identifizieren, die sich am stärksten auf Latenz und CPU-Nutzung auswirken. Diese Informationen werden in einem Profil zusammengeführt, das die ineffizientesten Code-Bereiche klar aufzeigt und Visualisierungen liefert, die die Code-Methoden identifizieren, die Engpässe verursachen, zusammen mit einem Zeitreihendiagramm der erkannten Anomalien. Das Profil enthält Empfehlungen, wie Entwickler Probleme beheben können, um die Leistung zu verbessern, und schätzt auch die Kosten (in Dollar) für die weitere Ausführung ineffizienten Codes, so dass die Entwickler der Behebung Prioritäten setzen können. Entwickler können nun dieselbe bei Amazon eingesetzte Technologie nutzen, um die Anwendungsleistung und das Kundenerlebnis zu verbessern und gleichzeitig ihre teuersten Codezeilen zu eliminieren.

„Unsere Kunden entwickeln und betreiben eine Vielzahl von Anwendungen, die Millionen und Abermillionen von Codezeilen umfassen. Die Gewährleistung der Qualität und Effizienz dieses Codes ist unglaublich wichtig, da Fehler und Ineffizienzen bereits in wenigen Codezeilen sehr kostspielig sein können. Heutzutage sind die Methoden zur Identifizierung von Code-Qualitätsproblemen zeitaufwändig, manuell und fehleranfällig, besonders in großem Maßstab“, sagte Swami Sivasubramanian, Vice President von Amazon Machine Learning. „CodeGuru kombiniert Amazons jahrzehntelange Erfahrung in der Entwicklung und Bereitstellung von Anwendungen in großem Maßstab mit beträchtlichem Fachwissen im Bereich des maschinellen Lernens, um den Kunden einen Service zu bieten, der die Softwarequalität verbessert, ihre Kunden mit einer besseren Anwendungsleistung erfreut und ihre teuersten Codezeilen eliminiert.“

Amazon CodeGuru ist in den USA-Ost (North Virginia), USA-Ost (Ohio), USA-West (Oregon), EU (Irland), EU (London), EU (Frankfurt), EU (Stockholm), Asien-Pazifik (Singapur), Asien-Pazifik (Sydney) und Asien-Pazifik (Tokio) verfügbar; weitere Regionen folgen in den kommenden Monaten

 

Möchten Sie mehr über unseren Technologiepartner AWS erfahren? Wir beraten Sie umfassend und mit jahrelanger Erfahrung! Kontaktieren Sie uns jederzeit mit ihrem Anliegen!

 

Dieser Artikel beruht in Teilen auf einer Meldung unseres Technologiepartners AWS: https://press.aboutamazon.com/news-releases/news-release-details/aws-announces-general-availability-amazon-codeguru

Ihr Ansprechpartner bei VINTIN

Christoph Waschkau

Mitglied der VINTIN Geschäftsführung

+49 (0)9721 67594 10

kontakt@vintin.de

Abonnieren Sie die Beiträge unseres VINTIN IT-Journals! In Zukunft werden Sie bei neuen Inhalten per Email kurz und bündig informiert.

Zur Datenschutzerklärung

Abonnieren Sie die Beiträge unseres VINTIN IT-Journals! In Zukunft werden Sie bei neuen Inhalten per Email kurz und bündig informiert.

Zur Datenschutzerklärung

Veranstaltungen
  • Keine Veranstaltungen