Prozess und Kultur - Säule „Leistungseffizienz“

Prozess und Kultur

Bei der Architektur von Workloads gibt es Prinzipien und Praktiken, die Sie übernehmen können, um effiziente und leistungsstarke Cloud-Workloads besser zu betreiben. Dieser Schwerpunktbereich bietet bewährte Methoden zur Schaffung einer Kultur, die die Leistungseffizienz von Cloud-Workloads fördert.

Beachten Sie beim Aufbau dieser Kultur die folgenden Schlüsselprinzipien:

  • Infrastruktur als Code: Definieren Sie Ihre Infrastruktur beispielsweise mithilfe von AWS CloudFormation-Vorlagen als Code. Mit Vorlagen können Sie Ihre Infrastruktur zusammen mit Ihrem Anwendungscode und Ihren Konfigurationen per Quellcodeüberwachung verwalten. Dies ermöglicht es Ihnen, dieselben Verfahren wie bei der Softwareentwicklung auch auf Ihre Infrastruktur anzuwenden, um von einer schnellen Iteration zu profitieren.

  • Bereitstellungspipeline: Nutzen Sie zur Bereitstellung der Infrastruktur eine CI/CD-Pipeline (Continuous Integration/Continuous Deployment) wie etwa ein Quellcode-Repository, Build-Systeme sowie automatisierte Bereitstellungs- und Testverfahren. Dies lässt eine reproduzierbare, konsistente und kostengünstige Iteration zu.

  • Gut definierte Metriken: Richten Sie Metriken und deren Überwachung so ein, dass wichtige Leistungskennzahlen (KPIs) erfasst werden. Wir empfehlen die Verwendung technischer und geschäftlicher Metriken. Anhand von wichtigen Metriken für Websites oder mobile Apps wird die Zeit bis zum ersten Byte oder Rendering erfasst. Zu den weiteren allgemein anwendbaren Metriken zählen die Thread-Anzahl, die Garbage Collection-Rate sowie Wartezustände. Anhand von geschäftlichen Kennzahlen wie den aggregierten kumulativen Kosten pro Anfrage können Sie Möglichkeiten zur Kostensenkung ermitteln. Erwägen Sie sorgfältig, wie Kennzahlen interpretiert werden sollen. Sie können beispielsweise anstelle von Durchschnittswerten Maximalwerte oder das 99. Perzentil wählen.

  • Automatische Leistungstests: Sorgen Sie im Rahmen der Bereitstellung dafür, dass nach dem erfolgreichen Absolvieren der schnelleren Ausführungstests automatisch Leistungstests gestartet werden. Durch die Automatisierung sollte eine neue Umgebung mit entsprechenden Anfangsbedingungen, z. B. Testdaten, entstehen, in der anschließend einige Benchmark- und Lasttests ausgeführt werden. Die Ergebnisse dieser Tests sollten mit dem Build in Verbindung gebracht werden, um Leistungsänderungen verfolgen zu können. Für langwierige Tests können Sie diesen Teil der Pipeline gegenüber dem restlichen Build asynchron ausführen. Sie haben auch die Möglichkeit, Leistungstests über Nacht mit Amazon Amazon EC2-Spot-Instances auszuführen.

  • Lastgenerierung: Erstellen Sie eine Reihe von Testskripts zum Replizieren synthetischer oder vorab aufgezeichneter Benutzerreisen. Diese Skripts sollten idempotent und nicht gekoppelt sein. Um gültige Ergebnisse zu erzielen, sind möglicherweise zusätzliche vorbereitende Skripts erforderlich. Die Testskripts sollten das Nutzungsverhalten in der Produktion möglichst authentisch replizieren. Zur Lastgenerierung können Sie Software- oder Software-as-a-Service-Lösungen (SaaS) verwenden. Erwägen Sie die Verwendung von AWS Marketplace -Lösungen und Spot Instances. Sie können zu einer kostengünstigen Lastgenerierung beitragen.

  • Leistungstransparenz: Wichtige Metriken sollten für das ganze Team sichtbar sein. Dies gilt insbesondere für die Metriken der einzelnen Build-Versionen. Damit lassen sich wichtige positive oder negative Trends erkennen. Wichtig sind auch Metriken zur Anzahl der Fehler oder Ausnahmen, um sicherzustellen, dass das System funktioniert.

  • Visualisierung: Nutzen Sie Visualisierungstechniken, mit denen Leistungsprobleme, Hotspots, Wartezustände oder niedrige Auslastungen klar aufgezeigt werden. Zeigen Sie Leistungsmetriken in Architekturdiagrammen an. Aufrufgrafiken oder Code können die Problemerkennung beschleunigen.

  • Regelmäßiger Überprüfungsvorgang: Wenn Architekturen eine schlechte Leistung aufweisen, liegt dies normalerweise daran, dass ein Prozess zu Überprüfung der Leistung fehlt oder fehlerhaft ist. Falls Sie derartige Probleme mit Ihrer Architektur haben, können Sie jederzeit ein Leistungsprüfverfahren implementieren und somit iterative Verbesserungen fördern.

  • Fortlaufende Optimierung: Schaffen Sie eine Kultur fortlaufender Optimierung der Leistungseffizienz Ihrer Cloud-Workloads.