Slide 1

Slide 1 text

データベースにまつわる トイル削減の新手法の提案 SRE Lounge #15

Slide 2

Slide 2 text

MIXI, Inc. 自己紹介
 株式会社MIXI Vantageスタジオ 
 みてねプロダクト開発部 基盤開発グループ SREチーム 
 伊東 宏起
 
 https://hekki.info


Slide 3

Slide 3 text

MIXI, Inc. 家族アルバム みてねの紹介 写真プリント フォトブック スマホで撮影した子どもの写真や動画を家族と共有し、 コミュニケーションして楽しむ家族アルバムサービスで す。


Slide 4

Slide 4 text

MIXI, Inc. 家族アルバム みてねの紹介 利用者数1,800万人を突破(2023年5月時点) ※ iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計 7言語・175の国と地域でサービスを提供

Slide 5

Slide 5 text

MIXI, Inc. 本日お話する内容
 - データベースにまつわるトイルについて 
 - トイル削減のための新手法の提案 
 - 具体的な実装例の紹介 
 - まとめ


Slide 6

Slide 6 text

MIXI, Inc. データベースにまつわるトイルについて
 - Googleの「Site Reliability Engineering」によると、トイルの定義は次のようなものがある 
 - 「トイルとは、手作業、繰り返される、自動化が可能、戦術的、長期的な価値がない、サービスの成長に比例して増加 する、といった特徴を持つ作業です。」
 - https://cloud.google.com/blog/ja/products/gcp/identifying-and-tracking-toil-using-sre-principles
 - ではデータベースにまつわるトイルとは? 
 - 監視の設定や調整
 - データベースエンジンのアップグレード
 - セキュリティパッチの適用


Slide 7

Slide 7 text

MIXI, Inc. - みてねで運用しているいくつかのサービスのうち、メディアのエンコードを主な責務としているマイクロサー ビスがある
 - こちらのマイクロサービスの詳細については「1秒動画のつくり方 ― 「家族アルバム みてね」における動画エンコード パイプラインとその最適化事例」をご覧ください
 - エンコードに関わるパラメータの管理などにDBを使っているものの、テーブルサイズは小さくクエリも非常 に少ない
 - そこで、これらのデータをDB以外に保存することでDB自体をなくしてトイルもなくすという手法を思いつく 
 トイル削減のための新手法の提案


Slide 8

Slide 8 text

MIXI, Inc. - データの保存先はAmazon S3を採用し、JSON形式のテキストデータを保存する 
 - 該当のマイクロサービスはRailsを使っており、通常であればActive Recordを使うところを改造 
 - Active Modelと自前のS3操作用のモジュールを組み合わせ、
 Active Recordのinterfaceに似せた自前のモデルを実装
 - テーブルのJOINやトランザクション等は使えないが
 元々使っていなかったので問題なし
 - オブジェクトの保存・ロード・更新など
 必要最低限の機能のみを実装
 具体的な実装


Slide 9

Slide 9 text

MIXI, Inc. - 無事DBを廃止することができ、これに伴って冒頭で紹介したトイルを撲滅することに成功 
 - S3の高耐久性も相まって、リリース後から半年経過した現時点でトラブルなし 
 - DBインスタンスがなくなったことによるコスト削減という副次的な効果も得られた 
 - 一方で、独自実装による分かりにくさといったデメリットも 
 リリース後


Slide 10

Slide 10 text

MIXI, Inc. - DB自体をなくすという斬新な手法でDBの運用にまつわるトイルを撲滅することができました 
 - どんなワークロードにも適用できるわけではないので注意 
 - たとえばDBのテーブルサイズが小さく・シンプルなクエリだけのパターンなど
 - SREのプラクティスを推進するにあたって、アプリケーション開発のスキルを求められることはよく語られて いますが、今回のようなケースではそれを強く実感しました 
 まとめ


Slide 11

Slide 11 text

MIXI, Inc.