モジュールの構造化を⾏う (Strangler pattern) Microservices 途中でモノリスに引き返す or 留まる判断も必要 単⼀の⼩さいチームと モノリスから始めて、 素早く市場に投⼊ Monolith Strangler facade ü 個別のリリースサイクル ü 個別のスケーリング ü 個別の技術スタック
language or framework 異種⾔語・異種実⾏環境が混在しても、 ⼀貫した⽅法で相互のサービス呼び出しが できる • Any cloud or edge アプリケーションがロケーション (クラウドor エッジ)を問わず実⾏できる Github Star: 7100+ Latest: v0.10.0 https://dapr.io/
アクタータイプの登録を受け付け、アクタータイプのリストを全ての Dapr Sidecar に通知 HTTP / gRPC エンドポイントを介して State コンポーネントを呼び出し、状態を管理できる タイマー&リマインダーの機能により定期実⾏のワークロードもサポート client Dapr Sidecar Dapr Placement actor service Actor Type: MyActor Dapr Sidecar Entry Actor Type: MyActor Call Actor ID : 123 for Actor Type: MyActor Where is "Actor ID : 123 for Actor Type: MyActor" ? (client call) MyActor ID: 123 is Created 1 0 2 3 4 https://github.com/dapr/docs/blob/master/concepts/actors
3 つのサービスが協調するシナリオを考える • Order は注⽂を受け付けてトランザクションを開始する • 注⽂の受け付けに成功した時点でリクエストを返し、ユーザは⾮同期に注⽂結果を受け取る • 決済と商品確保の両⽅に成功すれば注⽂の成⽴とする order accepted order succeeded/failed client Order Payment Inventory 参考: https://medium.com/@ijayakantha/microservices-the-saga-pattern-for-distributed-transactions-c489d0ac0247