Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Transaction Manager for Microservices Free 22.3 製品概要

Oracle Transaction Manager for Microservices Free 22.3 製品概要

製品ドキュメントはこちらです。
https://docs.oracle.com/cd/F75578_01/index.html

oracle4engineer
PRO

January 27, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Transaction Manager for Microservices
    Free 22.3 製品概要
    マイクロサービスのトランザクション管理ソリューション
    日本オラクル株式会社
    2023年1月
    v1.3.1

    View Slide

  2. マイクロサービス導入の負の側面を補うOracleの代表的なソリューション
    データソースはマイクロサービス毎に
    分離して独立性を高めべきである
    分散化による無駄とリスクの増加
    データベースは扱うデータ・タイプに
    合わせたものを選択するのが良い
    ガバナンス(運用/セキュリティ)の欠如
    多様なスキルセットが必要
    サービス間のトランザクションは
    非同期で結果整合性を確保する
    状態遷移が複雑化し
    アプリケーション開発保守性が低下
    Oracleによるマイクロサービス環境におけるデータ・マネージメント
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    2
    コンテナ・データベースで
    基盤運用を簡素化・効率化
    • Relational
    • Key-Value
    • Documents
    • Graph
    • Geospatial
    • Cube
    コンバージド・データベースで
    運用の労力とリスクを軽減
    最適なトランザクションモデルを選択して
    アプリケーション開発・保守を容易化
    Oracle
    Transaction Manger for Microservices
    コンバージド・データベース
    APP APP
    MicroTx
    Kubernetes istio
    トランザクション
    MicroTx Lib
    MicroTx Lib
    APP
    MicroTx Lib
    3つの異なる
    トランザクションモデル
    • XA
    • TCC
    • Saga
    同期/
    ACID
    非同期/
    結果整合性
    コンテナ・データベース
    課題
    ソリューション
    課題
    ソリューション
    課題
    ソリューション
    Service
    A
    Service
    B
    Service
    C

    View Slide

  3. デジタルトランスフォーメーション | 社内業務の効率化から新ビジネスの創造へ
    ビジネスにもとめられる進化のスピードと品質
    ✓サービスの早期リリース
    ✓市場の動向/反応を早期フィードバックして対応
    ✓サービス停止による機会損失をなくす
    システムは変化するビジネス要件に合わせ
    短い時間で高頻度にリリースする事が求められる
    ✓アプリの変更をすぐに本番環境に適用
    ✓変化を許容できるシステムを構築
    ✓停止時間の短縮と運用作業の効率化
    企業システムに求められるニーズの変化
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    業務
    効率化
    社外
    社内業務の
    効率化
    社外顧客向け
    新ビジネス
    創造
    3

    View Slide

  4. 迅速に高品質なシステムを育て続けるための戦略
    マイクロサービスの世界観
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    DevOps
    • 自動化された高頻度リリース
    • フィードバックに基づく継続リリース
    マイクロサービス・アーキテクチャ
    • 疎結合型アーキテクチャ
    • サービス単位のデプロイメント
    サービス単位の組織
    • 小規模でサービス毎の自主性・自律性
    • 機能横断的なチーム
    4

    View Slide

  5. サービス間の影響を極小化しシステムの変更容易性を高めるアーキテクチャ
    保守とテストの容易性
    • 分割したサービス毎に組織を編成し開発・運用の自由度を高める
    • 更新単位を最小限にすることでテスト規模を最小化
    疎結合
    • API化や非同期化によりサービス間の結合度を低減
    • 変更による他の稼働中のサービスにへの影響を極小化
    独立してデプロイ可能
    • データソースやアプリケーション・モジュールをサービス毎で占有
    • デプロイやスケールの変更の単位サービス毎で任意に最適化
    マイクロサービス・アーキテクチャとは
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    API
    サービス実装
    データストア
    イベント・ストア
    5

    View Slide

  6. 結果整合性による一貫性
    相手のサービスのデータソースには直接アクセスしない
    • 分散トランザクションによる一貫性の確保は利用すべきでないとされる
    • 自サービスと相手のサービスそれぞれの「結果整合性」により全体の一貫性を保つ
    マイクロサービスにおけるデータ整合性の考え方
    在庫管理
    サービス
    注文管理
    サービス
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    6
    他のサービスのデータソース
    に直接アクセスしない

    View Slide

  7. サービス間をまたがるトランザクションの仕組み
    Sagaパターン
    補償トランザクションによる(事後)結果整合性
    • 処理の成功を前提とした楽観的な呼出し手法
    • 一部の処理が失敗した場合に、既に完了した処理を
    取り消す「補償トランザクション」により整合性を取る
    TCC (Try/Confirm/Cancel) パターン
    予約ベースの(事前)結果整合性
    • 処理完了の可否を事前に確認した上で処理を実施
    • Tryフェーズにより不整合の生じる処理を行わないこと
    で整合性を担保
    マイクロサービスで検討される代表的なデータ整合性の仕組み
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    7
    Insert
    Delete
    Insert
    Reserve
    Update
    Reserve
    Update

    View Slide

  8. 障害時などにビジネス・トランザクションとして回復する
    何らかの障害で処理を完了できない場合に、処理を取り消して整合性を合わせる。
    例:注文マスタの更新に失敗 → 在庫修正を元に戻してもらう (=注文のキャンセルを発行)
    複数個所での障害など、補償トランザクションの設計が煩雑になりやすい。。。 → 長いトランザクションは控えるのがbetter
    Sagaパターンの補償トランザクション
    注文管理
    サービス
    在庫管理
    サービス
    在庫マスタ
    API
    注文
    2. 在庫確保
    イベント・チャネル
    イベント・チャネル
    注文マスタ
    4. 注文確定の失敗
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    8
    6. 在庫戻し
    1. 注文
    3. 在庫確保OK
    7. 在庫戻しOK
    5. 注文キャンセル
    通常処理の依頼 通常処理の応答
    通常処理フロー
    補償処理の依頼 補償処理の応答
    補償処理フロー
    注文確定失敗は
    のためキャンセル
    注文のキャンセル
    のため在庫を戻す
    6. 注文失敗

    View Slide

  9. 予約していたリソースを解放するのみで対応可能
    Tryフェーズで予約したリソースを解放する処理
    • 予約が成功したサービスに対して取消を発行
    • 各サービスへの予約の状態は同一のコンテキスト
    (例:注文番号など)での管理が必要
    • 予約が成功した相手のみを抽出してCancel
    サービス自体の障害を考慮して、イベント・ストア等を活
    用した自動リトライの仕組みも要検討
    • Try に対する応答時に呼出し元がダウン
    • Try時は稼働していた呼出し先のサービスがCancel
    時にダウン
    TCC パターンの障害ケース
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    9
    注文管理
    サービス
    在庫管理
    サービス
    在庫マスタ
    在庫の予約
    注文マスタ
    ポイント
    サービス
    ポイントマスタ
    ポイントの確保
    注文管理
    サービス
    在庫管理
    サービス
    在庫マスタ
    予約の取消し
    注文マスタ
    ポイント
    サービス
    ポイントマスタ
    Try
    Cancel
    OK

    View Slide

  10. XAトランザクションを利用したデータ整合性の担保
    X/Open XA
    • X/Open社による分散トランザクションの標準規格
    • 2フェーズ・コミットをベースとしたデータ整合性担保のしくみ
    2フェーズ・コミットの仕組み
    • 更新対象のデータを排他ロック
    • 更新可能かどうかを事前にチェック
    • 全員更新可能であれば一斉にコミット、一人でもNGなら
    全員ロールバック
    XAのメリットとデメリット
    • メリット
    • 複数のデータソースに跨る一貫性を確実に担保でき
    実装も容易
    • デメリット
    • 広範囲の排他ロックにより性能ボトルネックになり易い
    従来のデータソース間のデータ整合性の担保のしくみ
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    正常時の動作 障害時の動作
    リソース・
    マネージャ
    OK
    OK
    トランザクション・
    マネージャ
    OK
    NG
    リソース・
    マネージャ
    トランザクション・
    マネージャ
    10

    View Slide

  11. Sagaパターン TCCパターン XA
    整合性の確実さ 補償処理の失敗やトランザクション間における
    同一データに対する競合により一貫性が損
    なわれやすい
    トランザクション間でのデータ競合を防ぐこと
    で一貫性を確実に保証
    データセットに対する排他によりトランザクショ
    ンの一貫性を確実に保証
    整合性制御の複雑さ トランザクション参加者の処理順序や結果を
    踏まえた補償処理の制御が必要
    失敗時の回復を含めトランザクション内に閉
    じて容易に制御
    異なるトランザクション間でのデータを完全に
    排他することによりシンプルに制御
    ビジネス・データに対する排他 データアクセス単位の排他のみ 予約により異なるトランザクション間でデータ
    が競合しない
    処理対象となるデータセットに対する排他ロッ

    サービス間のデータソース分離 トランザクション参加者ごとにデータソースを
    分離
    トランザクション参加者ごとにデータソースを
    分離
    トランザクション・イニシエータが他のサービス
    のデータソースを直接参照
    主なデメリット トランザクション間での競合などを加味した補
    償処理の確実な自動化が困難
    一定期間の予約状態によりビジネス・データ
    が遊休状態になる
    完全な排他により、他のトランザクションへの
    レイテンシや並列度に影響が生じやすい
    利用が想定される領域 他のトランザクションと分離されやすく、補償処
    理に人手が関与しやすい領域
    • ユーザ単位で行われる受付業務
    • カート→チェックアウト→配送のような長期
    的なトランザクション、etc.
    確実な一貫性が求められ、業務的に一時的
    な予約が許容される領域
    • 複数商材の一括決済、在庫を要する修
    理手配
    • デポジット型のポイント決済、etc.
    ACID特性の順守が必要な領域
    • 勘定系
    • システム制御マスタ、etc.
    Saga、TCC及びXAのトランザクション制御の特性
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    11

    View Slide

  12. コーディネータが参加者のやり取りを仲介し、アプリケーション実装コストを軽減し、管理性を向上させる
    【トランザクション管理の独自実装による課題】
    • イニシエータ側でトランザクション制御の実装が必要
    • イニシエータ側でトランザクション・ログの構成が必要
    • トランザクション制御の実装ごとに、ログ用のストア
    とその運用管理も必要
    【コーディネータによるトランザクション管理の集約の効果】
    • トランザクション管理を共通フレームワーク化
    • イニシエータや参加者によるトランザクション制御
    実装が不要
    • トランザクション管理をイニシエータから分離して運用
    • ログ用ストアなどの基盤管理を集約して効率化
    トランザクション・コーディネータの必要性
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    12
    在庫管理
    サービス
    在庫マスタ
    在庫の予約
    ポイント
    サービス
    ポイントマスタ
    ポイントの確保
    Try (A)
    OK (A)
    TCCトランザクション管理の実装
    A + B 用
    トランザクション・ログ
    (A+B用)
    TCC 実装A
    TCC 実装B
    Cancel (A)
    Try (B)
    NG (B)
    Cancel (B)
    注文管理
    サービス
    注文マスタ
    Try
    OK
    TCC ランザクション
    コーディネータ
    トランザクション・ログ
    在庫管理
    サービス
    在庫マスタ
    在庫の予約
    TCCフレームワーク
    ポイント
    サービス
    ポイントマスタ
    ポイントの確保
    TCCフレームワーク
    Cancel
    注文管理
    サービス
    注文マスタ
    TCCフレームワーク
    Cancel
    参加者の実装に合わせた個別の
    トランザクション制御の実装が必要
    トランザクション・ログのストアなどの環境は
    イニシエータごとに用意して管理が必要 イニシエータの数に依らずストア
    などの基盤管理を集約可能
    トランザクション制御の実装は一切不要

    View Slide

  13. TCC/LRA(Saga)/XA 対応の分散トランザクション・コーディネーター
    13 Copyright © 2023, Oracle and/or its affiliates | Confidential: Internal
    Oracle Transaction Manager for Microservices (MicroTx)
    ■ ユースケース
    • マイクロサービス間におけるデータの一貫性を確保
    • 標準規格に準拠したトランザクション・フレームワークの導入
    ■ 特徴
    • 幅広いトランザクション・プロトコルをサポート
    • TCC、MicroProfile LRA (Saga)、XA *
    • 多種のプログラミング言語に対応
    • Java, JavaScript (Python, C/C++, Go 対応予定)
    • エンタープライズ向けソリューション
    • 可用性、スケーラビリティ、セキュリティ、オブザーバビリティ
    • オラクル・データベースへの最適化、Tuxedoとの連携
    ■ 価格
    Free Edition (無償) を提供中
    ※今後Enterprise Edition をリリース予定
    Container
    Java App
    MicroTx Lib SVC FW
    Container
    Node.js App
    MicroTx Lib SVC FW
    MicroTx Transaction Coordinator
    Container
    Saga
    Orchestration
    TCC
    Coordination
    XA
    Coordination
    * TCC = Try-Confirm-Cancel サービス間でデータ一貫性を確保するのための処理パターン
    MicroProfile LRA = Long Running Actions - Eclipse MicroProfile の中の非同期分散処理のための規格
    XA = X/Openが策定した分散トランザクション処理のための標準規格
    Autonomous
    Database
    MySQL Database
    Service
    Exadata No SQL
    Database
    Database XA/Open
    XA Resource

    View Slide

  14. 主な仕様
    動作条件 • Kubernetes 1.21.x と互換性のある Kubernetes ディストリビューション
    ※ インストール・バイナリは Istio サービス・メッシュを前提にした helm チャートを提供、任意のサービス・メッシュも利用可
    • Docker 20.10.x もしくは互換性のあるバージョン (Docker Swarm)
    サポートする
    Kubernetes 環境
    Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)
    Minikube
    Oracle Linux Container Native Environment
    サポートする
    言語 及び フレームワーク
    TypeScript または JavaScript (フレームワーク: Node.js)
    Java (フレームワーク: Helidon, Spring Boot, WebLogic Server など Eclipse Jersey 実装の JAX-RS)
    サポートする
    XA リソース・マネージャ
    Oracle Database 19c
    PostgreSQL 14.2
    その他 XA 準拠のリソース・マネージャ: MySQL, Microsoft SQL Server など
    サポートする
    アイデンティティ・プロバイダ
    Oracle IDCS
    Oracle IAM
    Keycloak
    Microsoft Azure Active Directory 及び Active Directory
    制限事項 最大 4,800 トランザクション/時間 の制限あり
    トランザクション・ログ (ステート情報) はメモリーにのみ保存される
    ライセンス Oracle Free Use Terms and Conditions
    https://www.oracle.com/downloads/licenses/oracle-free-license.html
    Oracle Transaction Manager for Microservices Free 22.3
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    14

    View Slide

  15. MicroTx の適用例
    マイクロサービスにおけるサービス間のデータ整合性確保 Java EE アプリケーションのアーキテクチャ刷新
    15 Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    APP
    サービス A
    flight
    APP
    サービス B
    hotel
    MicroTx
    OKE istio
    マイクロサービスな世界
    TCC/LRA/XA
    APP
    Coordinator
    MicroTx Lib
    MicroTx Lib
    MicroTx Lib
    MicroTx
    OKE istio
    XA Coordinator
    MicroTx Lib
    XA対応
    Database
    Java EE Application Server
    APP
    XA Transaction
    Manager
    APP
    Helidon, SpringBoot, etc.
    XA対応
    Database
    • コンテナ化対応
    • フットプリント軽減
    • TXマネージャを基盤
    サービスとして外出し

    View Slide

  16. Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    16
    デモ

    View Slide

  17. Saga (LRA) デモ
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    17
    予約 予約確認
    Database
    Identity
    Database
    MicroTx

    View Slide

  18. MicroTxによるSagaパターン実装時の一連のシーケンス
    MicroTx Saga Sample (成功パターン:Close)
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    18
    POST /trip
    PUT /complete (LRA_ID)
    complete (LRA_ID)
    client
    flight-booking
    (participant)
    MicroTx
    (Saga:LRA)
    hotel-booking
    (participant)
    trip-manager
    (initiator)
    POST /hotel (LRA_ID, hotelName)
    POST /flight (LRA_ID, flightName)
    close (LRA_ID)
    book (LRA_ID, hotelName)
    book
    (LRA_ID, flightName)
    complete (LRA_ID)
    join (LRA_ID, ‘/complete’, ‘/compensate’)
    join (LRA_ID, ‘/complete’, ‘/compensate’)
    startLRA (LRA_ID)
    PUT /complete (LRA_ID)
    PUT /trip/{bookingId}
    header: LRA_ID
    header: LRA_ID
    予約
    予約確認
    MicroTxのライブラリとLRA
    フレームワークにより隠蔽される実装
    Database
    HOTEL FLIGHT
    PROVISIONAL
    PROVISIONAL
    CONFIRMED
    CONFIRMED

    View Slide

  19. MicroTxによるSagaパターン実装時の一連のシーケンス
    MicroTx Saga Sample (失敗パターン:Cancel)
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    19
    POST /trip
    PUT /compensate (LRA_ID)
    compensate(LRA_ID)
    client
    flight-booking
    (participant)
    MicroTx
    (Saga:LRA)
    hotel-booking
    (participant)
    trip-manager
    (initiator)
    POST /hotel (LRA_ID, hotelName)
    POST /flight (LRA_ID, flightName)
    cancel (LRA_ID)
    book (LRA_ID, hotelName)
    book
    (LRA_ID, flightName)
    compensate (LRA_ID)
    join (LRA_ID, ‘/complete’, ‘/compensate’)
    join (LRA_ID, ‘/complete’, ‘/compensate’)
    startLRA (LRA_ID)
    PUT /compensate (LRA_ID)
    予約処理失敗
    (エラー応答)
    予約
    status 500
    MicroTxのライブラリとLRA
    フレームワークにより隠蔽される実装
    Database
    HOTEL FLIGHT
    PROVISIONAL
    FAILED
    CANCELED

    View Slide

  20. Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    20
    まとめ

    View Slide

  21. マイクロサービスにおけるデータ整合性の考え方
    • Saga 結果整合性 ~ XAトランザクション まで幅広い選択肢
    • 要件に応じた適切なトランザクション・モデルを選択する
    トランザクション・コーディネータの必要性
    • アプリケーションの実装コストの削減・開発期間の短縮
    • トランザクションの管理性向上
    Oracle Transaction Coordinator Microservices の特長
    • マイクロサービス・アーキテクチャの分散トランザクション管理を提供するトランザクション・コーディネータとライブラリ
    • TCCパターン、Sagaパターン、XA に対応
    • 多種のプログラミング言語に対応 - Java, JavaScript (今後対応予定 - Python, C/C++, Go)
    • 可用性、スケーラビリティ、セキュリティ、オブザーバビリティ
    • オラクル・データベースへの最適化、Tuxedoとの連携
    まとめ
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    21

    View Slide

  22. Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    22
    付録

    View Slide

  23. • 2フェーズ・コミット・モデルに似ているが、TCCではデー
    タがロックされず予約されるという点が異なる
    • トランザクション開始者または最初のサービス/リソー
    スがTCCコーディネータにトランザクションを登録する
    • TCCコーディネータはすべての参加者の状態を保持し、
    確定またはキャンセルの調整を行う
    • 全てHTTPのVerb(メソッド)を通じて実行される
    • 複数のプログラミング言語フレームワークのサポート
    MicroTx - Try-Confirm-Cancel (TCC)
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    23

    View Slide

  24. 標準規格に準拠した Saga トランザクション・コーディネータ
    • MicroTxによりアプリケーションコードを簡素化
    • 開発者はコアなビジネスロジックに集中
    • Eclipse MicroProfile Long Running Actions
    (LRA) 仕様に準拠
    • 複数のプログラミング言語フレームワークのサポート
    • Java、Node.js
    • JavaでのLRAアノテーションのサポート
    MicroTx - Saga オーケストレーション
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    24

    View Slide

  25. 強力な一貫性のためのトランザクション管理
    • 高スループットと低レイテンシーのための最適化
    • 1フェーズ・コミット最適化
    • プロモータブル・トランザクション
    • Logging Last Resource
    • トランザクション管理のためのREST APIを提供
    • 開始、コミット、ロールバック、エンリスト
    • トランザクションAPIのプログラミング言語サポート
    • Java、Node.js
    • 一般的なフレームワークのサポート
    • Helidon、SpringBoot
    • オラクル・データベースに加えて、すべてのXA準拠のリ
    ソース・マネージャをサポート
    MicroTx - XAトランザクション
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    25

    View Slide

  26. • Oracleデータベース・アプリケーションがXA、TCC、
    Sagaトランザクションに参加可能
    • APEX アプリケーション
    • PL/SQL ストアド・プロシージャを使用するアプリケーション
    • トランザクションにOracleデータベースの外部で動作
    するマイクロサービスを含めることができる
    • Oracle REST Data Services (ORDS)を使用して
    RESTエンドポイントを公開
    • MicroTxトランザクションコーディネーターと通信するために
    使用される
    • トランザクションログやGlobal Temporary Table に
    APEXアプリと同じデータベース環境を使用可能
    MicroTx - Oracle データベース 常駐アプリケーション
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    26

    View Slide

  27. Tuxedoサービスとの分散トランザクションが可能
    TuxedoサービスをXAトランザクションに参加できるようにする
    • SALT Webサービス・ゲートウェイ経由でTuxedoサービスを
    呼び出す
    TuxedoからXAトランザクションは開始できない
    (今後対応予定)
    MicroTx - Tuxedo との連携
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    27

    View Slide

  28. Sagaパターンにおける補償トランザクションのJava規格
    連携するサービス間で、処理状態を判別して補償処理を調停するフレームワーク仕様
    • LRA (=複数のサービスによる一連の処理) 内の1つのサービスが失敗すると、他のサービスの補償処理を呼び出す
    • JAX-RSで呼び出されるメソッドにアノテーションを付与して調停が必要な処理をマーク
    • LRAの開始/終了/参加/離脱、補償処理、正常終了、etc.
    • LRAのコンテキストIDがHTTPヘッダで伝播される
    Eclipse MicroProfile LRA (Long Running Action)
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    @Path("/")
    @ApplicationScoped
    public class SimpleLRAParticipant
    {
    @LRA(LRA.Type.REQUIRES_NEW)
    @Path("/cdi")
    @PUT
    public void doInTransaction(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) URI lraId) {...}
    @Complete
    @Path("/complete")
    @PUT
    public Response completeWork(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) URI lraId, String data) {...}
    @Compensate
    @Path("/compensate")
    @PUT
    public Response compensateWork(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) URI lraId, String data) {...}
    }
    呼び出されるとLRAが開始される
    LRAが完了すると呼び出される(リソースのクリーンアップなどに使う)
    LRAがキャンセルされるとと呼び出される (補償処理に使う)
    成功 失敗 キャンセル (補償処理)
    LRAコンテキスト LRAコンテキスト
    28

    View Slide

  29. MicroProfile LRAに対応したオラクル発のマイクロサービス・アプリケーション・フレームワーク
    OracleがホストするOSSプロジェクト
    • GitHubでソースコードを公開: https://github.com/helidon-io/helidon
    • Helidonの商用サポートはWebLogic Server/Coherence/Verrazzanoのサポート契約に含まれる
    マイクロサービスアプリケーションが必要とする機能を提供するJavaライブラリの集合体
    • 単体のJVMとして動作し、アプリケーションサーバ不要、容易なコンテナ化
    • 必要なコンポーネントを追加して拡張することも可能
    マイクロサービスの開発・運用を支援する機能を提供
    • OpenMetrics(監視)、OpenTracing(追跡)、OpenAPI(API公開)
    • 耐障害性/回復性: ヘルスチェック、サーキット・ブレーカ
    2つのプログラミングモデルを提供
    • Helidon MP:MicroProfile標準仕様準拠の宣言的記法(Java EE開発者フレンドリー)
    • Helidon SE:関数的型記法
    Helidon
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    29

    View Slide

  30. View Slide

  31. Our mission is to help people see data in new ways,
    discover insights, unlock endless possibilities.

    View Slide