Roku

Roku entscheidet sich für AppDynamics zur Leistungsüberwachung

Roku ist der Entwickler der beliebtesten Streamingplattform für die Bereitstellung von Videos, Musik und Spielen auf dem Fernsehgerät. Das Unternehmen ist Marktführer bei Streaminggeräten für Fernseher. Seine Streaming-Player sind für ihre Einfachheit, die vielfältigen Unterhaltungsmöglichkeiten und das Preis-Leistungs-Verhältnis bekannt. Bei Millionen Benutzern in aller Welt muss die Software von Roku nahtlos rund um die Uhr funktionieren.

Bestehende Überwachungstools erwiesen sich als ineffizient

Nils Pommerien, Manager of Network Engineering bei Roku, war für die einzigartige Benutzerfreundlichkeit für den Endbenutzer verantwortlich. Er verfügte jedoch über sehr wenig Einblick in die Leistung seiner in der Produktion ausgeführten Anwendungen. Pommerien und sein Team überwachten die Integrität ihrer Anwendungen mit Tools wie Nagios und das log4net-Framework. Sie erkannten jedoch, dass sie Probleme damit nicht effizient beheben konnten.
„Vor etwa einem Jahr hatten wir ein Leistungsproblem, das gelegentlich einen unserer Produktionsknoten blockierte“, erinnert sich Pommerien. „Es gab einen verschachtelten Verhaltenssatz in unserer Anwendung, der eine unendliche Schleife in unserem Code verursachte.“ Von Zeit zu Zeit löste ein Benutzer diesen Prozess aus, sodass das Team von Pommerien den betroffenen Server neu starten musste. „Wir haben den Anwendungspool neu gestartet, aber da wir keine Daten über das Problem erhielten, war es schwierig zu lösen“, stellt er fest. „Wir haben fünf Entwickler darauf angesetzt und hatten bald zehn Theorien über die Ursache.“

Nachdem wir das Problem entdeckt hatten, brauchten wir zehn Tage, bis wir einen Fix programmiert hatten. Mit der AppDynamic-Lösung hätten wir das in fünf bis zehn Minuten lösen können.

Schließlich beschlossen Pommerien und sein Team, an jedem Produktionsknoten einen Profiler zu installieren. Wenn einer der Kerne blockierte, sammelten sie mit dem Profiler Daten und ermittelten die Codezeile, die wieder und wieder ausgeführt wurde. „Das Problem wurde durch eine einzige Codezeile verursacht“, so Pommerien. „Nachdem wir das Problem entdeckt hatten, brauchten wir zehn Tage, bis wir einen Fix programmiert hatten. Mit einer AppDynamic-Lösung hätten wir das in fünf bis zehn Minuten lösen können.“

ApDynamics optimiert die Problembehebung und stellt Drittanbieterdaten bereit

Um nicht wieder mit derartigen Umständen konfrontiert zu werden, beschloss Roku, APM-Lösungen zu prüfen. Da Roku in erster Linie Hardwaregeräte verkaufte, unterschied sich ihr Veröffentlichungsschema von dem anderer Webanwendungen. Die mit dem Produkt ausgelieferten Softwareversionen mussten fehlerfrei funktionieren. Wenn durch einen unbekannten Benutzervorfall ein Problem verursacht wurde, benötigte Pommerien fundierte Einblicke, um dieses schnell zu identifizieren und zu beheben. Roku entschied sich aufgrund der detaillierten Leistungsanalyse, dem geringen Overhead und der intuitiven Benutzeroberfläche für den Kauf der APM-Lösung von AppDynamics.

Die AppDynamics-Lösung half Pommerien und seinem Team nicht nur dabei, Anwendungsleistungsprobleme bei Roku zu lokalisieren, sondern bot ihnen darüber hinaus Einblick in Probleme bei Drittanbietern, die die Benutzerfreundlichkeit beeinträchtigen könnten. Pommerien war für eine Anwendung verantwortlich, die stark von Inhalten von Drittanbietern mit schwankender Websiteleistung abhängig war. Transparenz bezüglich der Webdienstaufrufe half Pommerien, sicherzustellen, dass diese Anbieter ihre SLA erfüllten.

Diese Transparenz schützte zudem die Marke Roku, die unter mangelhafter Leistung von Drittanbietern in Mitleidenschaft geraten könnte. Als beispielsweise einer von Rokus Drittanbietern einen 24-stündigen Ausfall zu verzeichnen hatte und eine Woche später erklärte, wieder voll leistungsfähig zu sein, konnte die AppDynamics-Lösung aufzeigen, dass dies nicht ganz der Wahrheit entsprach. „Anscheinend fiel hin und wieder eine API einfach aus“, meint Pommerien. „Also haben wir mehrere Diagramme über die APM-Lösung von AppDynamics zusammengestellt, um alle Transaktionen der vergangenen Woche mit diesem Anbieter aufzuzeigen. Von 10.000 API-Aufrufen schlugen 200 vollständig fehl.“

Roku beseitigt Anwendungsleistungsprobleme

Abgesehen von gelegentlichen Problemen mit Drittanbietern von Diensten musste Pommerien seit der Bereitstellung der AppDynamics-Plattform keinerlei Leistungsprobleme mehr registrieren.

Die Lösung unterstützte außerdem das Entwicklerteam von Roku bei der Optimierung ihres Codes. „Unsere Entwickler sind begeistert“, so Pommerien. „Jetzt können sie ermitteln, welche Teile des Codes am häufigsten oder am langsamsten ausgeführt werden.“ Seine Entwickler haben mithilfe der Plattform auch die Effektivität ihrer memcached-Implementierungen getestet, indem sie die Differenz zwischen der Gesamtzahl der Anfragen, den Cachetreffern und den Verbindungen mit der Datenbank analysierten.

Pommerien stellte fest, dass er die Anwendungen jetzt öfter überprüfte, obwohl die Leistung bereits optimiert war. „Wenn ich kurz Zeit habe, führe ich Prüfungen mit der AppDynamics-Lösung durch“, erläutert er. „Ich überprüfe die Leistung definitiv häufiger als früher, und das ist gut so. Ich bin immer über die Vorgänge in meiner Anwendung im Bilde. Darauf möchte ich nicht mehr verzichten.“

Ich weiß jederzeit genau, was in meiner Anwendung passiert, einfach fantastisch.