TECH STAND #4 常時接続SNS~ライブ配信基盤を支える技術~の発表資料です。
パラレルは iOS と Android のアプリで、若い世代を中心に利用されています。
リリースして 1 年と少しで、100 万 DL を達成することができました。
ユーザーの 1 日の平均通話時間が 3 時間とすごく長いのが一つ特徴としてあります。ただ、友達と話しているとはいえ、3 時間もひたすら会話だけをずっとしているというわけでは当然ありません。
パラレルのユーザーは、友達とグループ通話をしながら、パラレル内でミニアプリとして提供している YouTube の同時視聴をしたり、ミニゲームとして提供している大富豪やお絵かきしりとりを一緒に遊んで、一日平均 3 時間以上パラレルで過ごしています。
次に自己紹介ですが、ハンドルネーム yoheimuta で GitHub や Twitter で活動してます。
左はこれまでのキャリアで、業界は様々ですが一貫してスマホネイティブアプリ領域をメインでやってきたので、クライアントからサーバー・SRE まで幅広くやることが多いです。基本的にはサーバーエンジニアに主軸を置いてます。
右はパラレルで ruby のバグを踏んだので、それを特定して本家 ruby にバグレポートを提出する過程をまとめた記事です。rubyweekly という毎週発行されている記事のトップに取り上げられたこともあって多くの人に見てもらえました。ニッチなテーマだと思ったので英語で Medium に書いたのが良かった気がします。おかげさまで、知らない海外の人から直接メールで Mongo DB 使った puma server が最近クラッシュするんだけど何でかわかる?という相談が来ていて少し困ってます。ユーザー数が増えてきたので、こんなことも最近やってますという紹介でした。
ということで、ここから本日のテーマに移っていこうと思います。
まず、パラレルのグループ通話基盤を紹介します。パラレルのグループ通話基盤は大きく、メディアサーバーと API サーバーに分けられるのでそれぞれ説明していきます。
次に、その中で、パラレルが大事にしている要件があるのでそれを満たすアーキテクチャを説明していきたいと思ってます。聴き終わった後に、ここに書いてある「一貫した通話状態」が何を指していて、何で大事にしているのかがわかるように発表していきたいと思います。