Roku choisit AppDynamics pour surveiller la performance

Roku est le créateur de la plateforme de diffusion en continu de vidéos, de musique et de jeux sur téléviseur la plus populaire. Roku, leader du marché des appareils de diffusion en continu pour la télévision, propose des lecteurs réputés pour leur simplicité, leur choix pléthorique de divertissements et leur valeur. Avec des millions d'utilisateurs dans le monde entier, les logiciels Roku devaient fonctionner parfaitement 24 h/24.

Défi : faire face aux outils de suivi existants inefficaces

Nils Pommerien, responsable de l'ingénierie réseau chez Roku, devait s'assurer que Roku offre une expérience utilisateur final exceptionnelle. Il ne disposait toutefois que de très peu de visibilité sur la performance de ses applications en production. M. Pommerien et son équipe ont utilisé des outils comme Nagios et le cadre log4net pour surveiller l'état de santé de leurs applications, mais ont constaté que cette méthode ne permettait pas de résoudre efficacement les problèmes. « Il y a un an environ, nous avons rencontré un problème de performance qui bloquait de temps à autre l'un de nos nœuds de production », explique M. Pommerien. « Un ensemble de comportements imbriqués dans notre application provoquait une boucle infinie dans notre code. » Il arrivait souvent qu'un utilisateur déclenche ce phénomène, ce qui obligeait l'équipe de M. Pommerien à redémarrer le serveur affecté. « Nous avions beau redémarrer le pool d'applications, nous n'obtenions aucune information sur le problème, ce qui compliquait sa résolution », affirme-t-il. « Nous avons réuni cinq ingénieurs et chacun y est allé de sa théorie. » M. Pommerien et son équipe ont finalement décidé de joindre des profileurs à chaque nœud de production. Lorsqu'ils ont constaté que l'un des cœurs commençait à bloquer, ils ont collecté des données à l'aide du profileur et ont trouvé la ligne de code qui était exécutée en boucle. « Ce problème était lié à une ligne », déclare M. Pommerien. « Il nous a fallu 10 jours pour créer un correctif à partir de l'identification du problème. Cette résolution n'aurait pris que cinq ou dix minutes avec la solution AppDynamics. »

AppDynamics a rationalisé le dépannage et a fourni des données de tiers

des performances applicatives (APM). Comme Roku vendait principalement des périphériques matériels, son calendrier de lancement était différent des autres applications Web et la version logicielle fournie avec le produit devait fonctionner parfaitement, et en cas de problème lié à un cas d'utilisation obscur, M. Pommerien avait besoin de visibilité pour pouvoir l'identifier et le résoudre rapidement. Roku a décidé d'acquérir la solution d'APM AppDynamics pour son analyse de performance précise, sa faible surcharge et son interface intuitive. La solution AppDynamics a non seulement aidé M. Pommerien et son équipe à localiser les problèmes de performance applicative chez Roku, mais a également apporté un aperçu sur les problèmes des programmes tiers susceptibles de nuire à l'expérience de l'utilisateur. M. Pommerien était responsable d'une application qui s'appuyait majoritairement sur le contenu de fournisseurs de services tiers, dont les performances du site Web étaient très variables. La visibilité dans les appels de services Web a permis à M. Pommerien de s'assurer que ces fournisseurs respectaient leurs SLA. Cette visibilité a également assuré la protection de la marque Roku, que des performances inférieures de programmes tiers auraient pu entacher. Un jour par exemple l'un des fournisseurs tiers de Roku a subi une panne de 24 heures et a prétendu une semaine plus tard être à nouveau pleinement opérationnel. La solution AppDynamics a montré que ce n'était pas tout à fait vrai. « Parfois, un appel d'API était purement et simplement en échec », affirme-t-il. « Nous avons donc recueilli quelques graphes de l'APM AppDynamics pour voir toutes les transactions de ce fournisseur au cours de la semaine écoulée. Sur 10 000 appels d'API, 200 avaient complètement échoué. »

Roku a supprimé les problèmes de performance applicative

Hormis les problèmes occasionnels liés aux fournisseurs de services tiers, M. Pommerien n'a pas rencontré d'autres problèmes de performance depuis le déploiement de la plateforme AppDynamics. La solution a également permis à l'équipe de développement de Roku de perfectionner son code. « Nos développeurs l'adorent », nous confie M. Pommerien. « Ils peuvent maintenant voir les parties de leur code les plus exécutées ou les plus lentes. » Les développeurs utilisent aussi la plateforme pour tester l'efficacité de leurs implémentations mises en mémoire cache, en comparant la différence entre le nombre total de requêtes, les accès au cache et les connexions à la base de données.

Il nous a fallu 10 jours pour créer un correctif à partir de l'identification du problème. Cette opération n'aurait pris que cinq ou dix minutes avec la solution AppDynamics.

Grâce à cette performance optimisée, M. Pommerien a constaté qu'il surveillait nettement plus les applications que par le passé. « Dès que j'ai un moment de libre, je jette un œil au système à l'aide de la solution AppDynamics », déclare-t-il. « Je consacre sans conteste plus de temps au suivi de la performance qu'avant, mais ce n'est pas une mauvaise chose. Je sais exactement et à tout moment ce qui se passe dans mon application. C'est génial. »

Je sais exactement et à tout moment ce qui se passe dans mon application. C'est génial.