00:07
スピーカー 3
今日は、DDIAの第9章、一貫性と合意という章を読んだ後の収録をします。
よろしくお願いします。今日は、Kenta Kudoさんにお越しいただきました。
Kentaさんは、前回の臨時読解から参加していただいていて、今日はゲストにお呼びしています。
Kentaさん、よろしくお願いします。
スピーカー 1
よろしくお願いします。
スピーカー 3
Kentaさん、前回参加されてから、収録されてから何か変化とかありましたか?
スピーカー 1
変化、そうですね。前回、日本に住み始めて2、3ヶ月みたいな感じで、そこからまた半年ぐらい経って、
なんか色々変化はあるんだけど、ついていけないっていうか。
スピーカー 2
変化がありすぎて。
スピーカー 1
そう。
簡単には話せないくらいの、成果があるじゃないですか。
とりあえず、生きてるみたいでよかったよ。
生きてるかどうか、わかんないけど、生きてはいいよ、生きてるよ。
よかった。
変化、そうだね。
その仕事としては、フリーランスっていうのを一応やっていって、
そこでもクライアント変わったり、みたいな変化があるのと、
またあとは、プライベートだと、結婚をしまして。
スピーカー 3
おー、おめでとうございます。
スピーカー 1
ありがとうございます。
スピーカー 2
それは大きいね。確かに変化、色々あるね。
スピーカー 1
そう、なんか色々。
スピーカー 3
彼女さん、今の奥さん、海外で会われたみたいな話を伺った気がするんですけど、
スピーカー 1
はい、会ってます。
ロンドンで会って、去年の暮れに日本に住みたいってことで、
一緒に日本に来たって感じなんですけど。
スピーカー 3
はい。それは大きな変化ですね。
スピーカー 2
大きいね。おめでとう。
スピーカー 1
ありがとうございます。
スピーカー 3
フリーランスの話も気になります。
フリーランスされるのは、日本来てからが初めてですか?
スピーカー 1
うーん、まあ、副業みたいなことは、ちょっとこう、
はい。まあ、副業みたいなことは、ちょっとこう、
やったりはしたんですけど、
まあ、完全にフリーランスでみたいなのは初めてですね。
ただまあ、エージェントを経由して案件をもらうので、
正直そんな、働き方がすごい変わるかっていうと、そういうのはないですね。
03:03
スピーカー 3
これまでの副業のような感じで、仕事ができているというか。
スピーカー 1
まあ、フルタイムとそんなに大きな変わりに感じない。
そんなに変わらない。
うん、感じない。
スピーカー 3
なので、やることは一緒ですか?
スピーカー 2
タイムゾーンは、というか、働いている会社は日本の会社?
スピーカー 1
うん、日本の会社。日本のエージェントで日本の会社って感じ。
スピーカー 2
そこはさ、しばらくさ、イギリスで2社、4、5年ぐらい働いてたわけじゃない?
スピーカー 1
うん。
ワークプレイスの環境としてのギャップとかは感じなかった?職場環境として。
まあ、ずっとリモートでやってて。
スピーカー 2
うん。
スピーカー 1
まあ、ギャップらしいギャップっていうのはあんまり感じないかな。
ただ、もちろんカルチャー的な部分は全然違うから。
うん。
うん。なんだろうな。
まあ、すごく日本的なカルチャーと、でも、それでもテック系の会社ってかなりリベラルじゃないけど。
スピーカー 2
風通し。
風通しがいいし、とか。
スピーカー 1
そう。結構、まあ、今のクライアントもスタートアップだから、すごいフラットで、だから、すごい、まあ、中間って言ったらあれなんだけど、その、いわゆる日本の企業っていうのと海外のスタートアップっていうところの間ぐらいにあるのかなっていうようなイメージかな。
スピーカー 2
だから、すごくギャップを感じるっていうのはない。
スピーカー 1
うん、確かに。
スピーカー 3
うん。
企業としては、世界で共通しているところが、まあ、やっぱり。
スピーカー 1
やっぱ似たような、まあ、カルチャーというか、形態というか、になるのかなっていうのは、やっぱ同じようなスピード感を持ってやろうと思ったら似てくるのかな。
まあ、たぶん日本の会社の方が、はい、参考にみたいな部分が大きいとは思うんだけど。
スピーカー 2
ケンタ君は今は、その、どういった技術とか、ジョブロールとか、どういった技術を持っているんでしょうか。
ジョブロールとかで働いてる。前は、例えば、まあ、バックエンドエンジニアだったり、まあ、割とフロントを合わせて、トゥルーフルスタックみたいな感じで、何でもするみたいな時期もあったと思うけど。
例えば、そういった、その、エージェントを通してさ、仕事をもらうときって、ある程度、制約をつけたりするの?例えば、Goを使ってる会社でとか、といっても何でもやりますみたいな感じなのか。
スピーカー 1
まあ、方向性みたいなのを決めるかな、こういう。まあ、言語で決めることもあるし、黒字で決めることもあるし。
プロジェクトで決める、まあ、探すっていう方法もあると思うんだけど。まあ、ある程度の方向性を持った上で、いろいろ紹介してもらってっていう感じになるかな。
で、今、自分としては、まあ、フルスタック、まあ、フロントもバックもできるよ、バックの方が得意だよみたいな感じで探してって感じかな。
06:07
スピーカー 3
じゃあ、今、読んでるようなデータベースの知識とかが、まあ、今後、技術選定とかでいきそうだなっていうところもありますけど。
うん。
うん。
スピーカー 1
まあ、もちろん技術選定でもいきますし、っていうのも、まあ、データベースってなったときに、まあ、SQL系はそれなりに分かってるつもり、まあ、もちろんアプリケーションエンジニアとしてはしてるんだけど、分かってるつもりだけど、そこからそのノーシークエルと比べたときに、どういう点を見てどう選べばいいのかみたいなのはあまり経験がないんで。
まあ、そこはすごい参考になるなっていうのと。
うん。
あとは、もっとコンピューターサイエンスに近い領域の方の理解を伸ばさないと、ここから先、レベルアップしていくためにはそういう部分が必要かなみたいな、ちょっと思ってて。
スピーカー 3
そうですね、あの、途中から参加していただくのが結構初だったので、声かけていただいて、すごい嬉しいなと思ったんですけど、っていうことで、そろそろ本の内容に入っていきますかね。
スピーカー 1
はい。
スピーカー 2
うん。
スピーカー 1
はい。
スピーカー 3
今日は、さっきも言ったように、コンセンサスと一貫性と合意の章だったんですけれども、皆さん、参加者もおっしゃってたように、すごい難しいというところで、毎回難しいって言ってるんですけど、今回特に難しかったかなという気がします。
スピーカー 2
難しかったね。
そうですね。
スピーカー 3
やっぱり、その本の最初で、これまでその結果整合性。
はい。
これの話があって、結果整合性が担保できるみたいな、まとめ方みたいなのがあったんですけど、それだけでは足りないというか、結果整合性だと、例えば順番が保証されなかったりとか、いつ整合性がどういうか分からなかったりみたいな、そういった問題が起きてくるので、それを実際に担保するにはどうしたらいいかっていうのが話が、今回の話で、お話ししたいと思います。
今回の章なのかなと思っていて、その中で、リニューアリザビリティ、先継性とか、あとは順序、順序をどう担保するかみたいな話とか、あとはコンセンサスアレゴリズムの話が主にされていたと思います。
スピーカー 2
分厚いしね。
そうですね。
スピーカー 2
一番挫折するとこだと思うんですよ。
だから、今回ブッククラブどうかなと思ったら、ちゃんとなんか。
ちょうど出張中で出れない方以外みんな来てて、事前のノートも僕見たとき、なんか半分ぐらいしか書かれてなかったから、あ、これはちょっと危ないかなと思って、当日望んでみたらしっかりみんな埋まってたっていうね。
09:02
スピーカー 3
そう、ちゃんと直前に皆さんちゃんと書いてくださって。
スピーカー 2
ここ乗り越えたら、あとはね、ちょっと楽しくバッチの話とかストリームの話するだけなんで。
スピーカー 3
そうですよね。
これ読んでないですけど、気楽な感じがしますね。
スピーカー 2
この章読み終わったと思ったら、まだなんか2PCの、あの、トゥーフェイズコミュニティの話が始まってとか、ディストロイビューティットトランザクションもこう、これでもかって感じで挟んできて、なかなか読んでて終わらないなって思いながら読んでた人も多いんじゃないかなと思う章ですね。
スピーカー 3
うん、まさにその通りですね。
スピーカー 1
結構やっぱり懐かしいと思う一方で、まあ概念としてはすごく重要というか、うん。
難しいというよりは、なんだろうな、まあやっぱ新しさっていうところがすごい大きいかなと思って、うん、やっぱその一貫性モデルみたいなのって、その、まあ実際アプリケーションを書くときにはほとんど意識しないところで、その、勉強するってなっても絶対に、あと、まあ頭足っていうのもあれだけど、なかなか手を出しづらいところがあると思うんで、やっぱその概念の新しさみたいなところがとってきにくさかなあと思います。
で、あとは、その、マーティン先生の書き方、論理の順序が、僕個人的には結構、なんか、独特だなと思って、だから多分素直に説明しようと思ったら、一貫性モデルにはこれこれこれのこれがあって、こういう特徴があって、比較して、で、あとはこれを実装するためにはこういう実装があるよみたいな説明かなと思うんですけど、
9章の説明的には、なんかいきなり線形可能性ドーンってきて、ちょっとこれは難しいから、ついにちょっと弱いこれがあって、みたいな、読みづらい、読みづらい、まあ、その説明の順序が特徴あるなっていうのを印象としてありました。
スピーカー 2
相当特徴あるよね。なんか、ブログとかと真逆の方向性、ブログとかで最初にこういうコンシスタンスモデルがありますみたいな感じで。
1個ずつクリアに紹介していく知識を入れるためにはいいんだけど、これはなんか割とこうナラティブというか、この本も結構特徴的なのが各章の最初に地図の差し絵が入っていると思うんですよ。気づきました?
スピーカー 3
はいはい、入ってます。
スピーカー 2
なんか地図、なんかRPGのドラクエの地図みたいなのがあって、なんか各章ごとのキーワードがなんか書いてるんですよね。
なんかここの山はなんかこういうコンシスタンスモデルで、ここには海があってみたいな。
ここの川で分断されててみたいな。なんか多分、マーティ先生が書いてるのか知らないですけど。
なんかその、そういったその、未踏の地みたいなのをこう1個1個歩きながらこう散策していくみたいな、なんか説明の仕方をするんですよね。
12:09
スピーカー 2
こうリニアライザビリティみたいなの出会って、ちょっとそいつが強すぎて倒せなかったから隣の道に行ってみたいな、なんかもっといい奴がいてみたいな。
スピーカー 3
うん。
スピーカー 2
Howみたいな感じで説明していく。
うん。
スピーカー 3
確かに。
スピーカー 2
そういうのが好きな方なのかもしれない。
スピーカー 3
あるゲームとかの経験を元にやってるんですかね。
スピーカー 1
ね。
スピーカー 3
友舎さんもなんか言ってましたけど、このリニアライザビリティの説明がまずあって、これ読んでいく中でこういうのがあるんだって思いながら読んで、でも最終的にダメなんか言って、がっかりしたみたいな話をされてて。
スピーカー 1
うん。
スピーカー 3
確かに説明の順序。
スピーカー 1
すごく面白いですね。
まあ、癖がある分、多分読み物としての面白さもあると思うんだけど、その多分一から説明されると本当に挫折するようなところだと思うんで。
スピーカー 2
知識だけにすると、これ600ページぐらいあったかな、確か。多分3分の2ぐらいになると思うんですよね。
うん。
スピーカー 3
あー。
スピーカー 2
だけど、まあそれはそれで、ずーっと知識だけが並べられてると単調というのもあって。
まあ、そういう本と読み方が多分違うと思うんですよ。
違うよね。DDIAはそういうふうにナレティブだと、章の始めから最後までまあ読むかって気になるけど、キーワードだと、問いと答え、キーワードと答えだけ書いてるような本は、自分がそのときに読みたい、章だけピックアップして読めばいいので、なんかこう。
はい。
却下辞典みたいな感じで使う読み方になるけど。
うん。
スピーカー 1
まあ、本によって特色が違うから読み方も変わるよねっていう話になるのかな。
スピーカー 3
データベースの却下辞典、地点で。
まあ、ここからさらに広げていく。
スピーカー 1
参考文献とかをさらに深読みしていくことができるような入門書って感じですかね、やっぱり。
まず、その参考文献みたいのを見に行きやすい本かなと思いましたね。
まあ、もちろん参考してる部分っていうのは章の中にいくつも100個ぐらいあるんですけど。
あ、これって実際どうなってるんだろうみたいな疑問がする、すごく分けやすいような書き方だなとは思いましたね。
スピーカー 3
あとは。
今回は、例えとかがやっぱりわかりやすかったですよね。
あの1つは、サッカー、ワールドカップの試合の例ですかね。
データベースの、あ、というか、リニアライザビリティが実現できていないと、まあ、当然、順序とかが決まってないので、読み込みの時に違うノードにアクセスしてしまった時に、
自分は変わってしまう
だからサッカーの結果とかを
この人は早く知ってて
この人は遅く知るみたいなことが
起きるっていう話があったりとか
15:02
スピーカー 3
あとは結婚式の例とかですね
結婚してください
はいっていう風に
いうのが普通に
で終わるところは
この実際の分散システムだと
新婦さんの例が出てきていて
新婦さんが
実際に結婚を認めるんですけれども
新婦さんを経由して
参加者とかに対しても
結婚をしてください
イエスって言って
それを新婦さんが
今から夫婦になりましたみたいなところを
全員が聞いていても
夫の人がその時に
何かそっと押してしまった
言ってなかったら
繰り返すときに
ちょっとすみません
うまく説明できないですけど
何かそういう例えがいっぱいあって
分かりやすかったなと思いました
スピーカー 2
この先生したの?けんたくん
スピーカー 1
結婚式してないからね
コーディネーターまだいないからね
スピーカー 2
新婦がコーディネーターで
スピーカー 3
はい
スピーカー 2
あの
自分たちがコホートってことだよね
この二層コミットのアナロジーとしては
スピーカー 3
そうですね
多分
自分たちと参加者
参加者もそうですから
スピーカー 1
その結婚式の
スピーカー 2
だから新婦というコーディネーターが
参加者であるコホートたちに
この人たち結婚するんだけどいいよねって言って
その時にコホートの一人が
コホートフェイラーが起こっちゃうと
例えば誰かがそっと押したりとか
何か第三者が入ってきて
トランザクションを横取りして
いやこの
これは自分と結婚する人だみたいな
横取ってっちゃったりすると
二層コミットが解決されないよね
っていうアナロジーですよね
スピーカー 3
はいそうです
あとは何か言葉の
何か曖昧されてなくて
似た言葉が出てくるっていうところですかね
一つはその前に出てきた
トゥーフェイズコミットと
まあ以前に出てきたトランザクションの
ところに出てきたトゥーフェイズロックの違い
まあ似たような言葉だけで
全く違うものだよっていう話であるとか
リニアライザビリティとシリアライザビリティ
それぞれこれの違いとか
この辺も一応説明があったので
混同しやすいけど似た名前っていうのも
やっぱやめてほしいなと思いますけど
まあそういうところも説明があって
まあちゃんと読めば
理解がしっきりするのかなって思いましたけど
スピーカー 2
これこういうところ
まあケンタ君の意見とかも聞いてみたいんだけど
こういうところが
結構やっぱり非ネイティブとして
コンピュータサイエンスに入っちゃうところの
欠点というかオーバーヘッドになるかなと思って
多分英語ネイティブで
いきなりリニアライザビリティって言われたら
18:00
スピーカー 2
リニアって線でしょ
で線形可能性
まあつまりどういうことかというと
こう直線のようにこう
表現できるみたいなところだと思うんだけど
いきなり日本語に線形か可動性みたいなのを
言われると一旦脳がストップしてしまうと思うんですよね
例えば英語からシンプルに
入るともっとなんだろう
スピーカー 1
シンプルにイメージできるんじゃないかなと思う
それはあるかもしれない
たとえ日本語で読んでるとしても
やっぱ線形可可能性って英語でなんて言うんだろう
みたいなのを確認したくはなるかなと思います
スピーカー 3
コーザリティとかコーザルチェーンとかも
スピーカー 2
因果関係
要するにAが来たらBが来るよねっていう
因果関係があるよねっていうところ
コーザルコンセスタンシーとか多い
じゃあ訳せって言われると難しいよね
訳せるけど
すごい学術的になっちゃう
スピーカー 3
なんか日本語に直接的な訳がないような感じがしますね
依存とかとも近いのかちょっと思ったんですけど
スピーカー 2
因果関係とも言えるしみたいな
日本語の難しいところは依存と言っちゃうと
スピーカー 3
英語にはディペンデンシーって言葉があるしねってなっちゃうよね
スピーカー 2
翻訳は本当大変なので
スピーカー 3
難しいですね
スピーカー 2
翻訳者にはね頭が上がれないですね
なんかそのアナロジーの話がせっかく出たので
ちょっと触れておくと
参加者の友久さんがリンクを貼ってくれた
Azure Cosmos DB 脳性合成レベルで紹介されてる
音符のアナロジーかな
これはちょっと新しすぎて面白かったな
スピーカー 3
いやこれ分かりやすかったですね
スピーカー 2
簡単に説明すると
Azure Cosmos DB の公式ドキュメントがありまして
そこにその5つトランザクション
コンシスタンシーモデル紹介されてるんですね
一番簡単なものから
一番強固な整合性から
イベンチュアルコンシスタンシー
弱い整合性まで
それらの5つのコンシスタンシーモデルについて
音符のGIFを使って紹介するんですよ
リンクは小ノートに貼ろうと思うんですけど
例えば一番ストロンゲストなコンシスタンシーだったら
音符のメロディが全てのノード
同じ順番で同じ音階で音楽を奏でますと
だけど例えばこれがイベンチュアルコンシスタンシーになっていくと
リーダーのノードでは徐々に
ドレミファって音階が上がっていくところが
全然別の順番で
ドミファソーみたいな感じで
来てしまうので
結果としてのメロディは全然違ったものになってしまうよね
21:01
スピーカー 2
っていうものをGIFで表現しているアナロジーがあって
これちょっと面白かった
新しい扉でしたね
スピーカー 3
これ見たら結果整合性じゃダメだって
結構あるなっていうのが本当に分かりやすい気がして
これすごいいいですね
スピーカー 2
他にアサヒさん的に
気になっているトピック
ありますか?
スピーカー 3
ケンタさんがおっしゃってたブロックチェーンの話
ちょっとその臨読会でも喋れましたけど
気になりました
コンセンサスアルゴリズムとかってブロックチェーンで
すごい重要なところ
トピックだと思うんで
僕は全然語れないんですけど
ここは今語った方がよくわかんないですけど
面白かったですね
スピーカー 2
せっかくこの本を読んだからこれを踏まえた上で
例えばプルーフオブワークとかね
ちゃんと元の論文を読んで
DDIを読んだ知識を持ってブロックチェーンを語ってみるっていうか
一回やりたいですよね
スピーカー 3
やりたいですね
スピーカー 1
やっぱすごい地続きというか
スピーカー 3
すごく隣にあるんだなっていうのを感じますね
専門家の方を一人お呼びして
スピーカー 2
ありだね
スピーカー 3
やってみたいですね
うん
スピーカー 2
だからそれでこのDDIAを読んだときに
この本は5年10年は生きる本だなと思ってましたけど
さらに10年続くかっていうと
続くと思うけど
でも例は明らかに古くなってきてるよね
例えばそれこそブロックチェーンの話とか
あとここでまだモンゴDBとかマイシークルとか
全然使われてますけど
最新のクラウドが出してる
例えばオーロラとかスパナーの例とか
もっと出てもいいと思うし
はい
なんかどこかで
どっかでツイッターかどっかで
マーティン先生もセカンドオーディション書いてるって言ってた気がするけど
ちょっとうろ覚えですけど
確かに
スピーカー 3
じゅんぺいさんとかもオーロラの例とかも上げてくださってましたけど
この辺の説明はまだこの本にはないような感じがする
スピーカー 2
その穴をこのポッドキャストというコンテンツで
ちょっとずつ埋めていけたらいいですね
そのブロックチェーンの話とかね
含めて
スピーカー 3
フィギュアさんなんか他に気になったトピックとかありますか
スピーカー 2
この本
スピーカー 3
この本じゃなくてもいいです
この書じゃなくてもいいですけど
スピーカー 1
ここまでどうして
一行チャプテリーですかね
改めて
実際よく分かってなかったんで
チャプテリーさんと pretending と良かったなというところで
estimated と 社長さんがしてあったみたいね
そういうね チャプテリーさんに触れられて良かったなというところですね
スピーカー 3
説明はわかりやすいっていうのは何人かの方も増えてましたね
24:05
スピーカー 3
そもそもキャップ定理自体が
曖昧な概念っていう話でしたね
キャップ定理自体はこれがあれば大丈夫というか
なんていうか証明しきれてるものではなくて
今回の本の中ではパーティションされてる上で
どっちを取るかみたいな話であるっていう説明があったと思うんですけど
スピーカー 2
じゃあリスナーの方向けに簡単にサマリーをやってみてもらっていいですか
スピーカー 3
僕ですか
キャップ定理っていうのが
Cがコンシプテンシー一貫性
Aが
アビリビリティ
これは可用性ですね
Pがパーティショントレランスで
パーティションは便利できるかどうかみたいな話だと思うんですけど
それぞれの2つしか取れないよっていうものなんですけども
実際には必ずパーティショントレランス
パーティションしてるっていうの前提がある上で
それでコンシステンシーを取るか
もしくはアビリビリティ可用性を取るかっていう話であるっていうのが今回の説明でして
だからキャップセオリーのCAを取るかCPを取るかで
APCを取るっていうような選択肢はそもそもないから
ちょっとその定義としてはどうなのっていう話がちょっとあったっていうのが
今回の章で説明がありましたが
っていう感じですかね
合ってますかね
スピーカー 2
合ってます
だからマーティン先生はキャップセオリムだけで語れないよねっていう
それはそうなんですけどすごい批判的な立場で語ってて
じゃあキャップセオリム限界があるよねってことで
じゃあ他にどういった概念が必要なのかってことで
コーザリティとかリニアライザビリティとかもちゃんとあってっていう話につながっていく
その多分導入というか批判的に乗り越えるためのキーワードとして放り込んでる気がします
スピーカー 3
そうですね
そういう基本的な用語の整理ができたのは良かったです
スピーカー 2
そしてここで出てるリニアライザビリティとかも
実際例えばライトもリードも遅いので実用耐え売らないようですよねっていうことで
じゃあどういったものがあるんですかってことで
シークエンシャルなコンシスタンシーとか
あとコーザルコンシスタンシーと呼ばれる別のモデルがあります
ありますよねっていう風につながってて
例えば一つ例を出すと
僕が昔働いてたネオ4Jっていう会社では
27:02
スピーカー 2
最終的にそのコーザルコンシスタンシーっていうものに落ち着いたんですよ
他の言い方で言うのはリードアフターライトみたいなところなんですけど
リードユアライトコンシスタンシー
結局ネオ4Jとかはグラフを操作するようなデータにおいて
パフォーマンスを出さなきゃいけないデータベースだったので
基本的には読みにも書きにもある程度早いですよって歌ってたんで
とはいえそれでもやっぱコーザリティを担保したいよねっていうことで
僕らが何をしたかというと
ブックマークと呼ばれる仕組みで実装したんですよね
コーザルクラスタリングっていうもの
ブックマークっていうのは
トランザクションごとに目印みたいなのをつけて
その目印を一種グローバルの入会でいいみたいな
形としてインスタンスに渡していく
インスタンスが来たときに
そのトランザクションについているブックマークと
自分が知っているそのブックマークをマッピングして
自分が処理するかどうかっていうのを
受け渡すみたいな感じで実装してて
このコーザルクラスタリングがあるとどういうことができるかっていうと
例えば自分が書き込んだデータは
基本的にすぐに返ってくるっていう
データセキュリティを散歩した状態で返ってくるみたいなのがあって
このコーザルクラスタリングをじゃあなぜでO4Jが実装したかっていうと
コンピューターが実装してたからなんですけど
そんな感じで多分データベースの界隈っていうのも
あそこが実装してるからうちはここかなみたいな感じで
徐々に浸透していくの力学を旗から見てて感じましたね
スピーカー 1
なるほど
スピーカー 3
けんさんのブログ1年くらい前に書いたやつだと思うんですけど
すごいわかりやすくて
デプリケーションとかの復習にもなってすごい良かったですね
ブックマークのっていう仕組みも
トランザクションIDと似てると思うんですけど
具体的にイメージできて良かったですね
スピーカー 2
一応ノートに貼っておきます
スピーカー 3
ありましたお願いします
スピーカー 1
実際にどのシステムがどういう意味で
どの一貫性モデルを選んでそれをどう実装してるのかっていうのは
結構調べたら面白いですね
確かに
スピーカー 3
比較表みたいなの作ってみたいですね
スピーカー 2
コンセンサスアルゴリズムにも触れたし
今回はケンタクもいるしっていうこと
これ以前の収録でも話してると思うんだけど
アパッチカフカの話を何回かこのロードテックトークでもしてて
アパッチカフカの有名な話としては
もともとはズーキーパーっていう
コーディネーターサービス
別のプロセスを使って
ズーキーパー自体が3台とか5台プロセスを動かして
30:02
スピーカー 2
彼らでコンシスタンスを守るための別のコーディネーターサービスを使って
アパッチカフカはそれに依存してるサービスだったんですよね
それを最近のインプルーブメント改善によって
アパッチカフカ自身にラフトコンセンサスを利用した
コーディネーションを実装することで
ズーキーパーをなくそうっていう動きが進んでて
もう実装はされててプロダクションレディではなかったかな
ちょっとそこの最新は追ってないんですけど
そういった話があったりする
だから要するにアパッチカフカを運用する側としては
今までカフカというJavaのプロセスとズーキーパーを
どっちもデプロイしなきゃいけなかったのが
アパッチカフカだけで良くなったっていう話があったりしますね
スピーカー 3
いやーなんかその話懐かしいというか
カフカでしましたけど
ここに繋がってくると思ったら感慨深いです
スピーカー 2
ここと繋がってくるというね
スピーカー 1
実際ラフトはやっぱデファクトというか
大体なんですかね
ズーキーパーは何でしょうね
ダブか何かを使っていて
スピーカー 2
うん
スピーカー 1
そこからラフトに
スピーカー 2
有効グラフ
スピーカー 1
乗り換えたってことですよね
スピーカー 2
多分ズーキーパーが完全に
世の中から消えることは全然ないと思うんですよね
例えばうちの会社でもインターナルな
フォークしていろいろ加えてるズーキーパーみたいなのがいて
そこは全社的に使ってる高可用性な
小さなメタデータを扱うための
インターナルズーキーパーみたいなのが機能してて
いろんなマイクロサービスがあるんですけど
そのマイクロサービス間で例えば
ちょっとしたデータを共有したいときに
使ってたりするので
コーディネーションというのはマイクロサービス間の
アーキテクチャでもよく出てくる話だから
アパチカフカが乗り換えたからといって
ズーキーパーが一気にしぼむかというと
スピーカー 1
そんなことではないと思うんですが
スピーカー 3
カフカとしてはほぼ確実に必要だから
自分で実装してみたほうが
メリットがあるかなっていうところだったんですかね
スピーカー 2
そうだと思いますね
それこそけんたくんが前に
イギリスで働いてた会社とかは
ズーキーパーの代わりに
Kubernetesでも使ってるコーディネーターサービスの
etcdを使って運用とかしなかったっけ
スピーカー 1
ズーキーパーの代わりに
ズーキーパーの顔をしたetcdを使うっていう
スピーカー 3
その辺どういう意図で選定したのかとかも気になりますね
スピーカー 2
この章で書かれてる知識がある人が選定したんでしょうね
33:02
スピーカー 2
確かに
コンシスタンシーモデルどうするとか
これをした時に
レイテンシーどれくらい影響があるよねとか
あとはパーティションが起こった時の運用をどうするみたいな
そういった選定する時の
技術要素とか要件ってあると思うんですよね
レイテンシーとかコンシスタンシーモデルとか
そういったものを思いつくために
ここら辺の知識はもう前提となってきちゃう
分かんないとついていけないから
スピーカー 3
っていう意味ではやっぱり
ちゃんと皆さんと読めてよかったですねこの本
スピーカー 2
ブッククラブで最後ちょっと時間がなかったから
ディスカッショントピックとしては提案できなかったんだけど
言っておけばよかったなと思ったのが
結構アプリケーションディベロッパーの方多いじゃないですか
参加してくれてる人で
じゃあこれを読んで明日からの業務どう変わりますかっていうところで
もうちょっと議論してもよかったなと思った
スピーカー 3
あー確かに
スピーカー 2
ごめん事前に書けなかったんだけど
消化不良だからこそ
消化不良のものの
食べ物のうちでも自分が消化できるものを
ちゃんと消化したいなということで
じゃあこれを読んで明日からの
あなたのキャリアどう変わりますかっていうのは
もうちょっと多分おのおのが考えても
いいところだったかなと思いましたね
スピーカー 3
うん
スピーカー 2
確かに
例えば具体的には社内のデザインドックを見に行ったら
コンシスタンシーに言及してないものがあったら
そこを突っ込む役になるとか
あとは社内ブログでコンシスタンシーについて
自分たちが例えばPOSGREを使っているんだったら
POSGREのコンシスタンシーモデルみたいなのを
いろいろ調べて
社内ブログ書いてみるとか
浅井さんの新しい会社はデータベース何使ってるんですかね
多分これから社内の
スピーカー 3
いやーそうですちゃんと分かってない
多分POSGREのRDSかAuroraかちょっと分かんないですけど
確かにAuroraとかを使ってるのであれば
内部資料を理解して
なんかしら障害が起きると思うんですけど
その時にどう対応するかっていうのを準備しておくとか
そういうのは確かにいいかなって思いましたね
スピーカー 2
SREだったらどういったフェイラーパターン
失敗パターンが起こるのかって想起したところに
それが起こった時にコンシスタンシーがどう影響するか
っていうのを多分シナリオとして一つ描けるはずなので
例えば社内の負荷テストとかゲームデーみたいなのをする時の
スピーカー 1
シナリオ提案に使えたりするよね
あーいいですねそういうのやってみたいです
スピーカー 2
けんたくんは最近どういうデータベースに扱うことが多いんですか
フリーランスの仕事してる中で
スピーカー 1
データベースはAWSが多くて
スピーカー 3
ダイナモフェインで使ってるかな
36:00
スピーカー 1
まさに
スピーカー 3
そういうのいきそうですねこの話が
スピーカー 2
やっぱ日本のテック業界ってAWSすごい人気って
この前聞いたんだけど
多いよね
スピーカー 3
多いんじゃないかな
スピーカー 2
こっちでAWSで働いてる中の人とこの前働いたら
スピーカー 1
もう日本は大きい一つの市場として捉えられてて
スピーカー 3
割合的にはGoogleとかを使ってるのは結構先進的な会社
割合的にはGoogleとかを使ってるのは結構先進的な会社
でそれ以外は基本AWSみたいなイメージが
結構伝統的な企業というかは
WindowsとかMicrosoftとの繋がりが強いんで
Azure使ったりみたいなのは
肝心な気がしますけど
スピーカー 2
Azureも結構いいよねなかなか
スピーカー 3
使ったことないんですけど
使ってみたい
スピーカー 2
ダイナモどう?使いやすい?
スピーカー 1
もちろん癖はある
スピーカー 2
癖強いなデータモデル
慣れが必要だなっていうのはすごく感じる
スピーカー 1
あれはイベンチュアルコンシスタンシーだよね基本的には
確か
スピーカー 2
クエリレベルでストロングコンシスタンシーかどうかは選べる時もある
そういう感じなのでだからこれを読んで
じゃあ明日からの業務にどう生かすかってのを
スピーカー 3
はい
ちなみにケンさんは何かありましたか?
第2回目読んでみて
スピーカー 2
自分で話せると思いましたけど
SREなのでさっき言ったゲームデーのゲームデーっていうのは
実際に障害が起こった時とかのようなシナリオを
実際に自分たちで体験するステージング環境とかにデプロイして
いろいろぶっ壊してみて
ここが抜けてたねみたいなのを
炙り出すプラクティスなんですけど
そういった時にコンシスタンシーとかを意識したシナリオを提案できるなっていうのを
まさに浅井さんに話ししながら自分でもそれやろうと思って
スピーカー 3
素晴らしいですね
スピーカー 2
あとは社内のラーニングセッションみたいなところで
自分が好きなトピックを紹介するシチュエーションって何回かあるんですよね
この前とかはメモキャッシュの
MICルーターってやつを紹介したりするんですよ
僕はデータベースが好きなので
勝手にデータベースを選んで話すことが多いんだけど
そういった時の項目とかディスカッショントピックとして
スピーカー 3
ここら辺の性能ももうちょっと細かく入れられるかなと思いましたね
スピーカー 1
実際の設計とかで提案できたら楽しいですね
39:02
スピーカー 3
今日はこんなところですかね
何か言い足りないこととかありますか?
スピーカー 1
お二人、けんたさん、けんさん
スピーカー 3
最後に宣伝とかされても大丈夫ですけど
スピーカー 1
サービスを最近友達と作ってるので
スピーカー 2
トリプリンク
スピーカー 1
旅行、旅系のサービスを作ってるので
興味のある方は覗いてみてほしいです
スピーカー 3
ちょっとじゃあショーの後にリンクを
それは今のフリーランスのやつとはまた別ですよね
スピーカー 1
はい、完全に個人から
スピーカー 2
あそこら辺の深掘り会やりたいんですよ
けんた工藤inジャパン半年
いいですね、やりたいです
スピーカー 3
気になるな
フリーランスの極意みたいなのもちょっと気になります
スピーカー 2
確かに
スピーカー 3
検討してみたいなと思ってるんで
ぜひよろしくお願いします、引き続き
スピーカー 1
はい、ぜひまた
スピーカー 3
では今日はけんたさんと第9章の振り返りをしました
引き続き第10章以降もやっていきます
じゃあ今日はありがとうございました
ありがとうございました
スピーカー 2
ありがとうございました