Cookpad Tech Kitchen #23 Live・動画配信の開発最新事情に行ってきた #cookpad_tech_kitchen

概要

金沢の同僚から勉強会の存在を教えてもらったので、 19卒のメンバーと一緒に行ってきました。

発表

Android cookpadLiveの開発改善

内容

Androidについての話がメインなので、あんまりついていけず…。
とりあえず、メモを箇条書きで。

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配信への影響の切り離し
  • 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にデータを入れて、オフライン再生を頑張る
  • エンジニアが端末状態をログから追うのはしんどい
    • AWS IOTで解決する
    • 端末から10分に一回状態を送る
    • 端末→AWS IOT→ :KinesisDataFirehose: → Lambda

QA

Q.
IoTで、端末ごとの認証などはやっていますか?
A.
アプリをキッキングするとき、端末に証明書を作り、それを使う

所感

CookPad Liveは子会社で人数は少ないということですが、CookPadという大企業の恩恵は受けていると思いました。

というのが全社的な方針で決まっているらしいです。

またSQSだったか忘れてしまいましたが、特定のAWSサービスを使い倒してフィードバックしているようでした。
※こうなりたい…

Design docの保守について伺ったところ、「ドキュメントは腐るので保守していない」とのことでした。
メンバーが少ないので、あまり過去を振り返る必要がないのも大きいとのこと。

Design docはその時の設計レビューで使うが主なようです。

懇親会でももさんに貴重なお話が聞けてよかったです。