Opsから見たマイクロサービス化のメリット → 適度な粒度の可用性と拡張性 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:11:31Tanenbaumさんの分散システム4つのゴール 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:12:46AP が分割されていても、共有データベースだとマイクロサービスとは言えないのではないか? 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:14:22データベースが単一、拡張性がない場合、ジョブキューとかで非同期でトランザクションされていても、マイクロサービスでない #JTF2020 #JTF2020G
2020-07-25 14:14:42完全なモノリスではなく中途半端なマイクロサービス。"マイクロサービスではない何か" 思い当たる節のある図だ。 #JTF2020 #JTF2020G
2020-07-25 14:15:05database per serviceにすると 分散トランザクションの戦いが始まる #JTF2020
2020-07-25 14:15:14DB をマイクロサービス毎に単純に分割すると、分散トランザクションの闘いが始まる。 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:15:16Kafka を使ってみる……。この手の Streamingプロダクト を使う構成はまあ解るけど、Streamingプロダクト自体のSLAとか性能とかは問題にならないのかしら。 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:17:13Saga で補償トランザクションを実装 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:18:12モノリスでは DB に任せられたていた ACID を AP層 で再実装、辛そう……。 彡(-)(-) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:19:02SagaではIsolationを満たせない。 対策としてCQRSが挙げられる。 #JTF2020
2020-07-25 14:20:46Saga では Isolation(一貫性)が保証できない。トランザクションの途中の結果が見えてしまう。CQRS 等のもう一工夫が必要 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:20:52Database per Serviceを実現しようとすると、分散トランザクションとの戦いが始まる・・・ →Sagaパターン×Kafkaを使って実現を目指す ・ACIDトランザクションをロールバック含めてアプリ側で実装 ・トランザクションを三種に分ける Go/No Go ・AtomicにWRITEが読めるように #JTF2020 #JTF2020G
2020-07-25 14:21:29分散トランザクションの闘いはこれからだ!(ジャンプ並感 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:22:20読んでみるか🤔 分散システム―原理とパラダイム アンドリュー・S. タネンバウム amazon.co.jp/dp/4894715562/… via @amazonJP #JTF2020
2020-07-25 14:23:00Tanenbaumさん提唱の Scalability(Size, Geographycal) をもう一度考えてみる 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:23:29マイクロサービスのローカルDBの拡張性をいかに確保するか? 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:24:29方法1. リードレプリカ、参照性能をスケールする。同期にラグがあり、書込性能のスケールには限界有り。 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:25:53Lift&Shiftが流行ってますが,実際のところShiftには10年スパンを見ている,という話をどこかで聞きました #JTF2020 #JTF2020G
2020-07-25 14:26:56方法2. Multi-Leader構成。シャーディングで振り分け(Vittesなど)。全てのノードで Read/Write(RACなど) 彡(゚)(゚) #JTF2020 #JTF2020G #JTF2020G5
2020-07-25 14:27:20Oracle RAC いつもCache Fusion気になってマルチリーダーにしてないんだよなぁ😂 検証したけど要件満たせなくて。。 #JTF2020
2020-07-25 14:27:28