1. London Tech Talk
  2. Designing Data Intensive App..
2023-07-22 40:47

Designing Data Intensive Application (DDIA) 本のススメ

spotify apple_podcasts
00:13
ken
今日は技術トピックについて話していこうと思うんですが、今日のタイトルはズバリ、「DDIA 本のススメ 。」ということで話していこうと思います。
Yosuke Asai
DDIA。
ken
DDIA。知ってます?DDIA。
Yosuke Asai
いや、知りませんでした。正直に申し上げると。
ken
DDIAと言っても、通じる人はほとんどいないと思うので、早速ネタバラシをすると、オライリーから出ている本に、Designing Data Intensive Applicationという本があって、日本語に翻訳されていて、データ思考アプリケーションというタイトルかな。
赤色の帯で、イノシシの柄というか、絵が特徴的なデータベースについて書かれた。
本なんですけども、僕がこの本めちゃくちゃ好きでですね、2017年3月かな、に発表された本なんですけど、2018年ぐらいに読んで、すごい感銘を受けてですね、僕のその後のキャリアに結構大きく影響を受けたし、
なんでだっけ、この前アサイさんと雑談したときに、DDIA本知ってるみたいな流れになったんでしたっけ?
Yosuke Asai
そうですね、なったと思います。たぶん。
ken
うん。うん。
アサイさんが読んだことないって言ってたので、これはもうDDIA本をね、進めるしかないということで。
はい。
なんで今日はDDIA本について語り尽くす30分にしたいかなと思ってます。
Yosuke Asai
いいですね。結構自分も興味がある内容が多そうだったんで、なんか見てみて、すごい楽しみです。
ken
うん。読んだことないとして、存在は知ってました?なんかカバー見たことあるなとか。
Yosuke Asai
いやー、本当に僕は無知ですいませんって感じなんですけど、初めて言いましたね。初めて聞きましたし、初めて言いました。
ken
うんうん。ということはね、なんだろう、じゃあ簡単にDDIA本の説明からしていこうと思うんですけど。
あ、ありがたいです。はい。
はい。中に書かれているものとしては、分散データベースの知見をまとめた教科書的な立ち位置の本ですね。
うん。
この特性上、浅く広く書かれている本です。
はい。
で、ソフトウェアアーキテクトとか、まあ僕たちSREのようなシステム設計に関わる人たちにとっては、結構必須本であったりとか、
あとそのソフトウェアアーキテクトの面談の対策本として紹介されてたりもしますね。その海外のYouTubeとかブログとか、その技術面談、指南のインタビュー対策みたいなブログとかで。
03:05
Yosuke Asai
SREを名乗るなら絶対に読まなきゃいけない本
レベルの本ですかね
ken
絶対に
言っちゃおうか
読みます
僕この本はね
大抵さ
プログラマーが読んだ本を紹介するときってさ
自分は俺こんな本読んだんだぜ
お前も読めよみたいな
マウンティング入ってるじゃないですか
僕の人生を変えた
エンジニア本50選みたいなね
50回も人生変わるんだ
っていうのがすごいなと思うんですけど
Yosuke Asai
いろんな方向に
ken
向かってる
それを前提で言いますと
僕がネガティブな
印象をリスナーに持たれてもいいので
ぜひ読んでほしい名作ですから
Yosuke Asai
なるほど
ken
マウンティングしてるなって思われてもいいから
これはね
全員とは言わないけどもちろんモバイルエンジニアとか
エンジニア以外の方にも
読めとは
思わないけど
何か一冊
一つ選ぶとするなら
これは本当にいい本でした
特にシステム設計とか
バックエンドの実装とか
あと普段データベースを使ってる人
に関しては
Yosuke Asai
エンジニアであれば
誰でも参考になるところがあるっていう感じですかね
ken
そうそうそうそう
2017年に書かれた本なので
もう6年前ですよね
古いんじゃないって思う人も
いると思うんですけど
結構その分散システムの
アカデミズムの研究とか
データベース界隈の知見って結構
10年20年
私は30年ぐらい
研究されてきた分野でもあるので
その本の中に具体的に出されている
ツールの名前が
ちょっと古いなって感じるところもあるんですけど
2023年時点でも
読む価値は大いにありますし
実際僕も2020年において
何回か
読み直したりしましたね
読み直すっていうのも
頭から後ろまで読むわけではなくて
あそこにあんなこと書いてあったな
なんだっけなみたいな感じで
教科書的な立ち位置なので
一気通貫して読んで終わりっており
だいたいどこに何か書いてあるか
ふわーっと
理解してあとはその
2年3年通して何回か
立ち戻るような本かなと思ってます
Yosuke Asai
いいですねじゃあもう
教科書というか
まあ賢者は歴史からものみたいな
もう古典のような感じで
学んでいけるみたいな感じですかね
ken
そうそうそう
っていうのもですね
これを書いたマーティン・クレップマン
先生っていう方が
いらっしゃるんですけど
彼はアカデミズムの方なんですよ
なのでここで書かれている
知識とかコンセプトの裏側とか
参考書籍に
論文だったりとか
っていうのが大抵入ってるんですね
だから出てきたコンセプト
これなんだろうなと思って調べようと思って
06:01
ken
正末の
リファレンスいくと
大抵論文に行きます
うん
Yosuke Asai
1個だけ僕もレビュー読んだんですけど
リファレンスの数がめちゃくちゃ多いのが
すごいっていうのを書いてあったら
みたいなね
それはすごいしっかりしてるんでしょうね
かなり研究内容というか
スッペルな本ではない中身が
っていう感じですかね
ken
そうなんですよ
だからこの本読んだだけでスペシャリストになれないけど
最初に読む一冊として
深掘っていくための
どこから
論文読んでいったらいいんだろうかなとか
どこから深掘っていったらいいんだろうかな
っていう最初の一冊として
本当に教科書ですね
おすすめですね
Yosuke Asai
なんかパッと聞いた感じ
すごい難しそうな感じがしたんですけど
最初の方とか特に
とっつきやすそうな感じですかね
ken
そう
パート1パート2パート3に分かれていて
パート1とか結構
とっつきやすいかな
そもそもデータベースとは何かみたいなところから
始まってるんで
Yosuke Asai
はいはいいいですねそれは
ken
そうSQLというか
クエリ言語って何みたいなところとか
あとストレンジエンジンって何みたいなところから
入ってるので
逆に言うとその各データベース
例えばMySQLとか
Apacheか不可の
コードとかはほぼ出てこないですし
使い方とかも出てこないので
本当に抽象度とか高い
Yosuke Asai
はいはい
ken
だからこそ
だからこそ
そうそう誰でも楽しめるし
2023年でも
読む価値があると思ってます
Yosuke Asai
いいですね楽しみになってきました
ken
そう
だからこのポッドキャスト収録の目的としては
アサヤさんがこのDDIを読み切る
モチベーションを植え付けるっていうところ
Yosuke Asai
いやもう
モチベーション上がりましたねこれだけ
上がりました
ken
じゃあここら辺で収録終わりましょうか
Yosuke Asai
一回解散しますか
ken
まだ7分しか撮ってない
というのは冗談です
はい
じゃあマーティン先生の紹介していいですか
僕彼すっごい好きなんですよ
でさっきアカデミズムって言いましたけど
ユニバーシティブケンブリッジでね
長い間そのディストリビューティッツシステムを
研究されてた方で
僕これ収録の準備するときに
知ったんですけど最近ね
ドイツのミュンフェンにある
テクニカルユニバーシティブミュンフェン大学の
ディストリビューティッツシステムの
チェアになってる人ですね
多分チェアになってるから
昇進したのかなと
思うんですけど
2014年前に
アカデミーに入る前が
リンクトインのシニアソフトウェア
Yosuke Asai
エンジニアの方あったんですよ
ken
そう
ご存知かどうか分かんないですけど
リンクトインって当時やっぱり大量の
データを分析する
という意味でデータパイプラインとか
あとアパッチ系へのコミッターも
結構多くてツイッターとかと同じような
感じですよね
アパッチカフカをすごい使ってたんですよ
09:02
ken
リンクトインって
後でちょっと触れますけど
Jクレプスっていう
アパッチカフカのコクリエーターみたいな
人がいてですね
僕の想像ですけど
リンクトインを見る感じ被ってるんで
マーティン先生はJクレプスとかと
リンクトインに在住
してる時に出会ってるんじゃないかな
と思ってるし
Jクレプスっていうのは
コンフルエントって会社ご存知でしたっけ
過去話したね
アパッチカフカ会でね
アパッチカフカの
SaaS
ソフトウェアザーサースの会社なんだけど
それの創業者でもある
なるほど
Yosuke Asai
めちゃくちゃ伝説的な方ですね
ken
伝説的な方たちですね
すごいですね
うん
Yosuke Asai
しかもケンさんと同じく
イギリスで結構いらっしゃって
ヨーロッパ仲間っていう感じですか
ken
確かにヨーロッパ仲間ですね
今もドイツにいらっしゃるだと思いますし
ミュウヘンだからね
ソフトエンジニアとしても
結構バリバリな方で
もともとアパッチアブロって聞いたことありますかね
これは
シリアライゼーションの
フレームワークなんですけど
アパッチアブロ
Yosuke Asai
カフカで使われる型みたいなやつでしたっけ
ken
そうそうそうよく使われますね
だからそのアパッチカフカに
入れるデータって基本
バイナリーなんですよね
Yosuke Asai
はい
ken
そのバイナリーにスキーマという構造を与えたいと
要するに何でも入れられちゃうから
そのスキーマ
例えばプロトコルバッファーみたいなものであったり
フルエントリーで使われているメッセージパックみたいなものであったり
JSONもそうですけど
ある程度スキーマを与えて
かつ最適なバイトサイズで
なるべく少ないバイトサイズにして
はい
流すことによって
アパッチカフカを流れる
ネットワークを流れるデータの
サイズというのを最適化できる
アパッチカフカに
イベントをプッシュする側と
受け取る側で
同じスキーマを使うことによって
そのバージョン
バージョン
バージョニングを導入するみたいな感じですよね
によって
例えば
こう
データをプッシュする側には
こういうカラムがあるんだけど
コンシューマーでは
こういうカラムを意図していなくて
そこでバグが発生するみたいな
そういったものをスキーマを入れることによって
防いだりするんですよね
なるほど
スキーマ定義を書いてみたいな
それのやつがアパッチアブロ
彼はアパッチアブロとアパッチカフカのコミッターであって
Yosuke Asai
バリバリのエンジニアされてるんですね
ken
そうそうそう
12:00
ken
だから
現場での経験がめちゃくちゃあり
その後アカデミーに入って帰っている方なんで
なんか読んでてもアカデミズムすぎないし
ちゃんとなんか現場のエンジニアとして読んでても面白い
ちゃんとその具体例でもちょくちょく出てくる
数式ばっかりでもないし
Yosuke Asai
論文みたいな感じというよりは
より書籍として読みやすいっていう感じがあるんですね
ken
そうそうそう
本当にそう
だから彼が人生で読んだ何百本という論文を
まとめて各章にしてくれたっていう本ですね
僕の印象
Yosuke Asai
最高ですね
ken
最高最高
だから論文読むって結構ハードル高いじゃない
はい
だからどっから読んだらいいか分かんないみたいな
最初とかそうじゃん
なのでまずはこの本読んで
例えばもうちょっとシリアライゼーションについて
詳しくなりたいなと思ったら
シリアライゼーションの論文を
彼がリファレンス書いてくれたとこから読み
みたいな感じになるかな
なるほど確かに
Yosuke Asai
論文の入り口にもなるっていうのがまたいいですね
なんていうか興味を持つきっかけになるというか
ken
そうそうそう
で論文って大抵一つ面白いのを見つけて読むと
その論文
その論文が引用してる他の論文にこう
枝葉のようにどんどん広がっていけるじゃない
Yosuke Asai
はい確かに
ken
最初の第一歩を見つけるいい本ですね
はい確かに
Yosuke Asai
なるほどいいですね
ken
はいでねもうちょっとマーティン先生の話していいですか
Yosuke Asai
はいお願いします
ken
はい僕はねもう人生で一度お会いしてみたい
伝説的プログラマー
五本の指に入る人かな
なんか普通に会えそうだけどな
ヨーロッパ来たし
確かに
公演とかしてたらね
Yosuke Asai
公演公演であるんですか
あ公演
ken
カンバレンスカンバレンス
Yosuke Asai
カンバレンス行ったら
確かにもう会えそう
そうですね
ken
ごめんねあの日本語のイントネーションがさやっぱりこう
Yosuke Asai
いやでも公演は確かに一緒ですね両方とも
ken
うん
はい
えーその
リンクトインにいる時にね
アパッチサムザっていう
ストリーミングフレームワークを作っていたんですよ
アパッチサムザって聞いたことないですよね多分
Yosuke Asai
ないですねこれは
ken
うん
日本であんまり有名じゃないかなと思うんだけど
これはそのリンクトインが
もともと
2013、4年ぐらいまでは
アパッチカフカとデータバスを利用していたんですよ
あれを利用したバッチングシステムに
あのアパッチハドゥープって
マップリデュースで有名な
ゾウさんのアイコンのやつ
Yosuke Asai
ありましたね
ken
あれを利用したそのラムダアーキテクチャっていうのを
組んでいたんですよ
おー
ラムダアーキテクチャは
説明しておいた方が多分いいですよね
ラムダアーキテクチャは
この本にも出てくるコンセプトなんだけど
15:01
ken
簡単に言うと
データパイプラインを作る時の
設計パターンを
作るパターンの一つです
だからフレームワークの名前とかじゃないし
AWSのラムダは関係ないですね
うん
これはそのラムダアーキテクチャっていうのは
データパイプラインを2つに分けましょうと
はい
1つはバッチレイヤー
Yosuke Asai
はい
ken
2つはスピードレイヤー
うん
バッチレイヤーっていうのは
大量のデータをバッチング
だから1ミリオンレコードを
30分に1回みたいな
とか
1万レコードを5分に1回みたいな感じで
バッチして
処理しましょうみたいな
なんかソフトウェアとか書いてるとさ
バックグラウンドジョブに重たい処理を移行して
計算して出てきたものを
こう
UIに出すみたいなよくあるパターンじゃないですか
はい
バッチ
だけどそのバッチシステムの欠点って何かっていうと
ラグがあることですよね
Yosuke Asai
そうですね
ken
例えば
5分に1回の
バッチングシステムしてると
UI上のデータって
5分間のラグがあるじゃないですか
はい
リアルタイムに反映されないですよね
Yosuke Asai
うん
ken
そう
じゃあその問題をどう解決しようと
するかって時に
ラムダアーキテクチャが提唱してるのは
バッチレイヤーの上に
スピードレイヤーっていうものを作ると
Yosuke Asai
ほう
ken
うん
例えばね
じゃあ具体例で
具体例で
じゃあなんか
株価が
株価の
株価の
まあなんか何でもいいんだけど
プライシングとかを表示させようとした時に
リアルタイムで表示させるシステムを作りますと
Yosuke Asai
はい
ken
で過去5分前までの
なんか過去の累積は
バッチシステムで
まあ処理して計算すると
問題は
過去5分のラスト5ミニッツのリアルタイムデータを
どう盛り込むかということなんですよね
Yosuke Asai
はい
ken
うん
で例えば毎秒
毎秒更新したいみたいな感じしたら
毎秒バッチを走らせなきゃいけないですけど
毎秒バッチを走らせるって
すごいコストかかるじゃないですか
はい
そのジョブを実行するCPUもそうですけど
毎秒こう何万レコードもクエリするようなものを
データベースに投げてたり
データベースがこうパンクしちゃうので
うん
でそこでスピードレイヤーってのを何をするかっていうと
5分前までの大量のデータは
バッチシステムが更新すると
でその少ない差分
ラスト5ミニッツのちょっとだけのレコードは
スピードレイヤーっていうリアルタイムのログが入ってくる
まあマス分ですよね増分
でリアルタイムで処理して
バッチレイヤーで重たい処理を使って計算した
ベースの数字とスピードレイヤーを流れてきた
18:05
ken
リアルタイムのデータを最後にガッチャンコして
なるべく正確性の高い情報を出しましょうっていう設計パターン
Yosuke Asai
あー難しそうだな
ken
そうそうそうだからバッチをバンバン回せない
でもリアルタイムなデータが欲しいって時に
ラムダアーキテクチャーのを作るっていう感じ
Yosuke Asai
なるほど
ken
はい
でまあちょっと話それちゃったんだけど
でまあラムダアーキテクチャーを組んでました
だけどこうアパッチハドゥープンを使って
アパッチカフカも使ってデータベースも使ってってことで
当時2014年のリンクトインでは
なんかこういろんなフレームワークを組みつないでいたので
社内によって標準化されたコードベースがなかったり
チームごとにハドゥープンのジョブも変えて
カフカのコンシューマーも変えてみたいな
結構バラバラのストリームプロセッサーみたいなのを実装して
メンテナンスコストも上がって
チームによって保守性運用知見もバラバラだったんですよね
例えばこのチームではカフカのカスタムのコンシューマーを変えてて
それが壊れたらこういう風に対応しなきゃいけないんだけど
こっちでハドゥープンのジョブとカフカをいい感じに組み合わせてみたいな
運用もバラバラだったと
要するに標準化されてないことによっていろいろ問題があったと
ABテストもしづらいみたいなビジネス上の課題もあり
ってことで
アパッチカフカの上に実装された高級フレームワークがアパッチサムザ
当時彼らがやりたかったラブダアーキテクチャっぽいことを
カフカの上でできる
だけどハドゥープンはもう使わないように
ハドゥープンの依存をなくせるようにしたっていうのが
彼らのアパッチサムザっていう新しいフレームワークがやりたかったことなんですね
あんまりメジャーじゃないって言ったのは
一応2023年現代においてあんまりアクティブに実装されてるわけではなくて
2018年時点ではメジャーV1が出ててね
だからメジャーバージョンがアップデートされてるんで
プロダクションレディーって彼らが判断したんでしょう
その時点でリンクトインも使ってるよって言ってたし
今公式ページを見る感じ
そのeBayとかトリップアドバイザーとかスラックでも使われてるっぽいんですけど
僕は中の人でないので実態は知らなくて
去年の5月にバージョン1.8でバックフィックスメインのアップデートがしているぐらいなので
なんかこうアクティブに活動されてるってよりは
割と枯れた技術扱いな
メンテナンスモードなのかなという気はしてるがちょっと分かんないですね
Yosuke Asai
これはリンクトインが開発に結構関わったわけでなく
元からあったフレームワークを使ったっていう感じじゃないですかね
ken
多分その彼らマーティン先生たちがリンクトインの中で作り始めて
それをその社内に閉じ込めるだけじゃなくて
アパッチサムザというオープンフレームワークにすることでよって
他の使えるようになったと理解してますね
これにさっきもちらっと言った
21:04
ken
アパッチカフカのコクリエイターでJクレップスもちょっと絡んでて
はい
うん
Jクレップスはリンクトインで最終的に2014年に
プリンシパルスタッフエンジニアまで上り詰めた後に
その年に辞めてコンフレントを創業してるので
Yosuke Asai
はい
ken
多分サムザの開発にはもうそれ以降関わってない気はしますけど
なるほど
そうそうなんで
だからここ本当に2013年代から2020年代後半までの
ストリーミングを支えてきた重要人物の一人とも言えますね
マーティン大先生は
Yosuke Asai
超重要人物ですねそれは
ken
うんそう
でじゃあなんでこんなDDIAについて熱く語ってるのかっていう
僕とDDIAの思い出話っていうなんかしていいですか
Yosuke Asai
友人みたいな感じだと思ってた
僕と親友の思い出みたいな
はいお願いします
ken
はいすいません今日はちょっと自分語りが多いですが
はいお願いします
はいお願いします
Yosuke Asai
いやもういいですはい
ken
ありがとうございます
でクックパッドにね2017年から2021年所属していた時に
DDIA本のオリジナルを英語で読む機会があったんですよ
臨読会がその日本オフィスのグローバルメンバーによって
なんかやりますよみたいな社内ブログがあったんですね
でまぁ4,5人ぐらいかな
僕は当時もちろんDDIA本知らないし
当時はデータベース
なんてあんまり
ただなんかマイシークエルちょっとレールズで使うぐらいの
あのまぁバックエンドエンジニアだったので
DDIA本を読みたいという目的ではなく
まぁ英語で議論できるスキルを身につけたいということで
まぁ一人だけポンとこう
あのグローバルメンバーに混ぜてもらって
まぁ臨読会混ぜてもらったんですよ
まぁ結構当時英語が多々しいながらもね
まぁみんなによくしてもらったというのはいい思いなんですけど
まぁ一旦読み始めたらね
読み始めてみるとですね
まぁなんか当初の英語力アップみたいな
なんかちっちゃい目的なんかよりも
全然もうその本自体が面白すぎて
のめり込んでしまったんですよ
はい
そう当時は広告配信システムの実装者として
さっき言ったラムダアーキテクチャとか
あとはノースイクエルのデータベース
まぁダイナモDBのスキーマ設計とか
まぁ必要な知識を業務で求められるたびに
都度仕入れてたんですけど
なんかそのデータベース設計スキーマ設計
データベースを使ったそのソフトウェアアーキテクチャリングの
根幹にある知識が体系にまとめられてる
もう素晴らしい本で
当時僕がなんか
例えばダイナモDBのスキーマ設計をちょっとやりかけて
なんか面白いけど
ここ詳しくなるために次どこ行ったらいいんだろう
よくわかんないなって時に読んだんで
24:00
ken
これはもうなんだろう
次の僕のキャリアを
方針を決めてくれる最高の本だと思って
でもう一気に好きになって
しまってですね
はい
もう本当にDDIAに
恋に落ちてしまって
それを本当に読んで
でそこで結構割と
データベース中心としたキャリアを
掴んでいきたいなって思ったんですよ
その時に
Yosuke Asai
そうだったんですね
たまたまというか
その輪読会がなければ
出会ってたかわからないような
感じではあったんですかね
データベースに詳しくなりたいと思って
見つけたというよりはたまたま見つかった
っていうのは
すごいですねタイミングもバッチリだし
いいですね
ken
最高に素敵な本との
出会いでしたね
その時にポリグロットな
ポリグロットなっていうのは
いろんな種類のデータベース
例えばMySQLみたいな
RDBMSとか
グラフデータベースとかDynamoみたいな
NoSQLとかストリーム処理思考の
ApacheかFukaとか組み合わせた
データパイプラインとかを
スケーラブルかつリライアブルに
運用できるようなエンジニア
かっこいいなと思って
まあマーティン先生
すごいかっこいいなと思って
こういう人になりたいなと
2018年に思ってと
いうことが
僕と
彼との思い出でした
Yosuke Asai
もうなんか
親友を超えて恋人レベルの
ken
あれですね
本当でしたね
Yosuke Asai
すごい
いいですね
なんかすごいいい出会いですね
本当に
今の研鑽を作り上げた
本みたいな感じですね
まさにそう考えると
ken
だからその後とか結構
Cookpadグローバルに移った後とか
ApacheかFukaに携わることができた時とか
広告時代も
Apache Kinesisを使って
リアルタイム分析
パイプライン作ることができたりとかも
割と根本の
モチベーションはこれを読んで
実践したいというか
これを自分噛み砕いて
現場に導入する
購入したいっていうのが
もうずっとあったし
イギリスに来てから
Neo4jに入社したのも
一つのグラフデータベースっていうものを
今度
この本は割と浅く広くっていう本なので
一つのデータベースについて
深く掘り下げてみたいっていうのが
あったりとか
結局でその後
ショッピファイにSREとして入ったのも
ショッピファイってこの
ApacheかFukaとかMySQLをかなり
グローバルなスケールで
運用してる
チームなので
やっぱりそのグローバルレベルで
ApacheかFukaを
運用してる裏側ってどうなのかな
っていうのを知りたいなっていうところで
ショッピファイに入ったりとか
本当にその転職転職の
合間に
自分の
方針となってきた本ですね
27:00
Yosuke Asai
いやもう
まさにキャリア選びの上でも
軸になってる本
って感じですね
なんかいいな羨ましいですね
ken
こういうバイブルのような本に
Yosuke Asai
出会えたっていうのが
いいですねなんか
ken
キャリアの指針になる
Yosuke Asai
転職もするときも
それぞれちゃんと理由があって
やりたいことを
一つ一つこなしながら進めていくっていう
ken
なんか漫画みたいな感じで
少年漫画
Yosuke Asai
少年漫画みたいな
一個一個やっつけていくみたいな
いいですね
ken
そう
どう?
読みたくなった?
Yosuke Asai
どんどん上がってます
読みたい度合いが
もう一回やめて読みたいくらいですね
ポッドキャスト
ken
なるほどちょっと
まだやめないでください
Yosuke Asai
もうちょいやりましょう
ken
もうちょい
なぜかというと
そんなアサイさんにね
おすすめの読み方を
教えようかなと思います
さっきも言ったけど
一回読んで終わりじゃなくて
キャリアを進めながら
戻ってくるような本なので
ページ数結構あるんですよ
だから一気通貫で読もうとして
途中でだれて
っていうのが
すごいもったいないパターンなので
インデックスを読んで
興味あるチャプターをつまみ食いで
全然いいと思いますね
はい
よく分かんないと
チャプター飛ばしてもいい
Yosuke Asai
うん
今一番自分に必要なものから
読んでいくみたいな感じで
ken
そうそうそう
それで全然いい
できればね
周りで一緒に読んだ人とか
と議論しながら読むと
いいかな
まあ
同時並行じゃなくてもいいから
読んだ後で
なんか
30分くらい
話してみたりとか
もしくは
このポッドキャスト使って
読み終わったときに
浅いDDIMを読んだの巻きで
ちょっとまた収録してみたほうが
いいかなと思います
Yosuke Asai
いいですね
ken
確かに
Yosuke Asai
いいのやってみたいな
はい
ken
そう
っていうことできっと
リスナーの方にも
読みたいと思ってくれた人が
もしかしたら
2人くらいはいるかなと思うので
簡単に構成を話すと
パート1、2、3と分かれててですね
パート1が
チャプター4つぐらい
って
パート1が
そのデータベース単体について
触れてる本なんですね
データベースの
1インスタンスについて
そもそもデータベースって何とか
SQLのような
クエリ言語って何とか
ストレージエンジン何
みたいな
その単体のデータベースを
知るための基本用語について
紹介してるのが
チャプター1、2、3くらいかな
はい
でチャプター4だけちょっと特集で
スキーマ設計とか
メッセージパック
フルエントDで使ってる
メッセージパックとか
さっきも出た
アパッチャブロみたいな
そのシリアライゼーションフレームワークの
コーデックについて
紹介されてますね
これを聞いて
何言ってるんじゃ
よくわからんって人は
もう飛ばしてもいいかなと思うけど
きっといつか戻ってくる箇所かなと思う
スキーマ設計とかね
必須なので
はい
パート1で
単体のデータベースについて
30:00
ken
理解しました
ってところで
パート2の
その分散
システム環境で
データベースを考えると
どうなるのっていうのが
パート2
はい
うん
でこれは
AWSとかね
GCPでこう
分散のマネージド
データベースを使ってると
よく聞いたことある話が
出てくるかなと思うんだけど
うん
データを
レプリケーションするって
どういうこと
っていうについて
まるまる
ワンチャプター書かれてるんですよね
Yosuke Asai
うん
ken
うん
分散システムで
レプリケーションするって
難しいんですよ
Yosuke Asai
いやですよね
なんかこう
ken
Mac上で
コマンドC
コマンドC
コマンドC
ken
コマンドVでコピーみたいな
そんな簡単な話じゃなくて
Yosuke Asai
うん
ken
ラグが出てきたりとか
はい
デプリケーションとか
どうやってレプリケーションするの
そもそもみたいな話
Yosuke Asai
はい
ken
あとはこう
パフォーマンスを上げるために
レプリケーションだけじゃダメで
シャーディング
分割
しなきゃいけない
ですよね
シャーディングを実装してる
データベース
たくさんありますけど
そのシャーディングって何
みたいなことについても
ワンチャプター
まるまる書いてたりですとか
Yosuke Asai
はい
ken
はい
でシャーディングするだけじゃなくて
複数の分散
データベースシステムにおいて
トランザクションを保護するのって
めちゃくちゃ難しいよね
っていうことも書かれてるんですよね
Yosuke Asai
うん
ken
例えば金融システムとかね
それこそ仮想通貨系とかね
トランザクションで保護しないと
なんかこう
二重決済になってしまったりとか
買ったのに買ってないみたいな
あったりするじゃないですか
Yosuke Asai
ありますね
ken
うん
分散環境でトランザクションを
保護するってどういうこと
ってについて
脈々と研究されてきたいろんな概念を
紹介しながら書かれてて
でそれらの複数のデータインスタンスたちが
例えば世界中に散らばってる
データインスタンスたちが相互に
会話をして
会話してっていうか
まあ比喩ですけど
コミュニケーションしあって
誰が言ってることが正しいかみたいな
合意を取る必要があるんですよね
はい
そのコンセンサスアルゴリズム
まあラフトとかよく有名ですけど
じゃあコンセンサスアルゴリズムって何
なんで必要なのっていうのについて書かれてる
章もあったりとか
本当にこのパート2を読むと
その分散システムとは何か
分散システムでデータベースを運用するって
どういうことっていうのが分かります
Yosuke Asai
そのコンセンサスアルゴリズムは
この前のカフカ会でちょっと話があったような
そのコントロールノードを決めるみたいな
話と結構リンクがあるんですかね
ken
ありますあります
もうマツタックスの通りで
例えばゴシッププロトコルとかもあるけど
ゴシップってつまりさ
噂話が広がっていく様子じゃない
はい
だからその各リージョンに
で動いてるデータベースインスタンスを
人に見立てて
まるで噂が分散していくかのように
まあ新しいリーダーって誰だよってのを
33:01
ken
広げていくみたいな感じなんですけど
そこら辺が本当に読むと
分かった気になれます
本当に分かったかどうか分かんないけど
うんうんうん
これを読んでラフトコンセンサスアルゴリズムを
実装はできないかもしれないけど
分かった気にはなれる
Yosuke Asai
それだけでも違いますよね全然
ken
そうそうそう
でここら辺の章で聞かれることっていうのは
ちょっと日本は分かんないけど
イギリスとかでこう転職活動
SREとして転職活動してると
ソフトウェアアーキテクチャ面談とかで
結構出てきたりするので
そうなんですね
Yosuke Asai
やっぱり今だとAWSとかで
RDSとか使ってインターネットベース作ると
簡単にライターとリーダーが分かれてたり
マルチクラスターみたいなのを簡単に作れるんで
そういうのを実際にどうやって動いてるのかっていうのは
確かに気になってたんですごい
読んでみたいなと思いますねやっぱり
ken
そうですね
Yosuke Asai
難しそうでありますけど
ken
なので海外でSREをする
アサヒさんという意味で言うと
パート1は知らないところ
もしくは興味あるところだけつまみ食いした後で
はいはいはい
パート2は全部読む
って感じがいいかなと思います
パート3は
もうちょっとこう
ソフトウェアアーキテクト寄りな話になって
パート1、2の前提知識を
踏まえた上で実用アプリケーションを
設計していくときの設計パターンについて
考えていく
チャプター10がバッジアプリケーションですね
HadoopとかMapReduceみたいな
話バッジアプリケーションってどういうことできるとか
あとは
チャプター11はそれこそ
バッジカフカみたいな
ストリーミングって何?みたいなところを
話していって
例えばそれぞれのバッジとか
ストリーミングを作るときに
パート2で話したレプリケーションとか
シャーディングってこう関わってくるんですよ
みたいなところが書かれているので
はい
だからアーキテクトに携わる
ことになったり
例えば新しいチームで
バッジアプリケーションを
運用するんですよ書くんですよってなったら
つまみ食いし読むっていうのがいいかな
うん
Yosuke Asai
この辺もすごい興味あります
やっぱり
データパイプラインとかに関わることも
あるので
その辺どうやってデータを動かしていくのが
効率いいのかみたいな
とかはやっぱり
読みに行って知りたいですね
ken
うん
ぜひぜひ
最後のチャプター12かな
それはその先にあるさらにボリグロッタの
データベースを設計していくときとか
ちょっと当時にしてはかなり
こう
フォアドル
キングな話が入っていたけど
今読み直しても面白いかな
ここら辺興味あればぜひということで
読むといいかもしれない
Yosuke Asai
はい
ちなみにけんさんはこれ全部英語で読んだんですか
ken
えーとね
英語で読んで日本語で読んで
今は英語の本を手元に持ってますね
だからどっちも買いました
はい
Yosuke Asai
どっちがおすすめとかちなみにありますか
36:02
Yosuke Asai
日本人目線で
日本人目線で言っても変か
ken
これね技術書を英語で読むか
日本語で読むかって話ですよね
Yosuke Asai
そうですね
ken
僕はなんか英語で読むべきだっていう人ではないので
コンセプトを理解しやすい方でいいと思いますよ
日本語で読むのが理解できるって人は
日本語で読めばいいと思うし
英語で読む方が理解できるって人は
英語で読む方がいいと思う
なるほど
僕の話で言うと
僕はもう本当に
英語で発信しなきゃいけないんですよね
仕事してる間
グローバル環境なので
なんで日本語で入れちゃうとですね
出てこないんですよ口から
Yosuke Asai
訳がわからないってことですね
ken
だからもう英語で読むってのを
日本にいるときからずっとやってるから
もうあんまり
だからもう過去4,5年は
日本語で技術書を読むときは
日本人が書いた技術書を読むときだけなので
基本英語をファーストだから
英語で読んでますけど
別にみんな英語で読まなきゃいけないと思わない
別に日本のスタートアップで働いてて
日本人のスタートアップで働いてて
日本でアウトプットして
母語が日本語なら普通日本語でいいんじゃないかな
と思いますけどね
Yosuke Asai
そうですね確かに
やっぱりどうやっても日本語で読んだほうが
理解は早いなって今自分ではそうなんで
日本語なのがいいときもあるんですけど
ただやっぱり英語の文献とか
記事とか読んだりしてると
徐々に読むの早くなってくんで
本も英語で読むっていうのは
ちゃんと挑戦してみたいですね
ken
朝井さんはね英語環境で働いてるから
英語で読むっていうのはちゃんと挑戦してみたいですね
ken
どっちも買ったらいいんじゃないですか
どっちも買ってマーティン先生にぜひ
マーティン先生の懐を温めてあげてください
Yosuke Asai
謎のなんか
宣伝が入りましたけど
ken
ちょっと宗教っぽくなってきて嫌です
ごめんなさい
Yosuke Asai
買いますとにかくどっちか
ken
完全にお伏せですね
これはね
Yosuke Asai
伝道師みたいになってます
ken
最後に
限界じゃないですけど
この本はあくまでそれぞれのキーワードについて
表層を述べてるだけなので
コードとか出てこないので
それはいいとこ悪いとこでもあり
これを読んだだけでデータベースエンジニアになれるか
って言うともちろんなることはできないから
もしこれを読んで例えば
よこそ
当時僕がネオフォージに行ったときみたいな
データベースに詳しくなりたいって人は
一つデータベースを選んで
コミットしてみたりとか
あとその同じくオライリーから出してる
アパチカサンドラのコミッターの人が書いた
データベースインターナルズっていう本があるんですけど
それはもうちょっと
データベースを実装するという側面で
もっと詳しいコンセプトに
書いてる本なので
それを読んでみたりとか
縦に掘っていくっていう本に
行くといいかな
もしくはそこら辺まだ興味ないよってことであれば
ここで終えて
他の本でもいいと思うんだけど
これは横に広げる本なので知識を
39:01
ken
もし縦に広げる必要が
あったり縦に広げたいって言うんだったら
これだけじゃ
限界じゃないですよ
限界があるよっていうとこだけ
一応注意としては
なるほど
Yosuke Asai
入り口として使ってくださいねってことですね
とりあえずデータベースの
やっぱり先ほど
おっしゃった臨読会みたいなの
やってみたいなと思いましたね
一人で読むよりもやる気が出るし
ken
いいですね
Yosuke Asai
もしこれを聞いて興味がある方いたら
連絡していただければ
一緒に読んでみませんかみたいな
やりたいですね
ken
じゃあもうやりましょうか
Yosuke Asai
やります
ken
僕も参加したいですそれ
Yosuke Asai
じゃあちょっとツイッターとかで
公開の時に宣伝しますか
ken
それはいいかもしれない
はい
ということで以上
僕のDDIAの
思いを聞いてくださり
ありがとうございました
Yosuke Asai
こちらこそありがとうございました
読んでないのが恥ずかしくなりました聞いて
いやーすごい
でも本当に
ken
これから
Yosuke Asai
入れば間違いないっていうことがよくわかったので
ken
データベースについては
Yosuke Asai
読みたいです
ken
なんか壮大にこう
アサヤさんにマウンティングしたみたいになって
申し訳ないんですけど
Yosuke Asai
いや違ったことないです
ken
それでも読んでほしい
本当にいい本だから
ぜひぜひ
はい
Yosuke Asai
いやケンさんここまで言うの結構珍しいですよ
ken
なって
Yosuke Asai
相当思い入れがやっぱあるということで
いい話を聞けました
ken
はい
じゃあ今日はこれぐらいで終わりたいと思います
これぐらいにしよっか
はい
うん
じゃあありがとうございました
Yosuke Asai
ありがとうございました
40:47

コメント

スクロール