

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# GAMEOPS03-BP03 Testen Sie früh und häufig
<a name="gameops03-bp03"></a>

 Bei Lasttests wird der reale Verkehr auf einem System simuliert, um dessen Zuverlässigkeit und Leistung zu bewerten. 

 **Risikostufe, wenn diese bewährte Methode nicht eingeführt wird:** Hoch 

## Implementierungsleitfaden
<a name="implementation-guidance-5"></a>

 Auslastungstests sind ein wichtiger Faktor, um eine Leistungsbasis für Ihre Ressourcen zu entwickeln und die Kapazität Ihres Systems zu verstehen. Dies kann als Grundlage für Finanzprognosen, Architekturdesign, Ressourcenzuweisung, automatische Skalierungskonfigurationen und Aktivitäten vor der Skalierung nach dem Start dienen. Weitere Vorteile: 
+  **Optimierte Infrastruktur: ** Ressourcen sind möglicherweise über- oder unterversorgt. Wenn Sie wissen, welche Ressourcen benötigt werden, fallen weniger Kosten an und es muss weniger Infrastruktur verwaltet werden. 
+  **Skalierbarkeit: ** Bestimmte Mechanismen und Funktionen können Benutzer schnell in ein Spiel eintauchen lassen. Zu wissen, wann und wie skaliert werden muss, kann den Unterschied zwischen der angemessenen Erfüllung der gestiegenen Nachfrage und dem Verlust von Spielern ausmachen. Verwenden Sie die Ergebnisse der Auslastungstests, um Runbooks mit Systemschwellenwerten, Warnpunkten und kritischen Warnpunkten auf verschiedenen Skalierungsstufen zu erstellen. 
+  **Höhere Codequalität**: Probleme wie übermäßiges Crosstalk zwischen Diensten, unbatchweise ausgeführte Datenbankaufrufe, ineffiziente Algorithmen, Speicherlecks und Probleme mit der Serviceverschlechterung lassen sich im großen Maßstab manchmal einfacher identifizieren. 
+  **Verhaltensüberprüfung: Indem ** Sie verschiedene Arten von Fehlern in Ihre Tests einbeziehen, können Sie das erwartete Verhalten des Systems überprüfen oder Probleme bei der Fehlerbehandlung aufdecken, die behoben werden müssen. 

 Idealerweise sollten Entwickler an mehreren Stellen des Entwicklungsprozesses Auslastungstests durchführen, da jeder von ihnen unterschiedliche Vorteile mit sich bringen kann: Schon früh leiten sie Architekturentscheidungen und Refactoring-Maßnahmen an, während Änderungen kostengünstiger und einfacher sind. Am Ende jedes Sprints oder jeder Iteration validieren sie die Leistung der Anwendung anhand der neuesten Features und Funktionen. 

 Vor der Bereitstellung in der Produktion wird durch groß angelegte Auslastungstests, bei denen die erwarteten realen Nutzungsmuster simuliert werden, bestätigt, dass das System in der Lage ist, die Produktionslast zu bewältigen. Nach der Bereitstellung überwachen regelmäßige Auslastungstests die Leistung des Systems und identifizieren Änderungen oder Engpässe, die im Laufe der Zeit auftreten können. 

 Um den Spielerverkehr zu simulieren, benötigen Sie leichtgewichtige Clients oder Bots, die die Abläufe im Spielclient emulieren und Transaktionen mit dem Spiel-Backend abwickeln, um das reale Spielerverhalten zu simulieren. Diese Daten werden in der Regel durch Spielprotokolle und Daten erfasst, die durch menschliche QA-Tests generiert wurden, sowie durch begrenzte Alpha- oder Betatests in der realen Welt, bei denen echte Spieler eingeladen werden, eine Early-Access-Version des Spiels zu spielen. 

 Es ist wichtig, das Verhalten des Systems in einem operationellen Runbook aufzuzeichnen, um mögliche zukünftige Fehler zu beheben und Leistungskennzahlen beizubehalten, mit denen zukünftige Auslastungstests verglichen werden können. Es wird auch empfohlen, das Spiel während des Auslastungstests von menschlichem QA-Personal testen zu lassen, da es Probleme entdecken könnte, die Bots nicht identifizieren und die Metriken nicht widerspiegeln. 

 [AWS Fault Injection Service ](https://aws.amazon.com/fis/) ist ein vollständig verwalteter Service für die Durchführung von Fault-Injection-Experimenten, die es einfach machen, die Leistung, Beobachtbarkeit und Stabilität einer Anwendung zu verbessern. Fehlerinjektionsexperimente werden im Chaos Engineering eingesetzt. Dabei handelt es sich um die Praxis, eine Anwendung in Test- oder Produktionsumgebungen zu belasten, indem störende Ereignisse wie ein plötzlicher Anstieg des CPU- oder Speicherverbrauchs ausgelöst werden, beobachtet wird, wie das System reagiert, und Verbesserungen implementiert. Fehlerinjektionsexperimente helfen Teams dabei, die realen Bedingungen zu schaffen, die erforderlich sind, um versteckte Fehler aufzudecken und blinde Flecken und Leistungsengpässe zu überwachen, die in verteilten Systemen schwer zu finden sind. 

### Implementierungsschritte
<a name="implementation-steps-5"></a>
+  Richten Sie mithilfe von [ Guidance for Game Load Testing eine Umgebung für Kubernetes-Bases verteilte Lasttests ein. ](https://aws.amazon.com/solutions/guidance/kubernetes-based-game-load-testing-on-aws/) 
+  Passen Sie Locust Control- und Worker-Pods mithilfe der bereitgestellten Bereitstellungsdateien an und stellen Sie sie innerhalb des EKS-Clusters bereit, um eine skalierbare und verwaltbare Lastgenerierung zu ermöglichen. 
+  Zeichnen Sie das Systemverhalten und die Messwerte während der Lasttests in einem Betriebsrunbook auf, um Sie bei der zukünftigen Fehlerbehebung zu unterstützen und Leistungsbasislinien festzulegen. 
+  Verwenden Sie Fault-Injection-Experimente, um reale Störungen zu simulieren und versteckte Probleme in Bezug auf Systemleistung, Beobachtbarkeit und Ausfallsicherheit aufzudecken. 