1 MicroTxについて

Transaction Manager for Microservices (MicroTx)を使用すると、エンタープライズ・ユーザーは、ミッションクリティカルなアプリケーションでマイクロサービス・アーキテクチャを採用し、多用できるようになります。提供される機能によって、そうしたアプリケーションの開発とデプロイおよびアプリケーションでのデータ一貫性のメンテナンスが容易になるためです。

マイクロサービス・アーキテクチャには多くの利点がありますが、複数のサービスにまたがるリクエストでデータの一貫性を確保することは困難です。現在、サービス開発者は、アプリケーション・コードに補正トランザクションを含めるか、Sagaを使用して最終的な一貫性を実現することができます。ただし、これらのソリューションではエラーが発生しやすく、高度なコーディング・スキルが必要です。多言語マイクロサービスにまたがるトランザクションのトラブルシューティングや管理も困難です。各マイクロサービスが個々のデータベースを使用してデータを管理する場合はさらに複雑になります。

組織がマイクロサービス・アーキテクチャの採用を急速に進めるにつれ、データの一貫性に関する問題によく直面するようになります。通常、マイクロサービスごとに独自のデータベースがあるためです。モノリシック・アプリケーションでは、データベースとの一貫性を保つ必要がある他のデータ・ソースはないため、ローカル・トランザクションで十分でした。アプリケーションは、ローカル・トランザクションを開始し、いくつかの更新を実行した後で、ローカル・トランザクションをコミットします。こうすることで、アプリケーションが一貫性のある1つの状態から別の状態に移行することが保証されます。アプリケーションの状態が複数のデータ・ソースにまたがるようになると、いくつかの要因を考慮する必要があります。あるマイクロサービスで更新が成功したが、同じリクエストに含まれる別のマイクロサービスで失敗した場合はどうなるでしょうか。1つの解決策は、1つのリクエストに関わる複数のマイクロサービスで使用されるデータ・ソースにまたがる分散トランザクションを使用することです。Oracle Transaction Manager for Microservicesは、トランザクションに含まれるマイクロサービスの状態の一貫性を管理するためにトランザクション調整マイクロサービスおよびライブラリを提供します。

MicroTxは、分散マイクロサービス・アプリケーション間でトランザクションの一貫性を保証します。次のアクションを実行します。

  • トランザクションを管理し、多言語マイクロサービス間で一貫性を実現します。
  • いくつかの分散トランザクション・プロトコルをサポートします。XA、Eclipse MicroProfile Long Running Actions (LRA)、Try-Confirm/Cancel (TCC)などです。業務要件と必要な一貫性のレベルに基づいて、アプリケーションに適したトランザクション・プロトコルを選択できます。
  • 可用性が高くスケーラブルかつ安全なソリューションを提供するというエンタープライズ顧客にとって切実なニーズに対応します。
  • Jaeger、Kiali、Prometheus、Grafanaなど、強力な最先端テクノロジと統合されています。データ・ビジュアライゼーション、データ・モニタリング、トランザクション・トレースなどの様々なアクティビティ・オプションを提供して、高度かつ効率的なトラブルシューティングおよびデータ管理操作が可能になります。
  • KubernetesクラスタまたはDocker Swarm環境で、オンプレミス、クラウドおよびハイブリッド環境の他のマイクロサービスとともに実行されます。
  • 一般的なプログラミング言語およびアプリケーション・フレームワーク(Node.jsやJavaなど)と連携します。
  • C、C++およびCOBOL言語で記述されたOracle Tuxedoサービスの組込みをサポートします。
  • PL/SQLで記述されたOracle Database常駐サービスの、他のマイクロサービスを含むグローバルXAトランザクションへの組込みをサポートします。