Verteidigung von Westeros vor Leistungsausfällen

Von Chris Colosimo

14. Juli 2017

3  min lesen

Am Sonntag wird die Premiere der siebten Staffel von Game of Thrones für Millionen tollwütiger Fans verfügbar sein. Das Finale der letzten Saison wurde von über 7 Millionen Menschen gesehen (ein Rekord für HBO), und wenn man all die verschiedenen Arten von Medienformaten (Streaming, Live, DVR und Wiederholungen) berücksichtigt, hatte diese einzelne Episode anscheinend etwa 8.9 Millionen Zuschauer insgesamt.

Die Premiere der siebten Staffel wurde mit Spannung erwartet und hochgespielt, da die Show weiter wächst und die Handlungsstränge ihren Höhepunkt erreichen. Wird John Snow der König des Nordens sein? Was ist mit Dany und dieser Armee auf der anderen Seite des Meeres los? Und was am wichtigsten ist: Wird Tyrion Lanister endlich den Respekt bekommen, den er verdient? (Ich weiß nicht, vielleicht bin ich voreingenommen, aber er ist definitiv das Beste an dieser Show ...)

Aber ich habe diesen kleinen Stich im Hinterkopf, wenn ich an 23 Millionen Zuschauer denke, die gleichzeitig versuchen, über HBO auf dieselbe Show zuzugreifen. Welche Art von Infrastruktur haben sie eingerichtet? Und, was noch wichtiger ist, wie haben sie das Szenario auf Leistung getestet? Was wäre, wenn wir alle 30 Minuten in der Episode wären und plötzlich ein Ausfall wäre?

Ich persönlich schaue Game of Thrones auf der HBO gehen App, Streaming auf meinen Fernseher, also dachte ich, ich könnte etwas recherchieren, um zu sehen, was sich in diesem speziellen Anwendungsfall unter der Haube befindet.

Hier ist was ich herausgefunden   HBO gehen App:

  • Es basiert hauptsächlich auf Java
  • Verwendet Cassandra als primäre Datenquelle
  • Kommuniziert zu Hause über REST-APIs
  • Veröffentlicht Inhalte für das Streaming auf Amazon EC2 in einer Partnerschaft mit MLB Fortgeschrittene.

Nach Angaben des schwillt an HBO hatte den Streaming-Service ursprünglich intern unter dem Codenamen Project Maui geplant. Dies war um 2014, aber sie hatten einige Herausforderungen, einschließlich einiger Ausfälle, die während Episoden von Game of Thrones und True Detective auftraten. (Es wurde zu der Zeit behauptet, dass einige Entwickler-Mitarbeiter von einem möglichen Speicherverlust wussten, ihn jedoch als kein Problem bezeichneten, und es wurde leider festgestellt, dass diese Lecks schließlich zu Ausfällen führten.)

Um die Bedeutung dieser Art von Themen in einen Zusammenhang zu bringen, Der CTO von HBO ist zurückgetreten Im Zuge des Projekts Maui-Probleme, von denen viele mit diesen Speicherlecks zusammenhängen, die zu Ausfällen führen. Der Ausfall einer eigenen, maßgeschneiderten Plattform führte zu einer umfassenden Richtungsänderung des Plattformteams, was zu einer Umstellung auf eine Drittanbieterlösung führte. Man kann die Auswirkungen von Qualität, Leistung und Sicherheit in unternehmenskritischen Infrastrukturen nicht unterschätzen.

Nach diesen Problemen hat HBO eine Partnerschaft mit MLB Advanced geschlossen und führt nun das Streaming durch. Wie würde es also aussehen, diese Infrastruktur angemessen auf Leistung zu testen, um sicherzustellen, dass sie am Sonntag keinen katastrophalen Ausfall hat?

Hier ist ein Diagramm, das modelliert, wie der Stapel aussehen würde und wo die entsprechenden Testtypen hineinpassen würden:

Ich würde damit beginnen, die Workflows für Anmeldung, Suche und Auswahl neu zu erstellen. Ich würde die REST-API-Aufrufe testen, die vom Anwendungsserver an Dienste gesendet werden, und ich würde Funktionsaufrufe an die Backend-Datenbanken validieren. Ich würde diese Aufrufe dann wiederverwenden, um Leistungs- und Auslastungstests für die einzelnen Komponenten zu erstellen, um sicherzustellen, dass sie isoliert ausgeführt werden und nicht unter Übersättigung leiden. Ich würde dann die Benutzererfahrung sowohl aus der mobilen Anwendung als auch aus der Browsererfahrung aufzeichnen und diese für Leistungstests wiederverwenden. Es wäre wichtig, diese beiden Ergebnisse zusammenzufassen und gleichzeitig die zugrunde liegende Technologie auf Threads, Speicherlecks, CPU-Auslastung usw. zu überwachen. Dies würde ihnen helfen, zu verstehen, wo sich die potenziellen Hotspots im Anwendungsstapel befinden.

Fazit

Leistungstests werden manchmal übersehen, aber mit den richtigen Lösungen ist es einfach. Wenn Sie dies vernachlässigen, könnte eine Gruppe wütender Wildlinge hinter Ihnen her sein, wenn ihr Strom plötzlich aufhört.

Wenn Sie kopieren möchten, was ich in diesem Diagramm getan habe, um eine zu nutzen Umgebungsbasierter Testansatz, können Sie Parasoft SOAtest für Ihre funktionale Testautomatisierung und Parasoft Virtualize für die Servicevirtualisierung verwenden. Diese Technologien lassen sich nahtlos miteinander verbinden, um Ihre Tests einfach zu verwalten.

Von Chris Colosimo

Als Produktmanager bei Parasoft strategisiert Chris die Produktentwicklung der Funktionstestlösungen von Parasoft. Seine Expertise in der SDLC-Beschleunigung durch Automatisierung hat ihn zu wichtigen Unternehmensbereitstellungen wie Capital One und CareFirst geführt.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.