Cookpad Tech Kitchen #23 Live・動画配信の開発最新事情に行ってきた #cookpad_tech_kitchen
概要
金沢の同僚から勉強会の存在を教えてもらったので、 19卒のメンバーと一緒に行ってきました。
発表
内容
Androidについての話がメインなので、あんまりついていけず…。
とりあえず、メモを箇条書きで。
- VIPER→MVVMにアーキテクチャ変更
- MVVMはデファクトスタンダードなので、新しい人は早いやすく、知見も活かしやすい
- コメントを都度描画すると、低スペ端末でフリーズしていた
- バッファリングして描画することで、負担軽減
- Hyperion使っている
- Flipperでデバッグ
- ログ、Preferenceがやりやすい
- プラグインも自分で作れる
QA
Q. VIPERからMVVMへの変更にはどれくらいの期間かかりましたか? VIPERはCleanArchtecture + MVPなアーキテクチャだったと思いますが、MVVMに変えた時にどのくらい修正量あったのか気になります。 A. 1ヶ月くらいコツコツやった。 UIが大幅に変わるタイミングでガツッと変えた。 修正量は20くらい。 テストはしっかり目でやった。 Q. cookpad LIVE: なぜ初めにVIPERを選択されていたのですか? A. iOSストアを視野にVIPERにしていた 詳細不明 iOSとAndroidで設計を統一しようとしたため Q. cookpad LIVE: multi moduleにする際にfeaturesはどのような単位で切られているのですか? A. 機能がまとまった単位で作成する 1画面だと分けすぎ
アーカイブ配信でもライブ感を味わいたい
内容
メインイベントの1つ。
LCのリプレイスでも、コメントを保存する仕組みが必要になるため。
- アーカイブコメントとLive配信への影響の切り離し
- コメントの保存はECSのサイドカーでFluentdを動かす
- Fluentd → S3 → SQS → Lambda → DynamoDB
- オーソドックスなイベントソーシング?
- Fluentd を選んだわけ
- ECS は負荷によってオートスケール
- Fluentd はサイドカーにいるので、一緒に増える
- オートスケールで負荷が増える可能性ありだけど、そういうやり方でカバーか
- レビューはGoogleのDesign Doc?で行う
- フォーマットを統一することで、レビュー観点を抑える
QA
Q. Design docで運用してみての感想を聞きたいです A. 開発をすすめるときに、レビューを素早くできる。 ※思想が素早くできるため 開発後の最終型を、みんなでイメージしやすい Q. アーカイブコメントと映像の時間同期について詳しく! A. HLSの送信時間をベースに、クライアントから送信してもらっている? ライブ配信で中断した時間を、アーカイブで削除することがある。 その際は、地道な制御でカバー
cookpadLiveのLive配信基盤
内容
動画配信基盤を AWSのマネージドサービスですべて作る
- media services!
- MediaLive→MediaStore→CloudFront→Media Talior
- アーカイブ配信は MediaConvert を噛ます
- S3にHLSのファイル?を置いて、それをコンバーターで変換ってことか
- マネージドサービスを使うとリソースは無限にみえるけど、有限で不要なコストを出しちゃう
- 予約?とかでリソースプーリング
QA
Q. CMAF対応の展望、遅延 A. 10秒ごと?にファイルを分けている CMAF対応 料理の代替え等が話が出るので、遅延を早くしたい →CMAFもAWSのマネージドサービスでできる
ここから storeLive におけるスーパーでアプリを動かし続けるためにやったこと
内容
スーパーで大型サイネージ(Android)を動かす
- 単純に動画は流すだけじゃなく、途中で動画を切り替え、元の再生位置に戻す必要がある
- Room + LiveDataで実現。
- Android のDBにデータを入れて、オフライン再生を頑張る
- エンジニアが端末状態をログから追うのはしんどい
QA
Q. IoTで、端末ごとの認証などはやっていますか? A. アプリをキッキングするとき、端末に証明書を作り、それを使う
所感
CookPad Liveは子会社で人数は少ないということですが、CookPadという大企業の恩恵は受けていると思いました。
というのが全社的な方針で決まっているらしいです。
またSQSだったか忘れてしまいましたが、特定のAWSサービスを使い倒してフィードバックしているようでした。
※こうなりたい…
Design docの保守について伺ったところ、「ドキュメントは腐るので保守していない」とのことでした。
メンバーが少ないので、あまり過去を振り返る必要がないのも大きいとのこと。
Design docはその時の設計レビューで使うが主なようです。
懇親会でももさんに貴重なお話が聞けてよかったです。