SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Oracle Developer Days 2022 - Spring レポート(PR)

マイクロサービスのための新製品「Oracle Transaction Manager for Microservices」を徹底解説

  • このエントリーをはてなブックマークに追加

 オラクルは近々、マイクロサービスアプリケーション向けに「Oracle Transaction Manager for Microservices(以下、TMM)」をリリースする。まず導入としてマイクロサービスに関する課題を説明し、次にTMMの概要やサポート範囲、最後にオラクルの今後の展望を明かす。

  • このエントリーをはてなブックマークに追加

マイクロサービスにおける課題、オラクルの解決策

 まずはマイクロサービスの対極にある従前のモノリシック(アプリケーション)から確認しよう。これは1つの巨大岩のようなものだ。内部でローカルトランザクションを実行するため、データベースが絶えず更新され、モジュール間には多数の依存関係があり、コードもテーブルも膨大な数を抱えている。巨大な固まりなので、保守の困難さなどさまざまな課題を抱えている。

 一方、マイクロサービスはより小さな独立したモジュールで構成されるもので、各モジュールは個別に開発・テスト・デプロイされる。保守の容易さなどのメリットはあるものの、その数が多くなるとオーケストレーションの複雑性、データストアの管理、遅延の発生などで課題が生じる。

 ゆえに「スケーラビリティはデータの一貫性と引き換え」と受けとめられがち。一貫性を保証する方法はいくつかあり、その1つに非同期にやりとりをして最終的に一貫性を確保するSAGAパターンがある。しかし、大量のコードが必要となり簡単ではない。扱う言語が複数であること、共通フレームワークがないこともマイクロサービスにおける課題となっている。

 そのなかで、オラクルが目指すのは一貫性確保のための手間を省くことによってアプリケーション開発コストを削減し、市場投入期間の短縮を図ること。これが「Oracle Transaction Manager for Microservices(以下、TMM)」で、オラクルはインフラレベルで機能を提供しようとしている。

 まず複数言語でのマイクロサービス全体のデータ一貫性を保つための手法として、複数のトランザクションモデルを用意する。XA、TCC(Try-Confirm-Cancel)、SAGAであるが、SAGAはEclipse Microprofile LRA(Long Running Actions) 規格に準拠する。エンタープライズ製品なので可用性やスケーラビリティを重視し、かつOracle Databaseとの最適化も施し、セキュリティ統合も標準搭載する。

 最初はライセンス製品としてリリースし、オンプレミスでもクラウドでもKubernetes上にデプロイ可能である。今後はOracle Cloudのマネージドサービスやハイブリッド型での提供を検討している。またTMMはさまざまな言語をサポートするのが目標なので、最初のリリースではJava、Node.js、Tuxedoで使われるC/C++がサポートされ、後にGolangやPythonもサポートする。

Oracle Transaction Manager for Microservices
Oracle Transaction Manager for Microservices

 TMM全体のアーキテクチャは下図の通り。黄色い部分がTMM、緑がアプリケーションとなる。TMMの中心となるのがトランザクションコーディネーターだ。先述したように、XA、TCC、LRAのトランザクションモデルをサポートし、これらのモデルに対してアプリケーションとリンクするためのライブラリが提供される。JavaやNode.jsにはTMMLibを使い、TuxedoはGWWS(REST APIゲートウェイ)の一部となる。他にもPL/SQLのようなデータベース常駐サービスの呼び出しにXAトランザクションを提供したり、コーディネーターに関する情報を表示するコンソールも提供される。

Transaction Manager for Microservices Architecture
Transaction Manager for Microservices Architecture

 画面右にはKubernetesエコシステムが並ぶ。TMMと統合されるため、トランザクションコーディネーターが介在する対象範囲をPrometheusとGrafanaで監視し、Jaegerでトレースし、ELK/EFKでロギングすることも可能になる。データベースサーバのXAサポートに関しては、基本的に XAを適切にサポートするあらゆるデータベースを使用できる。

ITに携わるすべての開発者とエンジニアにお届けするオンラインイベント 「Oracle Developer Days 2022 Spring」

 「未来を創造する最新テクノロジーを今、あなたの手に。」をテーマに2022年5月20日・27日に開催された オンラインイベント 「Oracle Developer Days 2022 Spring」

 各セッションのアーカイブ動画と資料公開中!(登録不要)ぜひ、ご覧ください!

次のページ
XAトランザクションを簡単かつスケーラブルに

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Oracle Developer Days 2022 - Spring レポート連載記事一覧
この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。 Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16168 2022/08/17 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング