Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DeNAの動画配信サービスを支えるインフラの内部 #denatechcon

3,111 views

Published on

DeNA TechCon 2017の登壇資料です。

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

DeNAの動画配信サービスを支えるインフラの内部 #denatechcon

  1. 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAの 動画配信サービスを支える インフラの内部 Yusuke Hata Group Manager Group.1 IT Platform Dept. System Management Unit DeNA Co., Ltd. TechCon 2017
  2. 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 2 今回お話する内容 ■ 安定したライブ動画配信を支えるためにやっている事 ⁃ ストリームの sharding について ⁃ 分散させるための仕組み ⁃ インフラの構成 ⁃ オートスケーリング ■ クラウドサービスの利用について ■ オートスケーリングについて ■ 実績など
  3. 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. 動画配信サービス ってどんなことやってるのか 3
  4. 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. 動画配信サービスは大きく分けると2パターン ■ ビデオ・オン・デマンド(Video On Demand) ⁃ 収録済みの映像コンテンツを配信(レンタルビデオを見るイメージ) 4 ■ ライブストリーミング ⁃ 撮影しながら配信、視聴もリアルタイム視聴(TVの生放送のイメージ)
  5. 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. 動画配信サービスは大きく分けると2パターン ■ ビデオ・オン・デマンド(Video On Demand) ⁃ 収録済みの映像コンテンツを配信(レンタルビデオを見るイメージ) 5 ■ ライブストリーミング ⁃ 撮影しながら配信、視聴もリアルタイム視聴(TVの生放送のイメージ)
  6. 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. ライブ(ストリーミング)配信の仕組み - おさらい - 6
  7. 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. 配信の仕組み(配信) Origin(オリジン)サーバー カメラなどで撮影したデータはエンコーダーを通して Originサーバと呼ばれる配信サーバに映像データが配信(publish)される 最近ではスマートフォンを使うことで簡単に撮影&配信が出来る 7
  8. 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. 配信の仕組み(視聴) Edge(エッジ)サーバー Originサーバと違い、映像を届ける事をメインとするサーバ Originから配信された映像データをクライアント(視聴者)に届ける(配信する) 8
  9. 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. 映像が届く仕組み(プロトコル) ■ RTMP - Real Time Messaging Protocol ⁃ マルチメディアのやり取りが得意のプロトコル、比較的低レイテンシ、Adobe製 ■ HLS - HTTP Live Streaming ⁃ HTTPプロトコルを使ってライブ配信を実現するプロトコル、Apple製 9
  10. 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAの主なライブストリーミングサービス 10
  11. 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. 1111 SHOWROOM Mirrativ DeNAインフラで動く主なサービス
  12. 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. 1212 SHOWROOM (ショールーム) DeNAインフラで動く主なサービス ■ インターネット上でアイドル、タレントとコ ミュニケーションを楽しむことができる、仮 想ライブ空間 ■ 仮想ライブ空間では、アバターの格好にな り応援したいパフォーマーの部屋を訪問し コミュニケーションできる ■ パソコン・スマートフォンなどから配信する ことができる ■ VRライブ配信を行うこともできる (SHOWROOM VR)
  13. 13. Copyright © DeNA Co.,Ltd. All Rights Reserved. 1313 Mirrativ (ミラティブ) DeNAインフラで動く主なサービス ■ スマートフォンに特化した生配信・実況配 信が出来るコミュニケーションサービス ■ スマートフォンの画面をミラーリングしな がらライブ配信ができるので手軽 ■ 日本国内以外にも韓国などの海外でも 配信が賑わっている ■ ゲーム実況配信などが人気
  14. 14. Copyright © DeNA Co.,Ltd. All Rights Reserved. 安定したライブ動画配信を 支えるためにやっている事 - インフラ基盤について - 14
  15. 15. Copyright © DeNA Co.,Ltd. All Rights Reserved. 全体の構成 15
  16. 16. Copyright © DeNA Co.,Ltd. All Rights Reserved. 全体の構成およびSharding構成 16 ■ Origin と Edge は Sharding されて同一Shard内に配信される ■ そのため視聴側も同じShard内のEdgeに接続に行く ■ Shardを跨ぐ接続はしていない
  17. 17. Copyright © DeNA Co.,Ltd. All Rights Reserved. 安定運用のための Origin/Edgeのキャパシティプランニング 17
  18. 18. Copyright © DeNA Co.,Ltd. All Rights Reserved. Sharding構成 18 ■ なぜSharding? ⁃ スケールアウトをするため ⁃ Origin1台あたりが捌けるキャパシティに限界がある ⁃ Originのスケールアウト以外にEdgeのスケールアウトのコントロールのため ■ 配信は持続して行われる(連続的)のため キャパシティの上限になる前にスケールアウトしなければならない
  19. 19. Copyright © DeNA Co.,Ltd. All Rights Reserved. Sharding構成 19 ■ Edgeは同一Shard内にスケールアウト ■ Origin同様、配信は持続して行われる(連続的)のため キャパシティが近づくとオートスケールのプログラムによって新しいEdgeが作られる ■ 既存の接続は同一のEdgeに行くため、新規の接続は新しいEdgeに割り振られる
  20. 20. Copyright © DeNA Co.,Ltd. All Rights Reserved. 障害発生時やメンテナンス時に どのようにして 安全なサービスアウトを実現させているか 20
  21. 21. Copyright © DeNA Co.,Ltd. All Rights Reserved. 障害発生時 21 ■ Originは Act/Stby の LB によって管理されている ■ Edgeは Active機 Standby機どちらにも接続している ■ 障害発生時は即座にStandby機に切り替わり映像は継続されるようになっている 通常時 障害発生
  22. 22. Copyright © DeNA Co.,Ltd. All Rights Reserved. メンテナンス 22 ■ ハードウェア故障や脆弱性対応などでサーバのメンテナンスはいつも起こりえる ■ 配信可能なOriginサーバーのリストはDBにて管理され アプリケーションはこの値を使って配信するOriginを決定している ⁃ これによりいつでもメンテナンス(サービスアウト)を行えるようにしている ■ 既に配信されているOriginも対象、配信が終わり次第サービスアウトしている
  23. 23. Copyright © DeNA Co.,Ltd. All Rights Reserved. その他安定化のための 特別な配信への対応 23
  24. 24. Copyright © DeNA Co.,Ltd. All Rights Reserved. 特別な配信への対応 24 ■ 予め高画質な配信(VR配信など)が分かっている場合は Edgeを多めに用意している専用shardで配信を行うようにしている ■ 人気番組など分かっている場合も同様、専用のshardで配信を行えるようにしている ■ 後述するオートスケールプログラムと連携する事で大規模な配信にも対応
  25. 25. Copyright © DeNA Co.,Ltd. All Rights Reserved. 安定して視聴するための 分散方法の仕組みについて 25
  26. 26. Copyright © DeNA Co.,Ltd. All Rights Reserved. 視聴側の分散方法 26 ■ Origin同様の仕組みを持っていて、statusとweightによる分散と状態管理をしている ■ Edgeは接続数をベースにトラフィック量などに応じて接続が分散される ■ Edge増減はオートスケールプログラムによって完全自動化されている
  27. 27. Copyright © DeNA Co.,Ltd. All Rights Reserved. 低遅延を実現するためにしていること 27
  28. 28. Copyright © DeNA Co.,Ltd. All Rights Reserved. 低遅延を実現するためにしていること 1 28 ■ ライブ配信において映像の遅延は常に問題となってくる事 ■ 遅延時間が小さいと 視聴者と配信者でのリアルタイムコミュニケーションがしやすくなる ■ なるべく遅延が起きにくい構成にしている ⁃ メッシュ(フルメッシュ)構造にはしていない ⁃ Origin <-> Edge間に余計なものはいない ⁃ 基本的にはCDNが間にいない(直接Edgeに接続)
  29. 29. Copyright © DeNA Co.,Ltd. All Rights Reserved. 低遅延を実現するためにしていること 2 29 ■ 基本的に視聴時はRTMPを使っている ⁃ HLSもチューニングは行っているが、RTMPに比べ遅延が出てしまう ■ 以前はスマートフォンからの閲覧でHLSを利用していたが、RTMPを利用できるようになってい る(HLSへは回線状況に応じて切り替わる)
  30. 30. Copyright © DeNA Co.,Ltd. All Rights Reserved. クラウドサービスの利用について 30
  31. 31. Copyright © DeNA Co.,Ltd. All Rights Reserved. クラウドサービスの利用 31 ■ OriginはオンプレミスのDCで稼働している ■ Edgeはパブリッククラウドサービスを利用している ■ 設計上、複数のクラウドを混在させることが出来るようになっているため シームレス(ダウンタイムなし)にクラウドサービスの切り替え・混在が出来る
  32. 32. Copyright © DeNA Co.,Ltd. All Rights Reserved. クラウドサービスの利用 32 ■ クラウドサービスもActive系とStandby系に分けてクラウドサービスを運用 ⁃ Standby系のクラウドは「起こさない」限り、Edgeインスタンスの数はゼロ ⁃ 過去に一度だけ「起こした」事がある
  33. 33. Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAのオートスケールプログラムについて - 先程まで紹介してきた機能を どうやって自動化しているか - 33
  34. 34. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールするとはどういうことか ■ 配信の少ない時間帯は必要最低限のインスタンスが稼働している ⁃ インスタンスのコストの最小化 ⁃ ライセンスコストの最小化 ⁃ => 通常インスタンスが上がっているだけでコストがかかる ■ 人気の番組が配信された時は捌ききれる台数までスケールアウト ⁃ アラートが鳴ってから構築では遅すぎる ⁃ 一度に大量のインスタンスを作ることができる ⁃ 人気番組が終われば自動でスケールイン ■ オートスケールが出来るということ => 人の手を介さず、必要最低限なコストで運用できるということ => オペレーションミスの低減 => メンテナンスの容易さ => 運用コストの低減 ■ 突発的な配信にも耐えれるということ ⁃ ベイスターズのサヨナラヒットも ⁃ 人気アイドルグループの配信にも ⁃ ...etc 34
  35. 35. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールを実現するために必要なこと 35 ■ Originの性能限界の把握 ⁃ OriginはどれだけのEdgeをぶら下げることが出来るのか ⁃ Edgeの台数が増えると何が起きるのか • Edgeが増えると CPU 負荷が増える • Edgeが増えると origin <-> edge 間でのトラフィックが増える ⁃ トラフィックはNICの性能を超えないか ⁃ どれくらいの配信を受けることができるのか • 低ビットレート用transcorderが動いていて一定数を超えるとCPUが貼りつく • 配信数が増えるとメモリ消費量が増える ■ Edgeの性能限界の把握 ⁃ どれだけの接続を受けることができるのか(どこが先に頭打ちするのか) ⁃ 接続が増えるとトラフィックが増える(NICの性能を超えないか) ⁃ 解像度別の負荷状況の把握 ⁃ プロトコルによっても負荷状況は違う ⁃ クラウドサービスによってはインスタンス毎に性能値がバラバラ => Origin/Edgeともに負荷試験がとても大切
  36. 36. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールを実現するために必要なこと 36 ■ 内製負荷試験ツールの作成(scala) ⁃ さまざまな指標を元に性能値を取得するために作成 ⁃ 複数の解像度・複数のストリームなどを段階的に組み合わせて取得 ⁃ ここから性能値を把握し、オートスケールプログラムと監視の閾値に反映
  37. 37. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールの仕組みと実装 37
  38. 38. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールの仕組みと実装 1 38 ■ 基本は接続数ベースのオートスケール(トラフィック等も見ているが) ■ 各Edgeにどれだけ接続が来ているか常に収集 ■ 接続数と現在稼働中のEdgeの台数から、本来必要なインスタンス数を計算、 過不足があればインスタンスを N台 追加削除する ⁃ また、常にN+1台多めにスケールアウトするようにしている ⁃ スケールアウトする場合は、殆どの場合で接続が伸びる傾向にあるため、 予め多く構築している
  39. 39. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールの仕組みと実装 2 39 ■ スケジューリングされたオートスケーリングにも対応 ■ Y月X日Z時 に特別配信があるから、その時間帯だけ暖気ができる ■ ピークタイム時間帯には通常よりも台数を多くしておく等も可能 ■ スケジューリングされていても、接続数などに応じて自動スケールアウトもする
  40. 40. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールの仕組みと実装 3 40 ■ 最低限必要な台数以下には減らさない ■ スケールアウトによって追加されたインスタンスはサービスアウト後一定時間が経過するまで インスタンスの削除は行わない(cooldownタイムがある) ⁃ フラッピング防止の為 ⁃ 増やすときは上限まで増やすが、減らすことは頻繁に行わない
  41. 41. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールの仕組みと実装 4 41 ■ インスタンスは状態遷移が行われるようになっており サービスイン・サービスアウト、インスタンスの台数算出は状態に応じて行われる
  42. 42. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールの仕組みと実装 5 この他にも沢山の仕組みと実装があるが割愛 ■ originとedgeはそれぞれ別々に駆動するため、全体を巻き込んで死亡しないよう な設計になっている ■ 構築から性能に応じたスケーリング、自動監視、全てが自動化されている ■ 高解像度・高ビットレート(例えばVR)の配信がされた場合でもオートスケールが 正しく行えるよう、オートスケールの設定はshard単位で変更できるようになって いる ■ 状態管理はある一定のフォーマットに従って管理されるため、どのようなDCに edgeがあっても、自動で監視が入り、自動でサービスに組み込まれるようになっ ている ■ 監視が細かく入る、監視項目や監視プログラム数も多いため省略 42
  43. 43. Copyright © DeNA Co.,Ltd. All Rights Reserved. オートスケールを実現するために様々な指標を取っている ■ CPU => 急にCPUが跳ねる事がないか、常に跳ね続けていないか ■ MEMORY => 85% 以上メモリを使用すると増設のアラートが飛ぶ ■ TRAFFIC => outbound xxxMbps まで出ているとアラートが飛ぶ(偏りが起きていないか) ■ RTMP CONNECTION数 => port 1935で発行したtcp establish数、同一IPから大量発行が行われていないか ■ HLS の場合は発行したSESSION数 ■ Origin 配信数 ■ 全体の配信数 ■ DC毎のTRAFFIC値 => DCで出せる限界が決まっている場合はちゃんと監視も兼ねて取る ■ インスタンス数の上限値 => 上限にかかりそうな場合、zone切り替えなども ■ ...etc 43
  44. 44. Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAの配信基盤オートスケールの歴史 ■ 〜2014年 オートスケールのない時代 ⁃ 手動オートスケール ⁃ 数十台のインスタンスを1日で作りその日のうちに(手動で)削除するなどしていた ■ 〜2014年8月(たしか夏頃) 初代オートスケールの誕生 ⁃ 荒削りながらも自動化される ⁃ 足りない部分は運用でカバー ■ 〜2015年3月 2代目オートスケールの誕生 ⁃ 初代に改良を加え、ほぼ現在の実装、これがベース、長期間安定 ■ 〜2015年6月 3代目オートスケールの誕生 ⁃ 2代目のリソース面の問題を解消するため、新たにスクラッチした実装 ⁃ 2代目とは別環境で稼働 ■ 〜2016年3月 2.5代目3.5代目の誕生 ⁃ 本格的なSSL時代に向け監視の強化、パフォーマンスの向上 ■ 〜2016年7月 VR対応版 ⁃ VR配信など高画質配信に向けた本格的な対応 ■ 2016年8月〜 現在動いているモノ ⁃ 先に紹介したモノが一式揃っている実装 ■ 2016年10月〜 4代目オートスケール誕生 ⁃ 2代目と3代目はどちらも現役で動いているので、どちらでも移行しやすい設計に ⁃ 自動化の範囲を更に広げている 44
  45. 45. Copyright © DeNA Co.,Ltd. All Rights Reserved. SHOWROOMでの実績など 45
  46. 46. Copyright © DeNA Co.,Ltd. All Rights Reserved. SHOWROOMでの実績 46 ■ SHOWROOM 3周年記念配信 ■ 多数の芸能人の方々に主演いただいた
  47. 47. Copyright © DeNA Co.,Ltd. All Rights Reserved. SHOWROOMでの実績 47 ■ AKB48 45th シングル 選抜総選挙 ■ 48Gのメンバーによる多数の配信が行われた
  48. 48. Copyright © DeNA Co.,Ltd. All Rights Reserved. SHOWROOMでの実績 48 ■ 横浜DeNAベイスターズ 主催試合 生中継 ■ 試合以外にも特別番組などの配信も
  49. 49. Copyright © DeNA Co.,Ltd. All Rights Reserved. SHOWROOMのほかにも色々 49 紹介しきれていない動画配信サービスも 続々登場中。
  50. 50. Copyright © DeNA Co.,Ltd. All Rights Reserved. ほかにも色々 50 今後も より安定して、 よりエキサイティングな ライブ配信インフラを 提供していきます。
  51. 51. Copyright © DeNA Co.,Ltd. All Rights Reserved. 以上です。 51

×