※これはAnnouncing Oracle Transaction Manager for Microservices Freeの翻訳です
Oracle Transaction Manager for Microservices Freeの提供を発表できることをうれしく思います。この新製品は、さまざまなトランザクション・プロトコル向けの分散トランザクション・コーディネーターのサービスを提供します。 この製品を使用するとマイクロサービスの開発者は、障害が発生した場合でも、マイクロサービス全体でデータの一貫性を簡単に確保できます。 コーディネーター自体がマイクロサービスであり、Kubernetes を使用した Istio/Envoy などのサービス メッシュのフレームワークに簡単にデプロイできます。

アプリケーション・アーキテクチャが、モノリスから SOAを経て今日のマイクロサービスに移行するにつれて、モノリスや一部の SOA ベースのアプリケーションにおいて、本来ケアする必要のない問題が発生します。その 1 つは、データの一貫性に関するものです。モノリシック・アプリケーションでは、通常、すべてのデータが 1 つのデータベースに格納されます。 テーブル間の一貫性はローカルのトランザクションによって管理され、データの一貫性が維持されます。つまり、2 つのテーブルへの更新が両方とも成功するか、どちらも成功しないかのいずれかです。 マイクロサービスに移行すると各マイクロサービスが独自のデータベースを保持するため、ローカルのトランザクションでは一貫性を確保できなくなります。 ここで、分散トランザクションが必要になります。
分散トランザクション
マイクロサービス全体でデータの一貫性を確保するために、分散トランザクションが使用されます。分散トランザクションは、システムをある一貫した状態から別の一貫した状態に移行しようとします。多くの場合、分散システムで発生する可能性のあるさまざまな障害シナリオを処理するために使用されます。アプリケーション開発者に負担をかけすぎないのが理想的です。最初期の分散トランザクション・プロトコルの 1 つは、The Open Group によって定義された XA2フェーズコミット・プロトコルです。 XAを使用すると、アプリケーションはトランザクションの ACID 保証に準拠しながら、複数のデータ ソースへの更新を確実に実行できます。
複数の分散トランザクション・プロトコルをサポート
今回の最初のリリースは無料での提供で、マイクロサービスベースのアプリケーションで、開発者が分散トランザクションの活用を開始できるようにすることを目的としています。 XA ベースの分散トランザクション、Eclipse MicroProfile Long Running Actionsの形式のSaga、および Try-Confirm/Cancel トランザクション・プロトコルのサポートが提供されます。マイクロサービスの開発者は、アプリケーションの一貫性要件に基づいて、アプリケーションに最適な分散トランザクション プロトコルを自由に選択できます。
今回の最初の無料リリースでは、以下で開発されたマイクロサービスがサポートされます。
- Helidon、WebLogic Server、および Spring Boot で Jax-RS を使用する Java
- Express.js を使用した Typescript
- Oracle Application ExpressおよびOracle REST Data Servicesを使用したPL/SQL
- Tuxedo で実行され、SALT を使用して REST サービスとして公開される C/C++/COBOL
- Oracle Blockchain Platform スマートコントラクト
この後、より多くの言語とプラットフォームをサポート予定です。
マイクロサービスベースのトランザクション・コーディネーター
Transaction Manager for Microservices は、マイクロサービスベースのトランザクション・コーディネーターで構成されていて、KubernetesやDocker Swarmなどのコンテナ環境にデプロイできます。言語固有のクライアント・ライブラリのセットも提供され、トランザクション・コーディネーターのサービスにアクセスするための API と CDIアノテーションを利用できます。 これらのライブラリには、マイクロサービス間でトランザクション・コンテキストを自動的に伝播させ、呼び出されたマイクロサービスをトランザクションに登録するためのリクエストフィルターとレスポンスフィルターも含まれています。
開発のしやすさを重視
提供されているクライアント ライブラリを使用すると、アプリケーションを簡単に拡張して、最小限の労力で一貫性の要件を実現できます。 多くの場合、数行のコードの変更、または既存のマイクロサービスに追加するだけで、マイクロサービス管理トランザクションのトランザクション・マネージャーを開始できるようになります。 含まれているサンプルは、強力な一貫性を必要とする金融取引から、より緩やかな一貫性要件での旅行予約まで、さまざまなユース ケースをカバーしています。 Kubernetes、minikube、および Docker Swarm 用に提供されたHelmチャートを利用することで、マイクロサービス用のトランザクション・マネージャーのデプロイは、わずか数分で済む簡単なタスクになります。
今日から始めましょう
Transaction Manager for Freeのこの初期リリースは、開発者がマイクロサービスで分散トランザクションを使用する方法を学習できるように提供されています。 この無料リリースにはいくつかの制限があり、一部の実稼働ユース ケースには適していない可能性があります。 製品のエンタープライズ・エディションが間もなくリリースされる予定です。 この無料リリースを開始するには、次のサイトにアクセスしてください。
https://www.oracle.com/database/transaction-manager-for-microservices/
