Definition Was ist Amazon CodeGuru?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Amazon CodeGuru ist der Name eines Cloud-Services von Amazon, mit dem sich Programmcode automatisiert prüfen und optimieren lässt. Zudem ermittelt CodeGuru die Codezeilen mit den höchsten Performanceansprüchen und hilft, Leistungsengpässe aufzuspüren und zu beheben. Amazon CodeGuru besteht aus den beiden Komponenten CodeGuru Reviewer und CodeGuru Profiler.

(Bild: © aga7ta - stock.adobe.com)

Unter der Bezeichnung Amazon CodeGuru bietet Amazon einen cloudbasiert arbeitenden Service, mit dem sich Programmcode automatisiert auf Fehler, Performanceprobleme oder Sicherheitsschwachstellen prüfen und verbessern lässt. Darüber hinaus findet CodeGuru die Codezeilen mit den höchsten Anforderungen an Cloud-Ressourcen wie Rechenleistung oder Speicher und hilft Performanceengpässe aufzuspüren und zu beheben.

Amazon Code Guru basiert auf Machine Learning und liefert Programmierern intelligente Empfehlungen zur Verbesserung der Codequalität. Das Machine-Learning-Modell wurden mit dem Programmcode Tausender auf GitHub vorhandener Open-Source-Projekte trainiert. Code Guru lässt sich vollständig in den Workflow der Softwareentwicklung einbinden. Auf diese Weise wird die Codeprüfung automatisiert und kontinuierlich durchgeführt. Die beiden Komponenten von Amazon CodeGuru sind der CodeGuru Reviewer und der CodeGuru Profiler.

Der Reviewer hat die Aufgabe, Fehler und kritische Probleme im Programmcode zu finden. Aufgabe des CodeGuru Profilers ist es, die ressourcenaufwendigsten (teuersten) Codezeilen zu finden und durch deren Optimierung die Leistung einer Anwendung zu verbessern und die Kosten zu senken. Die Preise für den CodeGuru Reviewer und den CodeGuru Profiler sind nutzungsabhängig und werden auf monatlicher Basis abgerechnet. Beispielsweise richten sich beim CodeGuru Reviewer die monatlichen Kosten nach der Anzahl der Codezeilen der in die Prüfungen eingebundenen Repositories. Das Pricing für den Profiler basiert auf Abtaststunden. Amazon hat den Amazon CodeGuru erstmals im Jahr 2019 vorgestellt. Seit 2020 ist er für den produktiven Einsatz in der Softwareentwicklung freigegeben.

Der Amazon CodeGuru Reviewer

Der Amazon CodeGuru Reviewer ist ein Webservice, der Probleme, kritische Fehler oder Sicherheitsschwachstellen im Programmcode findet. Er unterstützt die Prüfung von mit den Programmiersprachen Java oder Python geschriebenem Code und scannt Codezeile für Codezeile. Der zu prüfende Programmcode kann in Repositories wie GitHub, NitBucket- oder AWS CodeCommit gespeichert sein. Probleme, die der CodeGuru findet, sind beispielsweise Parallelitätsprobleme, unzureichende Sicherheit, fehlende Synchronisierung, hohe Codekomplexität, unangemessene Verarbeitung sensibler Daten wie Login-Daten, Ressourcen-Lecks oder Sackgassen des Codes.

Auf Basis des zuvor per Machine Learning angeeigneten „Wissens“ gibt der Reviewer intelligente Empfehlungen, wie sich die Probleme oder Fehler beheben und die Qualität des Codes steigern lassen. Der CodeGuru Reviewer wurde mithilfe Künstlicher Neuronaler Netzwerke (KNN), logistischer Regression und überwachtem Lernen mit Amazon-Code und großen Open-Source-Projekten geschult. So ist er in der Lage, Abweichungen – beispielsweise von bewährten AWS-Methoden – zu identifizieren. Eine weitere Funktionalität des Reviewers ist der CodeGuru Reviewer Security Detector. Er unterstützt Java 8 bis Java 11 und kann Sicherheitsprobleme des Codes in verschiedenen Kategorien feststellen. Zu diesen Kategorien zählen unter anderem:

  • Verwendung der APIs verschiedener AWS-Services
  • Java-Kryptografie-Bibliotheken
  • Web-App-bezogene Sicherheitsprobleme
  • Verarbeitung sensibler Informationen
  • Best Practices der AWS-Sicherheit

Der Amazon CodeGuru Profiler

Der Amazon CodeGuru Profiler findet die ressourcenaufwendigsten (teuersten) Codezeilen und hilft Entwicklern, das Laufzeitverhalten der Anwendungen besser zu verstehen. Ineffiziente Codezeilen lassen sich identifizieren und zur Optimierung der Leistung und Senkung der Kosten anpassen. Indem der Profiler das Laufzeitprofil der Anwendungen analysiert, ist er in der Lage, intelligente Empfehlungen zur Optimierung des Codes in Bezug auf die Ressourcennutzung zu geben. Unterstützt werden Analysen der Ressourcen CPU und Speicher für die beiden Programmiersprachen Java und Python.

Die Funktionsweise des Profilers basiert auf einem Agenten, einem Profiler-Service und den intelligenten Empfehlungen. Der Agent wird zusammen mit der Anwendung als Thread gestartet und läuft als ein Teil der Anwendung. Der Profiler-Service aggregiert die gelieferten Daten, die anschließend zur Visualisierung der Leistung einer Anwendung nutzbar sind. Interaktive Diagramme zeigen die Ergebnisse der CPU- und Latenzanalysen. Der CodeGuru Profiler analysiert die Anwendungslaufzeiten kontinuierlich, findet Anomalien, generiert Warnungen und erstellt intelligente ML-gestützte Empfehlungen.

Vorteile durch die Nutzung des Amazon CodeGurus

Die Nutzung des Amazon CodeGuru Reviewers und Profilers bietet Entwicklern und Betreibern von Programmcode zahlreiche Vorteile wie:

  • Automatisiertes Finden von Fehlern und Problemen im Programmcode
  • Komplettanalysen des Programmcodes und kontinuierliche Prüfung von inkrementellen Codeänderungen
  • intelligente Empfehlungen zur Behebung der Fehler und Probleme
  • vollständige Integration der Codeprüfung in den Entwicklungsprozess
  • kompatibel mit den Programmiersprachen Java und Python,
  • kontinuierliche Verbesserung der „Intelligenz“ des CodeGurus durch Machine Learning
  • Einbindung verschiedener Code-Repositories möglich
  • Identifizieren und Beheben von Sicherheitsschwachstellen im Programmcode
  • Erkennen und Beheben von Leistungsproblemen
  • besseres Verständnis des Laufzeitverhaltens einer Anwendung
  • verbessertes Benutzererlebnis durch Reduzierung der Latenz
  • Senkung der Betriebs- und Infrastrukturkosten der Anwendungen durch Reduzierung des Ressourcenverbrauchs
  • nutzungsabhängiges Preismodell für den Amazon CodeGuru – keine einmaligen Investitionen notwendig

(ID:47435535)

Über den Autor