大規模サービスTVerのリニューアルを少人数でアップデートに成功したNew Relic活用術【デブサミ2022夏】
【B-2】少数組織で開発する大規模サービス
テレビ番組を無料で視聴できるサービス「TVer」。月間2.5億回を超える動画再生を支える開発チームは、少人数ながら2022年4月にはアプリケーションの完全新規開発を伴う大規模なアップデートを実施した。デブサミでは、TVerがオブザーバビリティプラットフォームであるNew Relicを活用して大規模リニューアルを少人数で行った事例が共有された。
少人数の開発を止めないようにするには、計測によって、障害を早期発見・対処することが重要
セッションの冒頭で、New Relic株式会社 技術統括 コンサルティング部 ソリューションコンサルタント 古垣 智裕氏は、少数組織で大きなサービスを開発するためのポイントを共有した。古垣氏は「重要なことは、開発とSREが自律的に協業して高速にサービスを開発すること」だとし、だからこそ少しのつまずきがリリースの延期や品質の犠牲につながると指摘した。開発を妨げる要因をいかに早期に発見・対処していくことが重要となるのだ。
では、リアルタイムに障害を発見して対処するにはどのようなアプローチがあるのだろうか。古垣氏は「ズバリ申し上げると、データを活用することで、障害物に対応できるようになります」と話す。プロダクトのありとあらゆるところから、客観的かつリアルタイムなデータを計測し、障害物を発見し対応できる基盤を作ることが重要だ。
責務の整理、導入する機能の取捨選択、ダッシュボードの整理がポイント
古垣氏の概要説明のあと、株式会社TVerのサービス事業本部 技術開発部 リードエンジニアでSREの加我 貴志氏が登壇し、SREから見たNew Relicを利用したTVerのサービスリニューアル事例を紹介した。
TVerは、民放公式のテレビ配信サービスで、毎週約500番組の見逃し配信のほか、過去のコンテンツの配信、地上波の同時配信、ライブ配信などを提供している。2022年7月にはアプリのダウンロードは5000万件に届く勢いで、月間動画再生数が2億5300万件となる大規模サービスとなっている。再生端末はPCやスマートフォンだけでなく、25%程度がコネクテッドTVによるものだ。
TVerではクラウドプラットフォームを利用しており、主要ワークロードはAWSにあり、データ分析はGCPという使い分けをしている。プログラミング言語にGoを採用しソースコード管理とCI/CDにはGitLabを使っている。インフラでは目的に応じたグループにてアカウントを管理しており、耐障害性に優れたマイクロサービスを採用している。TVerのWebサービス、会員情報の管理、テレビ番組との連動、各種視聴データの集計などのサービスがそれぞれ連動して動いている。
TVerのWebサービスは全てAWS上に構築されており、通常のWebリクエスト、静的コンテンツの配信、番組の配信といった用途に応じて、トラフィックを処理している。多様なクライアントに対応しており、バックエンドは大量のトラフィックをさばく必要があるため、NGINXとGoを採用したバックエンドを構築した。加我氏は、「そして、フロントエンドとバックエンドのデータを全てNew Relicに集約し、各種モニタリングやアラートに活用しています」と付け加えた。
2022年4月に実施したTVerのサービスリニューアルでは、TVer IDという仕組みを導入することで、ユーザーの利便性を向上した。その開発に伴い、それまで外部の協力会社に構築運用を依頼していたインフラの内製化を行い、それにあわせてバックエンドの刷新を行った。さらにAmazon CloudWatchだったモニタリング環境をNew Relicに移行したのだ。
加我氏は、New Relicへの移行に際し行ったことが3つあるとし「一つは責務の整理、二つ目は、導入する機能の取捨選択、三つ目はダッシュボードとデータの活用です」と説明した。
責務の整理については、加我氏が入社する前に話が遡る。New Relicの導入はバックエンドのエンジニアが進めており、リニューアル期限まで残り3カ月と迫った2021年12月末、メンバーの多忙さによってNew Relicのフル活用という理想からはかけ離れた状態となっていた。そこで2022年1月に加我氏が入社し、オブザーバービリティやモニタリングの担当を引き継いだ。
加我氏は、「TVerは少人数の技術組織なので、1人で全てやろうとする気持ちもわかります。しかし今回は、あえて責任を分担することで、リニューアルと信頼性の両方を実現することができました。結果的に他のエンジニアは目の前にある優先度の高いタスクに集中できる環境となりました」と振り返った。
導入する機能の取捨選択については、New Relicの豊富な機能によってMELT(Metrics、Event、Logs、Traces)の全てを満たし、特にエラー調査のために、リクエスト単位で詳細な情報を得られるAPM(Application Performance Monitoring )を導入したいと考えていた。
ところが、リリースまで残り2カ月というところでGoに対応したNew Relicのエージェント導入が困難であることがわかり、New Relicの担当者のアドバイスもあって、必要最小限な箇所だけに導入することとした。
加我氏は「最低限でも十分すぎるくらい必要なメトリクスを取得することができています。最小限の労力で最大の効果を得ることができました」と述べた。New Relicはドキュメントとサポートが充実しており、ユーザーコミュニティも活発なため、迷うことなく導入ができたのだ。
ダッシュボードとデータの活用において加我氏は、クライアントからバックエンドインフラまで幅広くカバーできるダッシュボードを整備して対応した。リニューアル後は、クライアントのクラッシュ情報やネットワークエラー情報を調査し、状況をできるだけわかりやすく、社内に共有するといった活動も進めている。将来的には自動化も念頭に置いて運用をしていく。
この記事は参考になりましたか?
- Developers Summit 2022 Summer レポート連載記事一覧
-
- 大規模サービスTVerのリニューアルを少人数でアップデートに成功したNew Relic活用...
- 技術の個別最適と全体最適のバランスをいかに取るべきか? 全社統一を経たリクルートの戦略とは...
- 開発生産性が高い組織の特徴とは? 広木大地氏×ファインディが語る、開発者が自らの生産性を数...
- この記事の著者
-
森 英信(モリ ヒデノブ)
就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
