uploader was MarianZubak at English Wikipedia. - Transferred from en.wikipedia to Commons., CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=3402935 By Dudva - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=25441424 vs
障害の発生領域を最小化(あるサービスが停止しても、他のサービスは停止しない) ◦ 他のサービスに影響を与えずに、小さな機能変更を積み重ねていける マイクロサービスが持つべき特性 (1/3) - 開発者視点 10 Order service Implements Uses Public API /v1/addTransaction /v1/getTransactions API を介した 疎結合処理 Stock transaction service
起こり得るか」を予測する深いドメインナ レッジが必要 ◦ 一度実装した機能を他のサービスに移行する のは、労力とリスクを伴う Micro Service A database Micro Service B database データの移行 Micro service アクセス先 /API の移行 マイクロサービス A の機能をマイクロ サービス B に移行する際の影響
◦ 既存サービスに新しい API を追加 ◦ 新しいサービスを追加 • 他のサービスとの連携方法 ◦ 同期処理/非同期処理 • サービス停止時の影響範囲 Micro service API 既存の API に フィールドを追加 API 既存のサービスに API を追加 Micro service API 新しいマイクロ サービスを追加
capability」ごとにサービスを 割り当てるべき 26 Order service Stock transaction service Fee service Market service 売却リクエストの 情報を記録 サービス手数料 を計算・引き落とし 売却対象の株を ロック 売却リクエストを 外部システムに送信 Business capability ユースケース上の アクション
送信」する機能は、単一のサービスで実装できるが・・・ • これには、「将来、どのような変更が起こり得るか」までを見通した業務分析が必要 27 Order service Market service 売却リクエストを 外部システムに送信 ◦ 外部システムを追加するごとに、Order service に変更が必要になる ◦ 複数プロトコルの外部システムに対応し ていくと、「売却リクエスト管理業務」 と無関係な技術的複雑さが増していく
Order service A 社の株を 100 株売却 Stock transaction service 売却リクエストの 情報を記録 Order database Transaction database Fee service Fee rules database Market service Stock exchange 売却リクエストを 外部システムに送信 売却対象の株を ロック
composition」を実装することも できるが、API ゲートウェイにビジネスロジックを実装するのは好ましくない Order service Fee service Market service API ゲートウェイ Submit Order Strategy service Create Strategy クライアント
計算・引き落とし Order service A 社の株を 100 株売却 Stock transaction service 売却リクエストの 情報を記録 Order database Transaction database Fee service Fee rules database Market service Stock exchange 売却リクエストを 外部システムに送信 売却対象の株を ロック
ム)ごとにバウンダリーを設け て、特定の API のみを他のドメ インに公開する場合がある 管理 UI パブリック API Web UI iOS app Android app マイクロサービス アプリケーション Order service Fee service Market service Strategy service 内部ゲートウェイ オーダー管理 サブシステム
単一の API ゲートウェイで対応すると「単一責任の原則」が破られて、クライアントの開 発に合わせた API ゲートウェイの変更が困難になる • クライアントごとに API ゲートウェイを分けて、クライアントの開発チームが対応する ゲートウェイの開発も合わせて担当する パブリック API Web UI iOS app Android app マイクロサービス アプリケーション iOS ゲートウェイ Android ゲートウェイ Web ゲートウェイ API ゲートウェイ