DMM.comの、一番深くておもしろいトコロ。

よんでますよ、まさきさん #9

よんでますよ、まさきさん #9

  • このエントリーをはてなブックマークに追加

f:id:dmminside:20210215171455j:plain

f:id:dmminside:20210209161148p:plain

矢野「2021年になりましたね。昨年もいろいろなことがありましたー。」
釘宮「どんなことがあったんですか? 興味あります!」
質問者の写真矢野

おぉー。じゃあ動画配信の歴史ごと振り返っちゃいましょうか。
動画配信の歴史を知っていて、今のモダンの開発にもかなり貢献してもらっているまさきさんよびましょう!

質問者の写真矢野

まさきさん、ちょっと振り返りをやりたいのでこのZoomに入ってください!

振り返りですか?(1on1のことかな?)
はいー。

回答者の写真まさき

f:id:dmminside:20210209120715p:plain

え?ここは一体!?
質問者の写真矢野

ということで…。よんでますよ、まさきさん!
いろいろと昔話も含めて振り返りながら話しましょ!

まじすか?

回答者の写真まさき

f:id:dmminside:20210209161307p:plain

まじです! わいわいー
質問者の写真矢野

まず自己紹介しますね。
2016年に新卒入社してCTO室で1年くらいR&Dをしていました。
会社としての大きな組織変更で事業部制になり、そのタイミング(2017年の5、6月くらい)で当時の動画配信事業部の上司に誘われ、動画配信事業部の配信基盤チームにやって来ました。そこにまさきさんがいたわけです。

そうですね、それが矢野さんとの出会いでした。

回答者の写真まさき
質問者の写真矢野

配信基盤チームにはエンジニアとして入りました。
ちょうど会社としてもスクラム開発をやっていくぞーって感じで。チーム組成後、いろいろと気を回して立ち回っていたら、わりとすぐにSM(スクラムマスター)に就任することになり。そしてその1年後くらいにチームのメンバー変更があって、当時のPO(プロダクトオーナー)がチームを移動してしまい、POになりました。現在は配信基盤のグループリーダーでもあります。

私は、2012年1月に中途で入社しました。ちょうど10年目に入るところですね。
配属は動画配信やライブ配信など、デジタルコンテンツの配信の基盤を担当するチームでした。なので、10年という年月の間にチーム名が変わったりチームメンバーが変わったりいろいろなことがありましたが、自分自身やっていることはあまり変わらず、ずっとデジタルコンテンツの配信周りの開発を担当しています。

回答者の写真まさき

時代に応じて進化してきたシステム

質問者の写真釘宮

10年も配信基盤を支えているんですね!
当時のシステム構成とかトラフィックってどんな感じだったんですか?

2012年の自分が入社した頃は、アクティブ/スタンバイが2セットしかありませんでした。当時は最大でも2Gbpsしか出なかったんです。ストリーミングにも対応していましたが、ダウンロードで映像を見るのが主流の時代でした。
その後、スマホの普及、回線速度の向上、高画質化などでトラフィックが急激に増加し、分散配信によりスケールできるような仕組みを作ったりしました。それが2016年くらいまでの話で、力技でなんとかして乗り切っていましたね。
スケールする際の作業が大変で、サーバーリソースを最適化することが難しく、サーバー台数がどんどん増えていくような状況でした。

回答者の写真まさき
質問者の写真矢野

聞く度に「すごい時代があったんだな」って思います。

まずは各処理の汎用化とサーバーセットアップをコード化し、スケール作業の効率化を行いました。これによって作業時間を大幅に短縮できましたね。
その後、コンテンツ単位で配信量に応じて配信経路を最適化する仕組みを導入し、サーバーリソースも最適化することができました。

回答者の写真まさき
質問者の写真矢野

このあたりから現在の配信基盤チームの話ですね。

配信システムとECサービス側のシステムが密結合していたため、配信システムを変更する度にECサービス側のシステムも大きく修正する必要があり、とても手間でした。
そこで、まずはEC側で配信システムを利用するためのライブラリを開発し、疎結合な構成に変更しました。これにより配信システムを素早く変更することが可能になり、さまざまな施策を進めやすくなりましたね。これが2016年から2019年くらいまでの話です。

回答者の写真まさき
質問者の写真矢野

こう振り返ってみると2〜3年ごとに変化がありますね。
時代に応じて進化していて、良い話!

質問者の写真釘宮

良い話!
こういう当時の取り組みがあったからこそ、スマホ普及によって増えたトラフィックにも対応できているんですね。

そうかもしれません。
時代の流れが速く、当初は対応が後手に回っていて、このままでは...という危機感はありました。なので、何が来ても対応できるように先手を打って仕込んでおこうという思いはありましたね。

回答者の写真まさき
質問者の写真矢野

ここまでに話したこと以外にも、いろいろな仕込み?みたいなものがありましたよね。
チームに入った時には、すでにいろいろ準備してあって驚いた記憶があります。

そうですね。いろいろ仕込んでいたなかで配信チームができて、知見がある方と同じチームになることができたので、良いタイミングで進められたと思います!

回答者の写真まさき
質問者の写真矢野

まさきさんの仕込みがなかったらと考えたら恐ろしいです…。
2017年の時点で、負債脱却の文脈で疎結合化を成し遂げるために、処理をある程度まとめたり、ライブラリ化したりしてくれていたのはかなり助かりました。

質問者の写真釘宮

当時の仕込みが今もかなり効いてきているんですね!
そして結果として、この記事に書いてある配信サーバ「VODST」につながってくるんですね。

inside.dmm.com

チーム組成とスクラム開発

質問者の写真釘宮

2017年に組織改編で新たなチームができて、もともと動画の配信を支えるチームにいたまさきさん的には開発しやすくなりましたか?

はい。スピード感があって、技術の話をしている時にどんどんアイディアが上がってきて、挑戦していこうという雰囲気があってやりやすくなりました。
でも、実は最初に話が来た時は、上手くいくか半信半疑で。どうなるんだろうなーって感じでした。結果的には割と早い段階でいけるかもって思いましたけどね。

回答者の写真まさき
質問者の写真釘宮

どのくらいの時期でいけるかもって思ったんですか?

このチームは金沢と六本木の横断チームだったんですけど、金沢メンバーが週1くらいで六本木に行ってメンバーと密に話すようになってからですね。たぶん2ヶ月後くらいだったと思います。

回答者の写真まさき
質問者の写真釘宮

そうなんですね。矢野さんはチームができた当初はどんな感じでした?

質問者の写真矢野

私はかなり大変でした。
組織改編で突然集められたメンバーでしたし、何をやっていくチームなんだろと外からも見られていたみたいで、チーム内外に不信感が漂っているような感じで…。

質問者の写真釘宮

最初の課題はチームビルディングだったんですね。どう解決していったんですか?

質問者の写真矢野

合宿に行きました。
もともとのメンバーと新しいメンバーの間で課題が共有できていなかったんです。直近やりたいことがばらばらで、その齟齬を合宿で埋めようと思いました。

合宿中に、直近のものと少し先のものという時系列も含めて、課題について共通認識をもつことができました。
矢野さんが皆をまとめてすごく頑張ってくれたのを覚えています。笑

回答者の写真まさき
質問者の写真矢野

合宿に行けばなんとかなるかなと思って行ったんですけど、本当になんとかなりました!笑

本当、そうでしたね。笑

回答者の写真まさき
質問者の写真矢野

なんとなくとはいえ、最終的な目的地や課題がなんとなく同じだったのも助けになりました。

その後は、どんどんチームの外にも視線を向けていきました。
それまでチームができてもすぐ解散してしまったり、プロジェクトが止まってしまったりすることもあったのですが、「このチームが長く続く!」と関わる方に思ってもらうことが大切だと感じました。
協力していた作業のプロジェクトが後につぶれるかもって考えたら、モチベーションも下がってしまうじゃないですか。そういう雰囲気にならないようにしたかったんです。

質問者の写真矢野

信頼関係構築のために繋いでくれていたのもまさきさんでしたよね。

インフラ担当の方々とはそれまでも一緒に戦ってきていましたが、より密にコミュニケーション取るようになりました。そして、配信に関わるコンテンツ管理、運営、データ管理の各チームの方ともどんどんコミュニケーション取るようにしました。

回答者の写真まさき

f:id:dmminside:20210210162903p:plain

技術的挑戦

質問者の写真矢野

ライブ配信が中断してしまった際にどこが悪いのか分からないせいで、関係者が全体的にピリついてるということもありましたよね。以前からいたまさきさんがよく呼び出されてたような…。笑

そうですね。
ライブ配信は様々な要因でトラブルが起こるのですが、当時のシステムでは原因がよく分からなかったり、リカバーできないこともあったりと...。 関係者が全体的にピリついてギクシャクしてしまい、当時は大変でしたね。笑

回答者の写真まさき
質問者の写真矢野

そういうこともあって、責任の所在が分かりやすいようアーキテクチャから変えていけるようにしたかったんです。これも、配信基盤チームができる前の時点で、いろいろ仕込んでましたよね。

そうですね。技術的に改善できるところは、何とかしたいという思いがあったので、手が空いた時に新システムのプロトタイプを作って技術検証して、何かタイミングがあったら提案しようと思ってました。

回答者の写真まさき
質問者の写真釘宮

どんな感じに対応していったんですか?

質問者の写真矢野

ちょうど小規模の配信システムを開発することになったので、そちらを新システムで開発しました。

そうでしたね。小規模配信で問題なければ大規模配信のほうにも反映していくという流れでやっていました。

回答者の写真まさき
質問者の写真釘宮

目の前の案件を上手く使って対応していったんですね。
そして、レガシーなものを管理するだけでなく、ちゃんと挑戦しているんですね!

質問者の写真矢野

そうですね。しっかり事業が成長していることが前提かもしれませんが、いろいろ新しいことができていると思います。
今まで話してきたように、少しずつ仕込んでいたおかげで今のモダンなシステムがある気もします。そういうものがなかったら、これだけ攻めたシステムにはなっていなかったかもしれません。

あとは、スクラムチームになっていなかったらここまでのことはできなかったかもしれませんね。

回答者の写真まさき

今後の展望

質問者の写真矢野

スクラムチームができた当初に出てきた課題がだいたい捌けてきました。それこそ一番最初の合宿で話していた内容が形になってきたわけですから、チームの課題としては次のフェーズに入ってくるのかなと思います。

質問者の写真釘宮

今後の目指していくものって決まっているんですか?

質問者の写真矢野

そこが結構難しくて、以前みたいにこれを解決しないと事業が成り立たなくなるというような明らかな敵がいないんです。
今までは当たり前に動くシステムを当たり前にちゃんと動かすことを目標としていました。これからは前よりもロードが速くなったとか、きれいになったとか、ユーザーにより良く感じてもらえるようなことをやっていきたいです。そのなかの1つが最近対応した4K対応です。

質問者の写真釘宮

課題の質が変わったんですね。

そうですね。
あと、自動エンコーダーの開発、プレイヤーの開発など、コンテンツ作成から配信、再生と一通り動画配信に必要なものが揃ってきたので、トータルで品質を向上させることができると思います。

回答者の写真まさき
質問者の写真矢野

VODSTでいろんなコーデックとか、いろんなDRM形式に対応できるような仕込みをやっていっているところです。
あと他に考えていることとして、社内の他のところにもベネフィットをもたらしたいと思っています。
実はすでに少し導入されています。電子書籍って付録で動画付いていたりするのですが、昨年末それらの提供方法が刷新されまして。その動画配信にVODSTを活用してもらっています。以前までは付録の動画を見る方法はPCでダウンロード再生するしかなかったんですが、今はPCやスマホなどの様々なデバイスのブラウザ上でストリーミング再生できるようになっています。
仮に新しい事業で「動画配信したい」って要望があった時は、この配信基盤のシステムを使ってもらえるようになると良いなと思っています。

質問者の写真釘宮

サービスで動画を流そうとすると、外部の会社にお願いしなきゃいけなかったりして、コストが高くなりますもんね。

質問者の写真矢野

そうですね。イニシャルコストがすごく高いイメージありますよね。
それをうちのチームでやればそこまでかかりません。動画サービスはかなり大規模なので、そのおかげでスケールメリットがあります。なかなかのローコストで乗っかることができるんですよね。
今回の電子書籍事業への導入に際して、どのサービスのコンテンツでどのくらいのトラフィックが出てるかや、どのくらいストレージを使っているかをDatadog上で確認できる仕組みも作りました。このおかげで他のサービスにもこの基盤を提供しやすくなったように思っています。
後々は外部にも提供していけるといいのかなって思っています。

質問者の写真釘宮

外部提供は夢がありますね!

電子書籍事業に導入した際に見えてきた課題もあるので、そこを少しずつ直していって、より皆に使ってもらえるものになればいいなって思っています。

回答者の写真まさき
質問者の写真矢野

釘宮さんも、社内の事業で「動画配信をやりたい」ってところを見かけたらご相談ください!

質問者の写真釘宮

すぐ相談しますね!

f:id:dmminside:20210210163015p:plain