第8章 マイクロサービスによるワークフローの構築 マイクロサービスではワークフローを構築する
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
マイクロサービスは、その定義からして、組織のビジネス・ワークフロー全体のごく一部だけを操作する。ワークフローは、ビジネスプロセスを構成するアクションの特定のセットであり、論理的な分岐や代償アクションを含む。ワークフローは一般的に複数のマイクロサービスを必要とし、それぞれが境界づけられたコンテキストを持ち、タスクを実行し、下流のコンシューマに新しいイベントを発行する。これまで見てきたのは、単一のマイクロサービスがどのように機能するかということだった。ここからは、複数のマイクロサービスがどのように連携してより大きなビジネスワークフローを実現するか、またイベント駆動型マイクロサービスのアプローチから生じる落とし穴や問題点について見ていく。
ここでは、EDMワークフローを実装する際の主な検討事項を紹介する。
- ワークフローの作成と変更
-
-
ワークフローの中でサービスはどのように関連しているのか?
-
既存のワークフローを変更するにはどうすればいいか?
-
すでに進行中の仕事を中断させるのか?
-
複数のマイクロサービスに変更が必要か?
-
監視と可視性を壊すのか?
-
-
- ワークフローを監視する
-
-
イベントのワークフローが完了したことを知るには?
-
イベントの処理に失敗したのか、ワークフローのどこかで止まっているのか、どうすればわかるのか?
-
ワークフロー全体の健全性を監視するには?
-
- 分散トランザクションの実装
-
-
多くのワークフローでは、いくつかのアクションが一緒に起こるか、まったく起こらないかを要求する。分散トランザクションを実装するには?
-
分散トランザクションをロールバックするには?
-
この章では、コレオグラフィとオーケストレーションという2つの主要なワークフローパターンを取り上げ、これらの考慮事項に照らして評価する。
コレオグラフィのパターン
コレオグラフィック・アーキテクチャ(リアクティブ・アーキテクチャとも呼ばれる)という用語は、一般的に高度に分離されたマイクロサービスアーキテクチャを指す。マイクロサービスは、上流プロデューサやそれに続く下流コンシューマから完全に独立した方法で、ブロックや待機をすることなく、到着した入力イベントに反応する。これはダンスのパフォーマンスによく似ており、各ダンサーは自分の役割を理解し、ダンス中に何をすべきかを制御されたり指示されたりすることなく、独立してそれを実行しなければならない。
コレオグラフィは、イベント駆動マイクロサービスアーキテクチャでは一般的である。イベント駆動型アーキテクチャは、関連するビジネス情報の再利用可能なイベントストリームを提供することに重点を置いており、コンシューマは上流ワークフローを中断することなく出入りすることができる。すべてのコミュニケーションは、入力と出力のイベントストリームを通じて厳密に行われる。コレオグラフィック・システムにおけるプロデューサは、そのデータのコンシューマが誰なのか、彼らがどのようなビジネスロジックor演算子を実行しようとしているのかを知らない。上流のビジネスロジックは、下流のコンシューマから完全に隔離されている。
コレオグラフィは、疎結合システムを可能にし、調整要件を軽減するため、チーム間コミュニケーションの大部分において望ましい。多くのビジネスワークフローは互いに独立しており、厳密な調整を必要としないため、コレオグラフィによるアプローチはコミュニケーションに理想的である。新しいマイクロサービスはコレオグラフィックアーキテクチャに簡単に追加でき、既存のマイクロサービスも同様に簡単に削除できる。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access