Rokuが、パフォーマンスの監視でAppDynamicsを選択

Rokuは、ビデオ、音楽、カジュアルなゲームをテレビに提供している、最も人気のあるストリーミングプラットフォームの制作会社です。テレビ向けストリーミング・エンターテイメント・デバイスの市場をリードしている企業として、Rokuのストリーミング用プレーヤーは、その簡潔性、選択できるエンターテイメントの豊富さや質の高さで定評があります。世界中に何百万人ものユーザーを持つRokuのソフトウェアは、24時間絶え間なく機能しなければなりませんでした。

課題:既存の監視ツールでは非効率と分かる

Rokuのネットワークエンジニアリング担当マネージャーであるNils Pommerien氏は、Rokuが提供しているエンドユーザー経験がどこにも劣らない高品質であることを保証する責任を担っていました。しかしながら、彼には実運用で動作しているアプリケーションのパフォーマンスに関する可視性がほとんどありませんでした。Pommerien氏と彼のチームは、同社のアプリケーションの正常性を監視するためにNagiosやlog4netフレームワークなどのツールを使っていましたが、決して問題を解決する効率的な方法ではないことが分かりました。「およそ1年前、実運用ノードの1つがロックアップされてしまうパフォーマンスの問題がありました」とPommerien氏は語りました。「基本的に我々のコードで無限ループを引き起こしてしまう特定の動作の入り組んだセットがアプリケーションにあったのです。」時々ユーザーがこのプロセスを開始してしまうと、Pommerien氏のチームは影響を受けたサーバーを再起動しなければなりませんでした。「我々はアプリ・プールをリサイクルしましたが、問題についてデータを得られなかったので、解決するには慎重を要しました」と彼は説明しました。 「5人のエンジニアが部屋に集まり、何が起きているかについて10の仮説がありました。」最終的にPommerien氏と彼のチームは、各々の実運用ノードにプロファイラーを設置することに決めました。コアの1つがロックし始めるのを確認したとき、彼らはプロファイラーでデータを集め始め、何度も繰り返して実行されていたコード行を見つけました。「それは、オンラインの問題でした」とPommerien氏は説明しました。 「問題を通知し修正を取得できるまでに、10日かかりました。ところが、AppDynamicsソリューションで解決するには、5~10分しかかかりませんでした。」

AppDynamicsが、トラブルシューティングを効率化し、サードパーティのデータを提供

管理 (APM) ソリューション。Rokuは主にハードウェア装置を販売していたので、そのリリース予定は他のウェブ・アプリケーションとは異なり、製品に付属してリリースされるソフトウェアのバージョンが円滑に作動することが不可欠でした。明確でない使用例に起因する問題があるなら、Pommerien氏は迅速にそれを確認し、訂正できる可視性を必要としました。Rokuはきめ細かいパフォーマンス分析、低いオーバーヘッド、直観的なインターフェースなどの理由で、AppDynamics APMを購入することに決めました。結局AppDynamicsソリューションは、Pommerien氏と彼のチームがRokuの側でアプリケーションパフォーマンスの問題を探すのに役立っただけでなく、ユーザーエクスペリエンスに影響を与える可能性があるサードパーティの問題に対する洞察も提供しました。Pommerien氏は、サードパーティのサービスプロバイダーからのコンテンツに大きく依存していて、ウェブサイトのパフォーマンスが変動するアプリケーションについて責任を負っていました。ウェブサービスのコールに対する可視性は、Pommerien氏がこうしたプロバイダーがSLAに適合していることを確認するのに有益でした。この可視性が、サードパーティのパフォーマンスの悪さによって悪影響を受ける可能性があったRokuのブランドを守りました。たとえば、Rokuのサードパーティ・プロバイダーの1社が24時間の停止となり1週間後、完全に機能が戻ったと主張した時、AppDynamicsソリューションはこれがまったく真実であるわけではないということを示しました。「時々、単なるAPI呼び出しが失敗するようでした」と彼は語りました。「それで、我々は、前週のこの特定のプロバイダーによるすべてのトランザクションを示すために、AppDynamics APMからのグラフの一部をまとめました。10,000件のAPI呼び出しで、200件が完全に失敗していました。」

Rokuが、アプリケーションパフォーマンスの問題を排除

サードパーティのサービスプロバイダーによる問題を除外すると、AppDynamicsプラットフォームの導入後、Pommerien氏にはパフォーマンスの問題はありませんでした。また、このソリューションは、Rokuの開発チームがコードを仕上げるのにも役立ちました。「我々の開発者は、本当に気に入ったようです」とPommerien氏は語りました。「現在彼らは、コードのどの部分が最も実行されているか、あるいは最も実行が遅いかを確認することができます。」また、彼の開発者はプラットフォームを使って、リクエストの合計、キャッシュのヒット、データベースへの接続などを調べることで、メモリキャッシュされている実装の有効性のテストも行うことができました。

問題を通知し修正を取得できるまでに、10日かかりました。ところが、AppDynamicsソリューションで解決すると5~10分しかかかりませんでした。

パフォーマンスを最適化しても、Pommerien氏は以前よりアプリケーションをモニターしていることに気付きました。「暇な時があれば、いつでもAppDynamicsソリューションを使ってチェックインしています」と彼は語りました。「私は、間違いなく以前より多くの時間をパフォーマンスの監視に費やしています。でもそれは悪いことではありません。いつでも、私のアプリケーションで何が起こっているかを正確に把握しています。それは、ものすごいことです。」

いつでも、私のアプリケーションで何が起こっているかを正確に把握しています。それは、ものすごいことです。