@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「データベースリライアビリティエンジニアリング」を読んだ

データベースについてのみの本じゃなかったので楽しめた。

1章 イントロダクション
2章 サービスレベルマネジメント
3章 リスクマネジメント
4章 オペレーションの見える化
5章 インフラストラクチャエンジニアリング
6章 インフラストラクチャマネジメント
7章 バックアップとリカバリ
8章 リリースマネジメント
9章 セキュリティ
10章 ストレージ、インデックス、レプリケーション
11章 データストアフィールドガイド
12章 さまざまなデータアーキテクチャ
13章 実践DBRE

最近データ分析基盤を提供する仕事をしている。その時分析で使うデータを取得してくることが多いのだが*1、その時になんでこんなテーブル構成になっているんだろうなと思うことがたまにある。昔自分がアプリケーションを開発していたときはDBA がついてホストやテーブルの設計をしてくれる人がいたなと思った。さらには、自分でテーブルを作ることもあるけど、なにかで気になってしまったりクエリが問題ありそうだなと思ったときに相談できる人もいた気がする。

昔はパフォーマンス、スケーラビリティやクエリの相談をするような専門の人がいたが、最近だとクラウド上のマネージド上になると世話をすることが減ってくる。そのため今まではやってなかった、セキュリティ、インフラのコード化、CI/CDなどを考えユーザに提供することで自分が邪魔にならないようにしていかないといけないのだろうな。
そのためにはソフトウェアエンジニアリングの技術を使い、安定した信頼性のあるオペレーションができるようになっていくことがすすめられている。ただし、データベースを扱うことには変わらないため、データベースについての知識が必要なことは変わってないというのがそうだよなと思った。そのために本書ではストレージ、インデックス、レプリケーションなどのデータベースでの知識についても説明されていたりする。そのあたりは自分が勉強しているけど全然弱いなと思っているので詳しい人と一緒に働いて教えてほしいとは思う。

本書は最初にも書いたようにデータベースの話よりも信頼性のあるオペレーションを行うためにどうするかの話が多かったと思う。そのためデータベース以外のものに対しても使える話が多く書かれている。4章までのサービスレベルの定義と測定、リスク評価と管理、オペレーションの可視化などは特にそう。このあたりは最近読んできた本の中と一緒でSRE の考え方が基本になっているなと感じることが多かった。
自分の得意分野に対して信頼性をあげていくことを考えていってみようかと思った。

まとめ

  • 自分の仕事もオペレーションが多いので信頼性をあげれるところを探そう
  • 地味にLambdaアーキテクチャ、Kappaアーキテクチャの話が書いてあって面白かった。他の技術的なところは他の本でも補っていきたい
  • やっぱりSRE 本を読み直すしかない

*1:できれば提供してもらいたいけどそれはまた別の機会で