Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

2023/8/31に開催されたSRE Longe #15でお話した、みてね SREの伊東の登壇資料です。
https://sre-lounge.connpass.com/event/290455/

MIXI ENGINEERS

September 04, 2023
Tweet

More Decks by MIXI ENGINEERS

Other Decks in Technology

Transcript

  1. MIXI, Inc. データベースにまつわるトイルについて
 - Googleの「Site Reliability Engineering」によると、トイルの定義は次のようなものがある 
 - 「トイルとは、手作業、繰り返される、自動化が可能、戦術的、長期的な価値がない、サービスの成長に比例して増加

    する、といった特徴を持つ作業です。」
 - https://cloud.google.com/blog/ja/products/gcp/identifying-and-tracking-toil-using-sre-principles
 - ではデータベースにまつわるトイルとは? 
 - 監視の設定や調整
 - データベースエンジンのアップグレード
 - セキュリティパッチの適用

  2. MIXI, Inc. - みてねで運用しているいくつかのサービスのうち、メディアのエンコードを主な責務としているマイクロサー ビスがある
 - こちらのマイクロサービスの詳細については「1秒動画のつくり方 ― 「家族アルバム みてね」における動画エンコード

    パイプラインとその最適化事例」をご覧ください
 - エンコードに関わるパラメータの管理などにDBを使っているものの、テーブルサイズは小さくクエリも非常 に少ない
 - そこで、これらのデータをDB以外に保存することでDB自体をなくしてトイルもなくすという手法を思いつく 
 トイル削減のための新手法の提案

  3. MIXI, Inc. - データの保存先はAmazon S3を採用し、JSON形式のテキストデータを保存する 
 - 該当のマイクロサービスはRailsを使っており、通常であればActive Recordを使うところを改造 


    - Active Modelと自前のS3操作用のモジュールを組み合わせ、
 Active Recordのinterfaceに似せた自前のモデルを実装
 - テーブルのJOINやトランザクション等は使えないが
 元々使っていなかったので問題なし
 - オブジェクトの保存・ロード・更新など
 必要最低限の機能のみを実装
 具体的な実装

  4. MIXI, Inc. - DB自体をなくすという斬新な手法でDBの運用にまつわるトイルを撲滅することができました 
 - どんなワークロードにも適用できるわけではないので注意 
 - たとえばDBのテーブルサイズが小さく・シンプルなクエリだけのパターンなど


    - SREのプラクティスを推進するにあたって、アプリケーション開発のスキルを求められることはよく語られて いますが、今回のようなケースではそれを強く実感しました 
 まとめ