5年間Pivotを続けたLINE LIVEのアーキテクチャ刷新。業界No.1の動画配信サービスを目指して

LINEの技術組織が取り組んでいる・今後取り組む未解決課題を深堀りするインタビューシリーズ「Unresolved Tech Issue」、今回のテーマは「LINE LIVEのアーキテクチャ刷新」です。 

LINE LIVEはアーティスト・芸能系コンテンツのライブ配信サービスとして2015年に始まりました。その後、一般ユーザーへ配信機能を開放し、有料オンラインライブなどさまざまな形態のライブを扱えるようにと変化を続けてきました。 

事業の変化に合わせたドラスティックなシステム変更を続けた結果として、過去の設計の上に新規の設計を載せたため、開発・運用効率の低下が課題となってきたのです。開発チームのメンバーたちは、より良いシステムへの刷新を目指しています。LINE LIVEのアーキテクチャの今後の展望について開発3センター サービス開発1室 室長の大澤和宏に聞きました。 

Pivotをくり返しながら成長してきたLINE LIVE 

──LINE LIVE2015年にスタートしてから現在まで、複数回のPivotを経験してきたと伺っています。まずは、その歴史について教えてください。 

LINE LIVEPivotの歴史は、リリースされる前の時期にさかのぼります。もともとLINE LIVEは、LINE GAMEとのシナジーが発揮できるように、ゲームの実況配信サービスとして開発が進められていました。しかし、その機能だけでは利用するユーザー数が少ないため、アーティスト・芸能系コンテンツのライブ配信ができるサービスも別軸で開発することになりました。 

エンジニアたちは、1種類のソースコードリポジトリで2種類のサービスを実現できるように開発を進めていました。ですが、開発途中でゲーム配信系の機能はお蔵入りとなり、アーティスト・芸能系のライブ配信機能だけにフォーカスすることになったんです。その後、201512月にLINE LIVEをリリースしました。 

翌年の20168月、一般のユーザーでもライブ配信できる機能をリリースしたのが次の転換期です。さらに2017年夏には、LINEアプリ内でLINE LIVEアプリの体験そのままに配信を視聴できる機能をリリースしました。この際に、LINE LIVEの動画プレイヤーの機能だけをライブラリとして切り出して各アプリから呼び出せるようにしています。LINE LIVEアプリとLINEアプリの両方をメンテナンスする方針を選ぶと開発工数が肥大化してしまうため、共有できるようライブラリ化しました。 

2018年には視聴者がクイズに参加できる、LINEトリビアというサービスを提供開始しました*。その後、LINE LIVEで収入を得て活躍するLINEライバー(ライブ配信者)に向けた機能を拡充する方針で開発を進めました。 

*…現在は提供終了 

2020年からは新型コロナウィルスの影響でエンターテインメント系のイベントがリアルで開催できない状況になったため、その状況を救いたいという思いから有料オンラインライブができるLINE LIVE-VIEWINGという機能をリリースしました。それに伴い、LINE STORELINEチケットなどのサービスで、LINE LIVE-VIEWINGのチケットを購入可能にし、オンライン上で多くのユーザーにイベントを楽しんでもらう環境を提供しています。 

──サービス立ち上げから現在まで、大きな方針転換をくり返してきたのですね。 

さらに、採用している技術スタックにも大きな変更がありました。LINE社内にはJavaエンジニアが多いため、長期にわたりサービスを開発・メンテナンスしていくことを考えて、LINE LIVEでもJavaを採用しました。 

ですが、LINE LIVEを立ち上げたチームはPerlを得意とするエンジニアが多かったため、Perlでの開発で使っていたフレームワークと類似した設計のJavaフレームワークを自作して使っていました。しかし、その後チームに新しいメンバーが増えてくると、その自作フレームワークの学習コストの高さが徐々に問題になってきたため、23年ほど前にSpring Bootへと変更しました。 

こうした、さまざまな経緯により技術的な負債も蓄積してきました。その負債を解消するために、私たちはアーキテクチャの改善に取り組んでいます。 

開発・運用効率化のため、サーバーの全体設計を一から見直し 

──LINE LIVEの開発チームが目指すアーキテクチャ改善の詳細を教えてください。 

私たちはLINE LIVEを、業界No. 1のライブ配信サービスにすることを目指しています。その目標を達成するには、配信者数や視聴者数、コメント数、ギフト数などの数字をさらに伸ばしていく必要があります。 

こうした数値が増えていくと、サーバーにかかる負荷がより高くなります。それに伴い障害も発生する可能性がありますが、万が一システムの一部で障害が起きても、LINE LIVEのシステム全体に影響しないようなアーキテクチャへと作り替えることも考えています。ライブ配信は文字通り“ライブ”であり、やり直しがききません。もしも配信トラブルが起きれば関係者に多大なる迷惑がかかりますから、なんとしてもその事態を避けなければなりません。 

現在は、チャット機能を受け持つサーバーのみは独立させているものの、他の機能に関してはモノリシックなAPIサーバーで提供しています。そのため、もしも特定機能で障害が起きれば、他の機能もそれに引きずられて使用できなくなる可能性が高いです。モノリシックなサービスを細分化し、マイクロサービス的に再構築することを構想しています。 

──サーバーのスケーリングなどを改善する予定はありますか? 

LINE LIVEには突発的なアクセススパイクが発生しやすいという特性があります。なぜなら、友だち登録者数が多いLINE公式アカウントでライブ配信が始まると、通知を受け取った大勢のユーザーが一斉に配信を視聴するためです。トラフィックの増加があまりにも急激なため、一般的なオートスケーリングの仕組みでは負荷増加に追い付けません。 

そのため現在は、多数のユーザーが視聴しそうな配信の情報をLINE LIVEの運用・開発関係者がカレンダーに登録しており、その情報をもとにサーバーを事前に準備しています。今後はこのオペレーションの自動化を考えており、そのためにKubernetesの導入を検討しています。 

今、別の事業部がライブコマース系のサービスを開発しており、Kubernetesを採用しています。将来的にLINE LIVEKubernetesの導入を見越して、ライブコマースの開発チームと連携を取り合いながら、知見や設計方針を共有してもらっています。 

とはいえ、サーバーのスケーリングの課題を解決すれば、それで終わりではありません。負荷軽減をするためにサーバーを増やすと、次はデータベースのコネクション数やクエリのパフォーマンスの問題などが出てきます。そうした要素を複合的に考えつつ、適切な対応方針を検討しています。 

ネットワーク通信の最適化やサービス連携によるユーザー体験の向上 

──他に実施を予定していることはありますか? 

これまで機能の拡張をくり返してきたことなどが原因で、APIのレスポンスボディが不必要に増大している箇所があります。LINE LIVEでは、一般ユーザーの配信やLINE LIVE-VIEWINGの配信など、各種配信ごとに使用するデータの種類が異なるのですが、今は全ての配信種類で同じような項目のAPIレスポンスを返しています。 

今後はそういったAPIの通信を最適化していきたいです。APIのレスポンス項目や処理内容を精査して最善の状態にしたい。APIのパフォーマンスを改善することで、ユーザー体験をさらに快適にできると考えています。 

さらに、通信のプロトコルもより良い方法を検討したいです。LINE LIVE6年ほど前から開発がスタートしたため、HTTP/1.1による通信を採用しました。HTTP/2はまだ使えなかったですから(HTTP/22015年に登場)。 

現在までHTTP/1.1を使い続けていますが、HTTP/2HTTP/3を導入することで、サービスを改善できる可能性があります。どのようなプロトコルを取り入れれば通信の効率を最適化できるのか、今後さらに調査を進めていきたいです。 

また、LINE LIVEと他サービスとの機能連携を行うことで、LINEが提供する各種サービスの提供価値の向上を考えています。例えば過去には、LINE NEWSの記事上でニュースの内容に則したライブ配信の動画を流すための仕組みをLINE LIVEチーム側で開発・提供しました。 

その仕組みを海外版のニュース配信サービスであるLINE TODAYにも横展開することで、追加開発をほぼ行わずに記事上で動画を流す機能をLINE TODAYでも実現できました。この事例のように、たとえ大掛かりな改修を行わなくても、LINE社内のサービス同士で連携することで、価値を生み出せる可能性は大いにあると考えています。 

また、それ以外にもアプリUX向上のための各種の開発を進めます。例えば、よく改修が行われる画面に関してはUIが洗練されてきているものの、ユーザーの利用頻度が低い画面などはあまり手が入っておらず、改善の余地がある状態です。今後、サービス全体としての統一感が取れるようにきちんとメンテナンスしていきたいです。 

 

人々の生活を支える社会的インフラのようなシステム 

──LINE LIVEを今後どのようなサービスへと成長させたいですか? 

配信者や視聴者の方々に快適に使ってもらえることを何より大切にしたいです。そのためにも、今回話したようなシステム改善を続けていくことには意義があります。いつどんな有名アーティストが配信して、多数の視聴者が同時接続しても、問題なく使ってもらえるようなサービスにしていきたいです。 

また、LINEZホールディングスとの経営統合を行いましたが、それに関連した施策も増えてくるはずです。過日に発表されたプレスリリースの中で、グループ全体の国内エンターテインメント事業を統括する、Z Entertainment株式会社の設立が発表されました。このプレスリリースでは、LINE LIVEGYAO!LINE MUSICLINE GAMEなどの経営リソースを集中することで、国内No.1エンターテインメントプラットフォーム企業を目指すことを謳っています。 

それに伴い、今後はLINE社内だけではなくZホールディングス全体としてのシナジーを生み出すことも重要になってきますから、そのニーズに応えられるような開発体制やシステムを構築したいです。アーティスト・芸能系コンテンツから一般ユーザーまで、ありとあらゆるライブ配信を扱っているのはグループ内でLINE LIVEしかありません。だからこそ、私たちが価値を発揮できる部分が間違いなくあると考えています。 

──インタビューの総括として、エンジニアがLINE LIVEの技術的負債解消やアーキテクチャの改善に取り組む意義をお聞かせください。 

LINE LIVELINEと同じように、徐々に人々の社会的インフラになってきていると実感しています。LINE LIVEの開発には、たくさんの人に楽しんでもらえるサービスの土台を、自分たちの力で良くしていく面白さがあります。 

「サービスを開始してから5年以上も経過しているから、エンジニアリングのおいしい部分はもう残っていないのではないか?」と思われる読者もいるかもしれませんが、全くそんなことはありません。このインタビューで話したように、改善したい点がたくさんあり、可能性に満ちています。 

読者のエンジニアにはぜひ、ベンチャー企業の立ち上げ時期に参画するような気持ちで、私たちの開発チームに加わってもらえると嬉しいです。ここにはシステム改善のための提案や行動を推奨する文化がありますから、エンジニアとしてやりがいのある仕事ができるはずです。

 

採用情報 

LINE株式会社では一緒に働くエンジニアを募集しています!
今回のインタビューと関連する募集ポジションはこちらです、ご応募お待ちしております。