

# Bewährte Methoden
<a name="perf-bp"></a>

**Topics**
+ [Auswahl der Architektur](perf-arch.md)
+ [Computer und Hardware](perf-compute.md)
+ [Datenverwaltung](perf-data.md)
+ [Netzwerk und Bereitstellung von Inhalten](perf-networking.md)
+ [Prozess und Kultur](perf-process.md)

# Auswahl der Architektur
<a name="perf-arch"></a>

 Die optimale Lösung für einen bestimmten Workload variiert und Lösungen bestehen häufig aus einer Kombination mehrerer Ansätze. Well-Architected-Workloads nutzen mehrere Lösungen und ermöglichen verschiedene Funktionen zur Verbesserung der Leistung. 

 AWS-Ressourcen sind in vielen Typen und Konfigurationen verfügbar, wodurch es einfacher ist, einen Ansatz zu finden, der Ihren Anforderungen weitgehend entspricht. Sie können zudem Optionen nutzen, die sich in Ihrer On-Premises-Infrastruktur nicht ohne Weiteres umsetzen ließen. Nehmen wir beispielsweise den verwalteten Service Amazon DynamoDB. Dieser bietet eine vollständig verwaltete NoSQL-Datenbank mit einer Latenz im einstelligen Millisekundenbereich ungeachtet des Volumens. 

 In der folgenden Frage geht es um Überlegungen zur Leistungseffizienz. (Eine Liste der Fragen und bewährten Methoden zur Leistungseffizienz finden Sie im [Appendix](a-performance-efficiency.md).) 


| PERF 1:  How do you select appropriate cloud resources and architecture patterns for your workload? | 
| --- | 
|  Often, multiple approaches are required for more effective performance across a workload. Well-Architected systems use multiple solutions and features to improve performance.  | 

# Computer und Hardware
<a name="perf-compute"></a>

 Die optimale Datenverarbeitungsoption für einen bestimmten Workload kann sich je nach Anwendungsdesign, Nutzungsmustern und Konfigurationseinstellungen unterscheiden. Architekturen können verschiedene Computing-Optionen für verschiedene Komponenten verwenden und verschiedene Funktionen zur Verbesserung der Leistung bieten. Die Wahl der falschen Datenverarbeitungslösung für eine Architektur kann die Leistungseffizienz schmälern. 

 In AWS gibt es drei Arten der Datenverarbeitung: Instances, Container und Funktionen. 
+  **Instances** sind virtualisierte Server, deren Funktionen mit einer Schaltfläche oder einem API-Aufruf geändert werden können. Da Ressourcenentscheidungen in der Cloud flexibel sind, können Sie mit verschiedenen Servertypen experimentieren. AWS bietet diese virtuellen Server-Instances in unterschiedlichen Varianten und Größen mit einer umfassenden Auswahl an Optionen, einschließlich Solid-State-Laufwerken (SSDs) und Grafikprozessoren (GPUs). 
+  **Container** dienen zur Virtualisierung des Betriebssystems. Sie können damit eine Anwendung und deren Abhängigkeiten in von der Ressource isolierten Prozessen ausführen. AWS Fargate bietet eine Serverless-Datenverarbeitung für Container. Amazon EC2 kann verwendet werden, wenn Sie Kontrolle über die Installation, Konfiguration und Verwaltung Ihrer Datenverarbeitungsumgebung benötigen. Zudem haben Sie die Auswahl unter mehreren Plattformen zur Container-Orchestrierung: Amazon Elastic Container Service (ECS) oder Amazon Elastic Kubernetes Service (EKS). 
+  **Funktionen** abstrahieren die Ausführungsumgebung vom Code, den Sie anwenden möchten. AWS Lambda ermöglicht es Ihnen beispielsweise, Code auszuführen, ohne eine Instance auszuführen. 

 In der folgenden Frage geht es um Überlegungen zur Leistungseffizienz. 


| PERF 2:  How do you select and use compute resources in your workload? | 
| --- | 
| The more efficient compute solution for a workload varies based on application design, usage patterns, and configuration settings. Architectures can use different compute solutions for various components and turn on different features to improve performance. Selecting the wrong compute solution for an architecture can lead to lower performance efficiency. | 

# Datenverwaltung
<a name="perf-data"></a>

 Die optimale Datenverwaltungslösung für ein bestimmtes System hängt vom Datentyp (Block, Datei oder Objekt), den Zugriffsmustern (zufällig oder sequenziell), dem erforderlichen Durchsatz, der Zugriffshäufigkeit (online, offline, Archiv), der Aktualisierungshäufigkeit (WORM, dynamisch) sowie den Verfügbarkeits- und Lebensdaueranforderungen ab. Well-Architected-Workloads verwenden zweckgebundene Datenspeicher, die verschiedene Funktionen zur Verbesserung der Leistung ermöglichen. 

 In AWS ist Speicher in drei Formen verfügbar: Objekt-, Block- und Dateispeicher: 
+  **Objektspeicher** bietet eine skalierbare, robuste Plattform, damit Daten überall im Internet zugänglich sind. Das gilt für benutzergenerierte Inhalte, aktive Archive, Serverless-Datenverarbeitung, Big-Data-Speicher oder die Sicherung und Wiederherstellung. Bei Amazon Simple Storage Service (Amazon S3) handelt es sich um einen Objektspeicherservice mit branchenführender Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung. Amazon S3 ist auf eine Verfügbarkeit von 99,999999999 % (elf Neunen) ausgelegt und speichert Daten für Millionen von Anwendungen für Unternehmen weltweit. 
+  **Blockspeicher** bietet hochverfügbaren, konsistenten Blockspeicher mit geringer Latenz für virtuelle Hosts. Er ist vergleichbar mit Direct Attached Storage (DAS) oder einem Storage Area Network (SAN). Amazon Elastic Block Store (Amazon EBS) ist auf Workloads ausgelegt, die einen persistenten, für EC2-Instances zugänglichen Speicher benötigen. So können Sie Anwendungen in Sachen Speicherkapazität, Leistung und Kosten optimieren. 
+  **Dateispeicher** bietet auf mehreren Systemen Zugriff auf ein gemeinsam genutztes Dateisystem. Dateispeicherlösungen wie Amazon Elastic File System (Amazon EFS) eignen sich ideal für Anwendungsfälle wie große Inhalts-Repositorys, Entwicklungsumgebungen, Medienspeicher oder Hauptverzeichnisse von Benutzern. Amazon FSx macht das Starten und Ausführen beliebter Dateisysteme einfach und kostengünstig. Somit können Sie die umfangreichen Funktionen und die hohe Leistung weit verbreiteter Open-Source- und kommerzieller Dateisysteme nutzen. 

 In der folgenden Frage geht es um Überlegungen zur Leistungseffizienz. 


| PERF 3:  How do you store, manage, and access data in your workload? | 
| --- | 
|  The more efficient storage solution for a system varies based on the kind of access operation (block, file, or object), patterns of access (random or sequential), required throughput, frequency of access (online, offline, archival), frequency of update (WORM, dynamic), and availability and durability constraints. Well-architected systems use multiple storage solutions and turn on different features to improve performance and use resources efficiently.  | 

# Netzwerk und Bereitstellung von Inhalten
<a name="perf-networking"></a>

 Welche Networking-Lösung für einen Workload optimal ist, richtet sich nach der Latenz, dem erforderlichen Durchsatz, dem Jitter und der Bandbreite. Die Standortoptionen sind von den physischen Einschränkungen abhängig, z. B. von Benutzer- oder On-Premises-Ressourcen. Diese Einschränkungen können durch Edge-Standorte oder die Ressourcenplatzierung wettgemacht werden. 

 In AWS wird das Netzwerk virtualisiert und es sind unterschiedliche Typen und Konfigurationen verfügbar. Das erleichtert Ihnen die Anpassung Ihrer Networking-Anforderungen. AWS bietet zur Optimierung des Netzwerkdatenverkehrs Produktfunktionen wie Enhanced Networking, für Amazon EC2-Networking optimierte Instances, Amazon S3 Transfer Acceleration sowie den dynamischen Amazon CloudFront-Service. Zur Verbesserung der Latenz und der Stabilität des Netzwerks finden Sie in AWS zudem Networking-Funktionen wie die latenzbasierte Weiterleitung mit Amazon Route 53, Amazon VPC-Endpunkte, AWS Direct Connect und AWS Global Accelerator. 

 In der folgenden Frage geht es um Überlegungen zur Leistungseffizienz. 


| PERF 4:  How do you select and configure networking resources in your workload? | 
| --- | 
|  This question includes guidance and best practices to design, configure, and operate efficient networking and content delivery solutions in the cloud.  | 

# Prozess und Kultur
<a name="perf-process"></a>

 Bei der Architektur von Workloads gibt es Prinzipien und Praktiken, die Sie übernehmen können, um effiziente und leistungsstarke Cloud-Workloads besser zu betreiben. Um eine Kultur zu schaffen, die die Leistungseffizienz von Cloud-Workloads fördert, sollten Sie diese Schlüsselprinzipien und -praktiken berücksichtigen: 

 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 so ein, dass wichtige Leistungskennzahlen (KPIs) erfasst werden, und überwachen Sie sie entsprechend. 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 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](https://aws.amazon.com/marketplace/)-Lösungen und [Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html). Dies können kostengünstige Ansätze zum Generieren der Last sein. 
+  **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. 
+  **Kontinuierliche Optimierung:** Schaffen Sie eine Kultur fortlaufender Optimierung der Leistungseffizienz Ihrer Cloud-Workloads. 

 In der folgenden Frage geht es um Überlegungen zur Leistungseffizienz. 


| PERF 5:  What process do you use to support more performance efficiency for your workload?  | 
| --- | 
|  When architecting workloads, there are principles and practices that you can adopt to help you better run efficient high-performing cloud workloads. To adopt a culture that fosters performance efficiency of cloud workloads, consider these key principles and practices.  | 