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

連載を終えて ~DMM動画配信サービスを支える配信基盤のこれまでとこれから~

連載を終えて ~DMM動画配信サービスを支える配信基盤のこれまでとこれから~

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

はじめましての人は、はじめまして。知っている人は、こんにちは。 配信基盤スクラムチームでプロダクトオーナーをやっている@yanoshiです。 「進化する動画配信基盤」では取りまとめをやっていました。

さて皆さん、私たちの先日までの連載を読んでくれましたか!?

inside.dmm.com

無事に全11記事を走り抜けることができました。寄稿してくれた皆に感謝!

とても良い連載ですよね(自画自賛)!

この記事では、本連載の編集後記をつらつら書いていこうと思います。

なぜ連載をやるに至ったか

そういった話をいっさいせずに突然走り出した本連載でしたが、編集後記としてそのあたりのお話をしていこうと思います。

まぁまずはこれを見てほしい

うちのプロダクト、エモくないですか? エモい。 こちらのスライドは弊社で開催されたDMM meetup #15 コンテンツ配信を支える技術にて発表したものです。 ありがたいことに結構ポジティブな反響をいただきました。

ちなみに 今後もDMM meetupでは弊社内の様々な部署に関するイベントを企画していくようなので、気になる人はぜひウォッチいただければ幸いです(宣伝)。

見えにくいところだけど結構すごいことをしている(つもり)

実際わりとすごいことをしているつもりなのですが、残念ながら知られていないのです。 その昔、弊社のエンジニアは「ツチノコ」と呼称されたぐらいなので、社外で知られていないのはまぁ仕方がないのですが、寂しいことに実は社内でもあまり知られていなかったり…。

そもそも、動画配信技術というのがわりと特異なドメイン知識を必要とする分野ですよね。 よく分からない分野だよね…。分かる。

目次記事でも触れましたが、「結構おもしろ技術分野だし、皆に知ってほしい!」そんな課題感がありました。

なんで知られていないのだろう

「そう、誰も発信していないのである!」

そうです。これまであまり発信ができていませんでした。 そんな課題感からわりと積極的にイベントなどで登壇していたのですが、やはり短い登壇時間では「なんとなくふわっと面白そう」みたいな次元までしか昇華させられません。

そんななかでプロダクトが完成し始める

昨年は私たちのチームにとって節目の年でした。

  • 悲願だったSilverlightに依存しないPCダウンロード再生の実現
  • CMAFに準拠した新たなDRM配信の仕組みを確立
  • 動的オフロードによる負荷分散
  • 高速エンコーダーの実現

私たちのチームができてからちょうどこの春で丸3年なのですが、発足当初に思い描いていたものが次々と完成していった1年でした。

そうだ! 連載をしよう!

私たちのチームでは毎年「開発合宿」と称して数日掛けて1年の振り返りと、今後1年の開発計画を立て、夜はお酒を呑みつつわいわいするイベントを行っています。 こういった取り組みを承認してくれる、良い部署です。

f:id:yanoshi:20200313231002j:plain
合宿の風景

そんな会で 「そろそろモノが出てきたし、ちょっとドヤりたいよね?」 と提案したところ、皆も乗り気になってくれました。

あまりにも字が汚く、かつホワイトボードも汚れていて写真では紹介できないのですが、「どんな内容の記事を誰か書くか?」というところまでは合宿中に決めることができました。

そこから連載へとつながっていきます。

本連載の歩き方

さて、連載の全てのコンテンツが揃いました。ここで本連載の各記事について、改めて扱われている技術領域で整理して記載していこうと思います。

目次記事ではアウトプットベースで羅列しているので、どんな内容なのか少し分かりにくかったかもしれません。 「連載をこれから読むよ」って人はぜひ以下を参考にしていただければ幸いです。

動画の規格に興味がある / 今から動画配信をやりたいけど何を見ればいいか分からない って人は

おすすめ記事

編集コメント

このご時世なので、突然上司やクライアントから「動画配信について聞きたいんだけど」みたいな無茶振りを受けてしまった方ももしかしたらいらっしゃるかもしれません。

そんな時に参考になるのがこの記事!

CMAFの話題を出せば「ちょっと動画配信詳しい感」みたいなのを出せるかもしれません(用法用量を守って正しくお使いください)。

余談ですが丸山さんは便利な解析ツールを作ってくださっていて「OSS化したいね!」みたいな話題がチーム内では出ています。 そちらもまた近い将来紹介できればいいですね。

フロントエンド / Electron / Nuxt.js / DRMによる動画再生 が気になる

おすすめ記事

編集コメント

フロントエンドの話題はDMM inside全体を通して人気のようです。こちらの記事も例に漏れず、かなりのアクセスを頂きました。 ElectronでDRM再生可能なプレイヤーを作っている事例はかなり少ないはずなので、どなたかの参考になれば良いなと思っています。

DRMの裏側 / AWSによるWindows Server + .NET Framework運用 が気になる

おすすめ記事

編集コメント

弊社でC#が動いているというのは意外だったようで、SNS等で反響を頂きました。 一部のDRMサーバーが当時Windows上でしか動かなかったといった外的要因もあるのですが、実は弊チームにはC#erがそれなりの人数所属しており、それもあって新ライセンスサーバーにはC#を採用したという経緯がありました。 今後も内外の様々な事柄を加味しながら、上手く技術選定をしていきたいですね!

大規模トラフィック / オンプレインフラ / 大規模コンテンツ が気になる

おすすめ記事

編集コメント

私たちの基盤を語るうえで「大規模トラフィック」や「大量のコンテンツ」というキーワードは外せません。 限られたリソースのなかで、運用コストやユーザー体験が最大限のパフォーマンスを発揮できるよう常に進化を続け、今の形にたどり着きました。

自社でこれほどの規模の動画配信基盤を、オンプレで抱えている事業者は少ないのではないでしょうか? 私たちの基盤の自慢の一つです。 今後も最適な形を模索し続けたいですね。

OpenResty(Lua)を利用したキャッシュアーキテクチャ が気になる

おすすめ記事

編集コメント

OpenRestyの採用事例はそこまで見かけませんが、私たちの基盤では大活躍しています。 込み入ったRDBとの接続等がなければ、nginxのチューニングやエコシステムがそのまま活用でき、なおかつ軽量/高速で動作するので配信システムにはとても相性が良いように感じています。 余談ですが、私にとってOpenRestyの出会いは入社後配属されたCTO室でのことで、異動してやってきた動画配信事業部でも採用されており不思議な縁を感じました。

海外企業との契約周り / IT企業のエンジニアリング以外の工程 が気になる

おすすめ記事

編集コメント

こういった話題ってあまり表には出て来ないものかな? と思っています。 海外の大手企業とのやり取りは想像以上に大変だったり…。 こういった行程をないがしろにすると、思わぬ事故が起きて突然配信が止まることもあり得ます。 とても大切にしたい業務の一つですね。

ffmpeg / 動画コーデック / 分散エンコード が気になる

おすすめ記事

編集コメント

エンコーダー刷新はまさにチームの総力戦で、さらに言えば、チーム外からもたくさんの協力があって実現しました。 そういった取り組みをこういう形で紹介できて大変嬉しく思っています。 「銀の弾丸」とまではいきませんが、この「JIRO」というプロダクトを通じて山積していた課題を一気に改善できました。 今後の事業スピードと映像品質の向上に大きな一役を買ってくれると思っています。

Go + GAEで作られた管理システム が気になる

おすすめ記事

編集コメント

「エンコーダーにおいて、APIの運用コストはなるべく掛けたくないな」という考えの結果、Go + GAEでの開発に至ったJIROのマネジメントシステムです。 今のところ、Ops的観点では特に面倒を見てあげなくても動いており、「さすがGAE」という印象を持っています。

私たちのチームでは他にもいくつかGAEのプロダクトが動いているので、また機会があればそちらについても紹介したいですね!

ライブ配信の裏側 が気になる

おすすめ記事

編集コメント

合宿の際は社会情勢がこんなに変化するとは想像できませんでした。 「ライブ配信」という領域の注目度は上がる一方に感じています。 今回はアーカイブコンテンツに主眼を当ててご紹介しましたが、他にもライブ配信特有の技術にフォーカスした面白い話はたくさんあるので、別の回で紹介していきたいですね!

AWS MediaServices / SPEKE / AWS S3 Glacier Deep Archive / ハイブリッドクラウドを利用したDR が気になる

おすすめ記事

編集コメント

JIROによってついに実現可能になったDRです。 あまり強調して記載していませんが、JIROになって以降、かなりの容量のバックアップデータをDeep Archiveに投げ込み始めていたりします。かなり安くて助かっています。

また副産物としてSPEKEに関するナレッジが蓄えられたので、そこも活用事例などを紹介できるようになりたいですね。

連載を終えて

長いようで短かった連載期間が終わりました。 冒頭でも記載しましたが、こうして記事が並ぶと圧巻で、自身でも改めて私たちが携わっているシステムの規模を感じることができました。

最近は採用イベントでこの連載の話題が出てくることがあるらしく(人事談)、会社のブランディングにも貢献できているようで嬉しい限りです。

また、こういう形で記事としてまとまったことは、私も含めてチームメンバーのモチベーションアップにもつながったようにも感じています。 最近は事業部内外から「連載読みました!」とか「うちのチームでも連載してみようかな?」というような言葉を掛けていただけるようにもなり、社内でも話題に挙げていただいており、概ね目標は達成できた気がしています。

少しでも皆さんに楽しんでもらえたなら幸いです。

この連載を始めた頃には想像できなかった変化がいくつかありました。

嬉しい変化としては、オンプレ基盤に携わっていたインフラチーム(配信インフラチーム)の面々が同じ事業部にやって来たことです。これによりさらにスピード感を持って様々な進化を続けていけると思います。

また大変な変化として、昨今の新型コロナウイルスの影響があります。幸いなことに関係各所の尽力の結果、それなりにスムーズにフルリモートワークに移行できたことは喜ばしい限りです。 コミュニケーションがオンラインに移行しても、チームとしてサービスの継続的な提供に無事にコミットできていることは率直に良い話だなと感じています。たまにオンライン呑みをしながら皆でリモートワークライフを送っています。



さて、私ごとなのですが、動画サービスの配信基盤に関わるようになって、このGW明けに丸3年となります。 3年というと短いようにも感じますが、会社も事業部もチームも、そしてシステムも大きく進化を遂げました。 私の立場も、はじめは一端のエンジニアだったのですが、気がつけばプロダクトオーナーを拝命するに至り、こうしてシステムのさらなる進化に深くコミットするようになりました。

この3年間で今回紹介した内容の全てとさらにその他にも刷新を成し遂げました。シンプルに「みんな、頑張ったなぁ」という思いです。

f:id:yanoshi:20200428192229p:plain
3年かけて刷新したシステムたちの一部振り返り
あの頃思い描いた「理想」の多くがやっと実現できてきた今日この頃です。 こうして手に入れた「カード」を武器に、今後も事業的な意義とユーザーの皆さんの体験価値の両方を最大化できるような仕事をしていきたいと思っています。

これからも “進化し続ける”動画配信基盤、そして私たちの動画サービスをどうぞよろしくお願いします。



謝辞

文章校正や公開対応を行ってくださったCTO室の方々、寄稿してくれたメンバーの皆、そしてシステムを開発運用するうえで関わってくださっている関係各所の面々に、この場を借りてお礼を申し上げます。

皆さんのおかげで素敵なシステムが完成し、そして記事連載という形で内外に紹介することができました! 本当にありがとうございました!