【DMM meetup #25 〜動画配信事業部のシステムカイゼン実録〜】に参加しました

DMM meetup #25 ~動画配信事業部のシステムカイゼン実録~

https://dmm.connpass.com/event/202838/

に参加してきたので、そのときのレポート

事業部紹介からのはじまりの軌跡

動画サービスが、DMM において最初期に作られたサービスである

つまり、レガシーな状態がある。

2017

社長が変わって、プロダクトファーストな文化になった。

ある日、動画事業部で EC をやってくれと言われた。

メンバー全員で、ユーザは何に困っているのかを考えた。

仕組みを作ることで、他事業も高速に事業を成長させられるようにしようとなった。


これまでのKAIZEN紹介

開発プロセスの改善

以前の環境

  • LAMP 環境
  • CVS
  • 本番デプロイは rsync

開発環境が使いづらい

  • クラウド上に環境をつくることで、自由に利用できるようにした
  • 環境構成をコード化して属人化を解消
  • 常に最新に環境を保てるようにした

バージョン管理に難あり

  • git, github の導入
  • ブランチ運用の整理をした
  • レビュー効率も上がった

ロールバックが大変

以前までは

  • 巻き戻した状態で再コミット -> 再度 rsync
  • 対象ファイルが多いと大変

今では

  • commit revert するだけで OK

異常に気付きにくく、調査もしづらい

以前までは

  • 数百台のサーバーがそれぞれにログを吐いている
  • サーバーメトリクスもとっていない

今は

  • ログはクラウド保存
  • メトリクスも取れる
  • 通知を slack に飛ばすようにした

動画ECサービスのリプレイスを目指して()

DMM 動画について

国内トップクラスの作品数を誇る動画配信サービス

現在のシステム構成

LB -> WebServer -> DB

という構成

WebServer は事業部毎にサーバーが分かれている

  • LB からの応答のみするサーバー
  • LB からの応答も受けるし、DB 接続もするサーバー

の種類がある

システムの課題

  • 最初期から運用されているシステムのため、仕様を把握し切れていない状態
  • アーキテクチャが定まっていないため、機能追加に時間がかかる

システムの改善内容

少しずつ修正するのは大変(どこで障害が起こるか分からない)だったので、

リプレイスをしようとなった。

  • API の刷新
  • フロントエンドの刷新
  • DB スキーマ最適化、バージョン更新、クラウド化

API の刷新の進め方

マイクロサービスアーキテクチャを採用


マルチモジュールを利用したプレイヤー共通化作戦

Android アプリ の話

アプリについて

  • 視聴機能だけのアプリ(playstore
  • ストア機能付きのアプリ

この 2 つはソースコードは別々なため、機能追加の際に工数がかかる。

ソースセット共通化アセット

共通の機能については、共通ソースセット内に作る

昔は、app モジュールに全機能があり、密結合していた

今は、マルチモジュール化している

  • 画面・機能毎に分割

新卒一年目のエンジニアもKAIZENしてみた!

動画の分析を、先輩に相談しながら進めていた。

リモートワークでコミュニケーションがとりづらかった。

そこで、動画分析をするツールを自分で作った。

結果、早く仕事を終わらせることができた。