Upgrade to Pro — share decks privately, control downloads, hide ads and more …

動画サービスを支える配信基盤のコアテクノロジー

 動画サービスを支える配信基盤のコアテクノロジー

DMM meetup #15 コンテンツ配信を支える技術
https://dmm.connpass.com/event/160047/

Masahito Yano

January 27, 2020
Tweet

More Decks by Masahito Yano

Other Decks in Technology

Transcript

  1. © DMM.com 9 9 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー

    DB / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム
  2. © DMM.com 10 10 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー

    DB / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム 動画を「再生」するには 結構苦労がある
  3. © DMM.com 11 11 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー

    DB / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム 商品情報が 必要
  4. © DMM.com 12 12 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー

    DB / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム エンコードが 必要
  5. © DMM.com 13 13 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー

    DB / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム コンテンツの保護も 当然必要
  6. © DMM.com 14 14 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー

    DB / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム この辺りのソフトウェアレイヤー を弊チームで開発
  7. © DMM.com 15 15 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー

    DB / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム この辺りのソフトウェアレイヤー を弊チームで開発 動画の配信 『支えてます』
  8. © DMM.com P E R S O N A L

    D A T A YANO MASAHITO 矢 野 完 人 2016年新卒入社 動画配信基盤開発 プロダクトオーナー ID: yanoshi 所属 合同会社DMM.com EC&デジタルコンテンツ本部 動画配信事業部 配信基盤スクラムチーム 趣味 美味しいものmgmg 日本酒、ビールgkgk かわいい絵mgmg かわいい曲mgmg
  9. © DMM.com P E R S O N A L

    D A T A YANO MASAHITO 矢 野 完 人 2016年新卒入社 動画配信基盤開発 プロダクトオーナー ID: yanoshi 所属 合同会社DMM.com EC&デジタルコンテンツ本部 動画配信事業部 配信基盤スクラムチーム 趣味 美味しいものmgmg 日本酒、ビールgkgk かわいい絵mgmg かわいい曲mgmg P E R S O N A L D A T A
  10. © DMM.com 35 規模感 負荷もいっぱい! 103.1Gbps 121.65Gbps 151.3Gbps 197.35Gbps 259.18Gbps

    280Gbps 340Gbps 386Gbps 0 50 100 150 200 250 300 350 400 450 2013 2014 2015 2016 2017 2018 2019 2020 対外トラフィック 2013 2014 2015 2016 2017 2018 2019 2020
  11. © DMM.com 36 規模感 負荷もいっぱい! 103.1Gbps 121.65Gbps 151.3Gbps 197.35Gbps 259.18Gbps

    280Gbps 340Gbps 386Gbps 0 50 100 150 200 250 300 350 400 450 2013 2014 2015 2016 2017 2018 2019 2020 対外トラフィック 2013 2014 2015 2016 2017 2018 2019 2020 直近に更新しました 386Gbps (@1/9未明)
  12. © DMM.com 44 オブジェクト ストレージ 配信 ミドルウェア キャッシュ サーバー MP4

    Wowza OpenResty 配信アーキテクチャ概略図 ユーザー 弊社の動的キャッシュアーキテクチャ
  13. © DMM.com 45 オブジェクト ストレージ 配信 ミドルウェア キャッシュ サーバー MP4

    Wowza OpenResty コンテンツAの 視聴状況 ユーザー 視聴者数: 小 弊社の動的キャッシュアーキテクチャ
  14. © DMM.com 46 オブジェクト ストレージ 配信 ミドルウェア キャッシュ サーバー MP4

    Wowza OpenResty コンテンツAの 視聴状況 ユーザー 視聴者数: 中 弊社の動的キャッシュアーキテクチャ
  15. © DMM.com 47 オブジェクト ストレージ 配信 ミドルウェア MP4 Wowza コンテンツAの

    視聴状況 ユーザー キャッシュ サーバー OpenResty 弊社の動的キャッシュアーキテクチャ 視聴者数: 大
  16. © DMM.com 48 オブジェクト ストレージ 配信 ミドルウェア MP4 Wowza コンテンツAの

    視聴状況 ユーザー キャッシュ サーバー OpenResty 賢く動的にトラフィック制御 (VODST v.4) 弊社の動的キャッシュアーキテクチャ CDN 視聴者数: 猛烈
  17. © DMM.com VR テレビ ゲーム スマホ PC 50 Wowza OpenResty

    負荷分散後の 配信URL Storage Proxy Cache OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL OpenRestyのShared Memoryにアクセス情報がたまる ContentA: 100reqs/sec ContentB: 1000reqs/sec ContentC: 0reqs/sec Node1 ContentA: 200reqs/sec ContentB: 1500reqs/sec ContentC: 1reqs/sec Node2 … Node3
  18. © DMM.com 51 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL 配信サーバーがManagerノードへデータを転送 Node1 ContentA: 200reqs/sec ContentB: 1500reqs/sec ContentC: 1reqs/sec Node2 … Node3 ContentA: 500reqs/sec ContentB: 10000reqs/sec ContentC: 2reqs/sec VR テレビ ゲーム スマホ PC ContentA: 100reqs/sec ContentB: 1000reqs/sec ContentC: 0reqs/sec ⚡Consul Event ⚡
  19. © DMM.com 52 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL 定期に 収集 VR テレビ ゲーム スマホ PC
  20. © DMM.com 53 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL 負荷分散情報を各ノードが自発的に回収! ContentA: 500reqs/sec ContentB: 10000reqs/sec ContentC: 2reqs/sec ContentA: 普通 ContentB: ヤバい ContentC: 無風 VR テレビ ゲーム スマホ PC ⚡Consul Event ⚡
  21. © DMM.com 54 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL 定期に 更新 ContentA: 普通 ContentB: ヤバい ContentC: 無風 VR テレビ ゲーム スマホ PC
  22. © DMM.com 55 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL 適宜 リダイレクト 持っているデータを元に 適宜リダイレクト ContentA: 普通 ContentB: ヤバい ContentC: 無風 VR テレビ ゲーム スマホ PC
  23. © DMM.com 56 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL いつも 快適 VR テレビ ゲーム スマホ PC
  24. © DMM.com 57 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL VR テレビ ゲーム スマホ PC 結果整合性が担保された 安全な配信基盤!
  25. © DMM.com 58 Wowza OpenResty 負荷分散後の 配信URL Storage Proxy Cache

    OpenResty Origin Device Redirector st-api VODST Manager CDN 配信URL VR テレビ ゲーム スマホ PC 話してたら時間がなくなる ので割愛
  26. © DMM.com 68 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264:

    Over4K 60fps (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps
  27. © DMM.com 69 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264:

    Over4K 60fps (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps ということで…
  28. © DMM.com 70 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264:

    Over4K 60fps (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します!
  29. © DMM.com 71 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264:

    Over4K 60fps (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します! いっぱいエンコード (ry
  30. © DMM.com 72 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264:

    Over4K 60fps (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します! VRに至っては普通に エンコードすると 0.0x~0.x fps程度
  31. © DMM.com 73 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264:

    Over4K 60fps (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します! エンコード時間 2週間/コンテンツとか あり得る
  32. © DMM.com 98 DRMとは: コンテンツ保護の仕組み DRMの仕組み OS or Chrome 物理層

    プレイヤー 動画 HWデコーダ SWデコーダ HDCP 見れないぞ! 盗聴者
  33. © DMM.com 101 DRMとは: コンテンツ保護の仕組み DRMのコスト FairPlay: 基本使用料無料 Widevine: 年2桁万円

    (CWIP保有者2名必要) PlayReady: 年2桁万円 なおかつ再生回数毎の従量課金…
  34. © DMM.com 102 DRMとは: コンテンツ保護の仕組み DRMのコスト FairPlay: 基本使用料無料 Widevine: 年2桁万円

    (CWIP保有者2名必要) PlayReady: 年2桁万円 なおかつ再生回数毎の従量課金… 高い
  35. © DMM.com 103 DRMとは: コンテンツ保護の仕組み DRMのコスト FairPlay: 基本使用料無料 Widevine: 年2桁万円

    (CWIP保有者2名必要) PlayReady: 年2桁万円 なおかつ再生回数毎の従量課金… 節約の術
  36. © DMM.com 105 DRMとは: コンテンツ保護の仕組み [デファクトスタンダード] Widevine (Google) FairPlay (Apple)

    PlayReady(Microsoft) Primetime DRM (Adobe) OS/ブラウザを持っている会社ばかり
  37. © DMM.com 106 DRMとは: コンテンツ保護の仕組み [デファクトスタンダード] Widevine (Google) FairPlay (Apple)

    PlayReady(Microsoft) Primetime DRM (Adobe) OS/ブラウザを持っている会社ばかり 自プラットフォームへの 配信なら従量課金無し
  38. © DMM.com 各 サ ー ビ ス の 認 証

    レ イ ヤ ー 113 mlic プ レ イ ヤ ー
  39. © DMM.com 各 サ ー ビ ス の 認 証

    レ イ ヤ ー 114 mlic プ レ イ ヤ ー CMAF準拠 マルチDRMライセンス サーバー