前編では,ユーザーのライブ配信を支えるシステムの構成について解説を行いました。後編では実際のライブ配信の裏側を解説します。前編で紹介したようなサーバ構成でライブ配信とその周辺機能は構築されています。ここからは,その裏側で運用されている機能のうち,ライブ終了処理とサービスを管理するための機能について紹介します。RDS上に保存され,配信動画そのものはライブサーバを経由してストレージサーバに保存されます。して開始した配信は通常,配信者本人がアプリ内のボタンをタップすることで終了します。このとき,配信停止のリクエストはAPIサーバによって処理されます(図1⁠)⁠。正常なライブ終了処理とヘルスチェックしかし,配信中にアプリ自体が終了したり,通信状況が悪化するなどのトラブルが発生したりした場合,アプリ側では配信の終了を表す画面に切り替わるため終了したように見えますが,APIサーバ側ではこれを認識できません。配信データは送られてこないものの,APIサーバでは配信中として処理が続けられます。そこで,ライブに対するヘルスチェックを行います。一般的なヘルスチェックは,サーバが正常に稼働してアクセス可能な状態であることを確認するための機能です。MixChannelでは,配信データが正常に送られていることを確認するためにこれを適用しています。図1のようにヘルスチェックを行うサーバを用意し,配信中のすべてのライブに対して定期的に配信状況の確認を行います。ヘルスチェックによって配信データが送られてきていないことがわかったときには,終了済みの配信と見なし,終了処理を行います。これにより,終了済みのライブがあたかも配信中であるかのように扱われてアプリ内に表示されるといった不具合を防いでいます。配信中のライブに対して終了処理を行うのはヘルスチェックだけではありません。多くの視聴者に提供されるライブの質を担保するため,誹謗中傷(ひぼうちゅうしょう)や法令違反が見られる場合や,内容が公序良俗に反している場合など,利用規約に違反している配信に対処できるようにライブの監視を行っています(図2⁠)⁠。監視には専用の管理画面を用い,不適切な配信を行うユーザーに対してチャットによる警告や配信の制限といった措置を取っています。監視対象には,チャットサーバを通して送られる配信中のコメントも含まれます(図2⁠)⁠。投稿されたコメントに対してその良し悪しを判断し,不適切なコメントを投稿したユーザーに対してペナルティを課すという一連の作業を自動で行えるようにしています。このように,配信者と視聴者の両方に対する監視を行い,ユーザーが利用しやすい環境を保っています。ユーザーの行動計測ここでは,おもにサービスの新規機能開発を目的として行っているユーザーのログデータの保存方法について紹介します。BigQueryを利用しています。Cloud)などほかのサービスから送られてくるログの監視と保存を行うためのサービスです。ログの形式は独自にカスタマイズできます。BigQueryは,SQLを用いてTB単位のデータセットから高速にデータを取得できる大規模な解析に適したサービスです。これらを結び付け,図3のようにCloudWatchにログデータを集約したあとでBigQueryに保存することで,収集したログデータを計測・分析しています。ユーザーのログ計測フローここまで前編で紹介したライブに関するログも,このフローに沿って収集されています。第1回で紹介したレコメンドシステムmarbleは,各ユーザーの趣味・嗜好(しこう)に合わせてお勧めのライブを表示させるものでした。その開発の一環として表示結果を確認する際にもライブのログを利用しました。Analyticsも利用しています。Analyticsを計測に使います。Analyticsによって収集されるログは直接BigQueryに送られます。収集したデータは,各種KPIの計測に利用し,新規機能の企画・開発に役立てています。Firebaseによって収集されるデータは,MixChannelの主要なKPIの1つであるライブ視聴回数の計測にも活用されています。おわりに今回は連載の第3回、第4回と2回に分けて,MixChannelの根幹を成すライブ配信を構成するシステムとそれを裏側で支える機能について紹介しました。次回は,MixChannelのユーザーに最も近い部分であるクライアント側のアプリ開発に関する記事を予定しています。Donutsでは,現在エンジニアを募集しています。詳しくは,https://www.donuts.ne.jp/jobs/engineer/https://recruit.jobcan.jp/donuts/をご覧ください。Takahashi大学院時代に声質変換を研究し株式会社Donuts入社後MixChannel事業部に配属。サーバ開発やデータ分析に取り組む。Takano大学院時代に情報工学を学び株式会社Donuts入社後MixChannel事業部に配属。サーバ開発中心に取り組む。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。