Submit Search
Upload
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
•
0 likes
•
2,946 views
gree_tech
Follow
GREE Tech Conference 2020 で発表された資料です。 https://techcon.gree.jp/2020/session/Session-11
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 36
Download now
Download to read offline
Recommended
Cycloudのストレージ紹介と歴史
Cycloudのストレージ紹介と歴史
Hiroki Chinen
CRDT in 15 minutes
CRDT in 15 minutes
Shingo Omura
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
MicroAd, Inc.(Engineer)
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
Recommended
Cycloudのストレージ紹介と歴史
Cycloudのストレージ紹介と歴史
Hiroki Chinen
CRDT in 15 minutes
CRDT in 15 minutes
Shingo Omura
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
MicroAd, Inc.(Engineer)
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
gree_tech
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
Yuto Komai
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
MicroAd, Inc.(Engineer)
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
KiyotomoHiroyasu
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
de:code 2017
並行実行制御の最適化手法
並行実行制御の最適化手法
Sho Nakazono
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
Toru Makabe
CSI Driverを開発し自社プライベートクラウドにより適した安全なKubernetes Secrets管理を実現した話
CSI Driverを開発し自社プライベートクラウドにより適した安全なKubernetes Secrets管理を実現した話
Katsuya Yamaguchi
Edge Computing と k8s でなんか話すよ
Edge Computing と k8s でなんか話すよ
VirtualTech Japan Inc.
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNA
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
KafkaとPulsar
KafkaとPulsar
Yahoo!デベロッパーネットワーク
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
Amazon Web Services Japan
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
Amazon Web Services Japan
More Related Content
What's hot
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
gree_tech
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
Yuto Komai
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
MicroAd, Inc.(Engineer)
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
KiyotomoHiroyasu
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
de:code 2017
並行実行制御の最適化手法
並行実行制御の最適化手法
Sho Nakazono
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
Toru Makabe
CSI Driverを開発し自社プライベートクラウドにより適した安全なKubernetes Secrets管理を実現した話
CSI Driverを開発し自社プライベートクラウドにより適した安全なKubernetes Secrets管理を実現した話
Katsuya Yamaguchi
Edge Computing と k8s でなんか話すよ
Edge Computing と k8s でなんか話すよ
VirtualTech Japan Inc.
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNA
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
KafkaとPulsar
KafkaとPulsar
Yahoo!デベロッパーネットワーク
What's hot
(20)
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
並行実行制御の最適化手法
並行実行制御の最適化手法
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
トランザクションの設計と進化
トランザクションの設計と進化
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
CSI Driverを開発し自社プライベートクラウドにより適した安全なKubernetes Secrets管理を実現した話
CSI Driverを開発し自社プライベートクラウドにより適した安全なKubernetes Secrets管理を実現した話
Edge Computing と k8s でなんか話すよ
Edge Computing と k8s でなんか話すよ
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
TLS, HTTP/2演習
TLS, HTTP/2演習
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
KafkaとPulsar
KafkaとPulsar
Similar to REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
Amazon Web Services Japan
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
Amazon Web Services Japan
AWSの様々なアーキテクチャ
AWSの様々なアーキテクチャ
Kameda Harunobu
大手ゲーム会社のプラットフォームにハイブリッドクラウドを採用した理由とは
大手ゲーム会社のプラットフォームにハイブリッドクラウドを採用した理由とは
Kentaro Kamata
CData API Server ハンズオン
CData API Server ハンズオン
CData Software Japan
Realm platform2019
Realm platform2019
昌桓 李
20130313 OSCA Hadoopセミナー
20130313 OSCA Hadoopセミナー
Ichiro Fukuda
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
Amazon Web Services Japan
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Futomi Hatano
CData Sync Hand-on 資料
CData Sync Hand-on 資料
CData Software Japan
Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers)
Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers)
CData Software Japan
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
Amazon Web Services Japan
20201125 EC Solution Seminar Live Commerce
20201125 EC Solution Seminar Live Commerce
Amazon Web Services Japan
AWSを用いた番組連動Webコンテンツ処理基盤の構築
AWSを用いた番組連動Webコンテンツ処理基盤の構築
Eiji KOMINAMI
AWS All Stars ~Lightning Talks x 13~
AWS All Stars ~Lightning Talks x 13~
Amazon Web Services Japan
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
Daichi Isami
20180319 ccon sync kintone
20180319 ccon sync kintone
CData Software Japan
APIに関するセッション資料
APIに関するセッション資料
CData Software Japan
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
Amazon Web Services Japan
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
Similar to REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
(20)
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
20180612 AWS Black Belt Online Seminar AWS で実現するライブ動画配信とリアルタイムチャットのアーキテクチャパターン
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
AWSの様々なアーキテクチャ
AWSの様々なアーキテクチャ
大手ゲーム会社のプラットフォームにハイブリッドクラウドを採用した理由とは
大手ゲーム会社のプラットフォームにハイブリッドクラウドを採用した理由とは
CData API Server ハンズオン
CData API Server ハンズオン
Realm platform2019
Realm platform2019
20130313 OSCA Hadoopセミナー
20130313 OSCA Hadoopセミナー
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
CData Sync Hand-on 資料
CData Sync Hand-on 資料
Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers)
Wagby で100+ のクラウドデータに連携するアプリを開発(CData JDBC Drivers)
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
20201125 EC Solution Seminar Live Commerce
20201125 EC Solution Seminar Live Commerce
AWSを用いた番組連動Webコンテンツ処理基盤の構築
AWSを用いた番組連動Webコンテンツ処理基盤の構築
AWS All Stars ~Lightning Talks x 13~
AWS All Stars ~Lightning Talks x 13~
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
20180319 ccon sync kintone
20180319 ccon sync kintone
APIに関するセッション資料
APIに関するセッション資料
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
More from gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
海外展開と負荷試験
海外展開と負荷試験
gree_tech
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
More from gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
海外展開と負荷試験
海外展開と負荷試験
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
1.
REALITY低遅延モード配信を支える リアルタイムサーバと データパイプライン 株式会社 Wright Flyer
Live Entertainment 増住 啓吾
2.
2 自己紹介 増住 啓吾 株式会社Wright Flyer
Live Entertainment - 2017年にGlossom株式会社に入社 - iOS/Android向けアプリの開発やデータ分析基盤 の構築、広告ログ集計システムの開発・運用などを 担当 - グループ内公募制度を利用し、2019年に株式会社 Wright Flyer Live Entertainmentにジョイン - Kubernates・Apache Beamなどを用いた REALITYプラットフォームのライブ配信基盤の開発 を担当
3.
3 REALITYとは?
4.
4 2020/01/08 REALITY低遅延モードリリース
5.
5 ラグなし、ギガ安、高画質
6.
6 低遅延モード配信のフォーマット • REALITYの現行のメイン配信方式 • 配信・視聴ユーザーがそれぞれWebSocketサーバへ接続 •
WebSocketサーバを通してデータを送受信する • 配信データの中身はモーション・音声などのデータをProtobuf形式 でシリアライズしたもの
7.
7 解決すべき問題点 • 配信データのボリュームが大きい • チャット等に比べデータ量が非常に多い •
128〜256kbs程度 • パトロール・監査のため、配信データを参照可能な方式で保存して おく必要がある • 配信音声やラベル付き配信データなどのフォーマット
8.
8 ライブ配信・視聴サーバ
9.
9 全体像 Kubernetes Android iOS Ingress HTTPS Streamer Kubernetes Engine Redis (StatefulSet) Kubernetes
Engine Listener Kubernetes Engine Cloud Pub/Sub Archiver Cloud Dataflow Archive Cloud Storage Stats BigQuery
10.
10 解決すべき問題点 • 配信データのボリュームが大きい • チャット等に比べデータ量が非常に多い •
128〜256kbs程度 • パトロール・監査のため、配信データを参照可能な方式で保存して おく必要がある • 配信音声やラベル付き配信データなどのフォーマット
11.
11 ライブ配信 / 視聴サーバ
- 課題 ● WebSocketサーバ ( Node.js ) を通して配信データの送 受信を行う ● WebSocketサーバの冗長化はRedis Pub/Subを用いる ● ただし、一般的なWebSocket + Redis Pub/Subのパ ターンでは配信・視聴の負荷に耐えきれなくなる
12.
12 WebSocketサーバの負荷分散方式 (1)
13.
13 課題 Redis Pub/Subがボトルネックになる ○ スケールアウトができない ○
スケールアップができない ○ クラスタ化しても無意味 スケーラビリティに限界がある
14.
14 WebSocketサーバの負荷分散方式 (2)
15.
15 課題 1.エンドポイントレベルのシャー ディング 2.WebSocketサーバ * N
+ Redis * 1 の単位でスケール 運用コストが高い
16.
16 REALITYの構成
17.
17 2.配信側サーバは全ての Redisインスタ ンスに対して分散してデータを Publishす る
3.視聴側サーバは全ての Redisインスタ ンスに対し必要なRedis Pub/Sub ChannelをSubscribeし、来たデータを視 聴者へbroadcast Redisをスケールアウト可能 1.Redis (Pub/Sub専用) をスタンドアロ ンでN基立ち上げる
18.
18 1.Redisはk8sのStatefulSet + Headless Serviceとして立ち上げる 2.各WebSocketサーバはk8sのサービ スディスカバリでRedisの各hostを認識・ 接続 運用コストが低い 3.各WebSocketサーバやRedisは単一 のk8sワークロードとなるため、
k8sのス ケーリングの仕組みをそのまま活用でき る
19.
19 ライブ配信 / 視聴サーバ
- 構成 ● k8sのサービスディスカバリを利用したRedisのスケーリング ● Redisはk8sのStatefulSet + Headless Serviceを利用 => kube-proxyを通らないのでパフォーマンスも落ちない ● Redisのスケールアウトが可能なので、構成全体のスケーラ ビリティを担保できる ● k8sのオートスケーリングの仕組みに乗ったスケーリングが 可能なので運用工数も低い
20.
20 ライブ配信 / 視聴サーバ
- まとめ • 当該方式の配信・視聴サーバのリリース後7ヶ月経過 • 同時配信数・視聴者数ともに右肩上がりだが、障害なしで安定して動 作 • 基本的にはk8sのオートスケーリングに任せられるので、運用コストも 非常に低い • Redis Pub/Subによる遅延は、アプリ - 配信・視聴サーバ間の通信 に比べて無視できる程度で安定
21.
21 ライブ配信 / 視聴サーバ
- その他 • シンプルな構成なので横展開が楽 • 事例1: コラボ配信サーバ • 「アバタービデオチャット」的な機能を提供するコンポーネント • ボイスチャット用の音声のミキシングも行う • 事例2: ゲーム配信サーバ • ゲームサーバ + ゲーム配信の視聴サーバの機能を提供する
22.
22 解決すべき問題点 (再掲) • 配信データのボリュームが大きい •
チャット等に比べデータ量が非常に多い • 128〜256kbs程度 • パトロール・監査のため、配信データを参照可能な方式で保 存しておく必要がある • 配信音声やラベル付き配信データなどのフォーマット
23.
23 ライブ配信データパイプライン
24.
24 ライブ配信データパイプライン - 構成 Cloud Pub/Sub Archiver Cloud
Dataflow Archive Cloud Storage Stats BigQuery Kubernetes Streamer Kubernetes Engine Ingress HTTPS Redis (StatefulSet) Kubernetes Engine Listener Kubernetes Engine
25.
25 ライブ配信データパイプライン - 構成 Cloud Pub/Sub Archiver Cloud
Dataflow Archive Cloud Storage Stats BigQuery Kubernetes Streamer Kubernetes Engine Ingress HTTPS Redis (StatefulSet) Kubernetes Engine Listener Kubernetes Engine 1.配信データをCloud Pub/Sub TopicへPublish 2.Cloud Dataflow Jobが Cloud Pub/Sub Subscription 経由で配信データを読み出す 3.配信データを Streaming処理で集計・ 加工して保存
26.
26 ライブ配信データパイプライン - 概要 ●
配信サーバはCloud Pub/Sub Topicへラベル付き配信データ をPublish ● Cloud DataFlow Job ( Apache Beam Java ) がCloud Pub/Sub Subscription経由でデータを読み出す ● 読み出した配信データをApache Beam Pipelineで処理 ● ラベル付き配信データ、監査用音声アーカイブファイル、分 析用統計情報などを生成 ● 生成したデータをCloud Storageへ書き込む
27.
27 ライブ配信データパイプライン - インフラ ●
Cloud DataFlow Streaming Engineを使用 ● Streaming処理とオートスケーリングを両立 ● Worker Machineの分だけ自動でスケールしていく ● キャパシティプランニングもほぼ不要 ● deployもJavaのビルドだけで完結するので楽
28.
28 Apache Beam??
29.
29 ライブ配信データパイプライン - Apache
Beam ● バッチ・ストリーミング処理を統合して実行できる分散処理 フレームワーク ● REALITYではApache Beam Javaを使用 ● 基本的にはJavaアプリケーションなのでできることの範囲が 広い ● 当然JNIも使えるのでネイティブコードも利用可能 ● その上でさらに分散処理のメリットを享受できる ● Apache Sparkなどと比較すると、Cloud DataFlowとの連携 のメリットが非常に大きい
30.
30 ライブ配信データパイプライン - 処理グラフ
31.
31 ライブ配信データパイプライン - データ保存 ●
Streaming Pipelineにラベル付き配信デー タが流れてくる ● 取り出したデータを10秒単位でWindow化 ● データをPOJOに変換 ● データとそのタイムスタンプから、1時間 ごとのディレクトリに分割した一意なファ イルパスを生成 ● 生成したファイルパスへデータをAvro フォーマットで書き出す
32.
32 ライブ配信データパイプライン - 音声アーカイブ ●
Streaming Pipelineにラベル付き配信 データが流れてくる ● データを配信ごとにグルーピング し、時系列に並びかえ音声データ (Opus圧縮) を抽出 ● その音声データをOggコンテナに格 納する ● 生成したOggコンテナをバイナリ ファイルとして配信IDごとの時系列 順にCloud Storageに書き出す
33.
33 ライブ配信データパイプライン - まとめ •
同時配信数の増加に伴い比例して処理データ量も増えていったが、全て Cloud Dataflow側で吸収してくれるので特に追加のオペレーションの必要 はなかった • データロストの発生もなし • サーバ費用の面では当然それなりのコストは発生するものの、想定通りにお さまる
34.
34 結果
35.
35 解決された問題点 • 配信データのボリュームが大きい • チャット等に比べデータ量が非常に多い •
128〜256kbs程度 • パトロール・監査のため、配信データを参照可能な方式で保存して おく必要がある • 配信音声やラベル付き配信データなどのフォーマット
36.
36 おわりに
Download now