27 Oracle Backend for Spring Boot and Microservices
この章では、Oracle Backend for Spring Boot and Microservicesプラットフォーム(OBaaSとも呼ばれる)について説明します。
27.1 Oracle Backend for Spring Boot and Microservicesについて
Spring Bootは、最新のクラウドネイティブ・アプリケーションを構築するための一般的なフレームワークです。Javaにおける最新のエンタープライズ・アプリケーション開発の80%は、マイクロサービスにSpring Bootを使用しています。前述のように、本番環境でのマイクロサービスのデプロイは簡単な作業ではありません。Backend as a Self-Service (BaaS)は、パブリックまたはプライベートの任意のクラウドに数回のクリックでデプロイできる統合プラットフォームで他の11パターン(前述)を実行するため、成功のための最も重要なパターンです。
Oracle Backend for Spring Boot and Microservicesプラットフォーム(Oracle Backend as a Self-Service (OBaaS)とも呼ばれる)には、次の重要な機能が含まれています:
-
OBaaSは、KubernetesによってOracle DatabaseのためのSpringスターターを使用して複数のクラウド、オンプレミス、ラップトップ上にデプロイし、マイクロサービスを迅速に開発します。
-
アプリケーションは、様々なデータ型(リレーショナル、ドキュメント/JSON、グラフ、空間)を備えるコンバージドOracle Databaseを活用し、最も困難なエンタープライズ・アプリケーションの保存データと移動中のデータの両方にサービスを提供します。
-
Oracle Databaseには、イベント・キュー、またはストリーミング・ユース・ケース用のApache Kafkaと非常によく似たトランザクション・イベント・キュー(TxEventQ)と呼ばれるストリーミング機能が含まれており、Oracle Databaseをメッセージ・ブローカにします。
-
プラガブル・データベース(PDB)を使用したOracle Databaseのコンテナ化により、マイクロサービスを単一のPDBに分離したり、各マイクロサービスの境界コンテキストで区切ったり、場合によっては、より少ないPDBのスキーマレベルの分離を使用してデプロイメントのコストを格納したりするのに適しています。
27.2 Oracle Backend for Spring Boot and Microservicesのスタート・ガイド
この項では、Oracle Backend for Spring Boot and Microservicesプラットフォームの使用を開始しようとする開発者にとって重要な情報を提供します。
Oracle Backend for Spring Boot and Microservicesプラットフォーム(OBaaS)は、https://bit.ly/oraclespringbootで説明されています。これには、OCI MarketplaceからOracle Cloud Infrastructure (OCI)へのデプロイメント・パスを使用し、TerraformおよびAnsibleでOCIリソース・マネージャ・テンプレートを使用して数回のクリックでプラットフォームをデプロイする方法に関する情報も含まれています。さらに、カスタム・インストール・パスを使用して、Microsoft Azure、OpenShift、Tanzuにプラットフォームをデプロイすることで、Oracle Database、Kubernetesクラスタおよびネットワーキングの持込み(BYO)が可能になります。
Oracle Autonomous Database Serverlessインスタンスに加えて、次のソフトウェア・コンポーネントがOCI Container Engine for Kubernetesクラスタ(OKEクラスタ)にデプロイされます。次のコンポーネントのリストは、本番環境でのアプリケーション・デプロイメントをサポートするためにOBaaSで実行されるサービスの例です。
ノート:
これらのソフトウェア・コンポーネントの最新リリースについては、必ずhttp://bit.ly/oraclespringbootを参照してください。-
Apache APISIX APIゲートウェイおよびダッシュボード
-
Apache Kafka
-
Coherence Operator
-
コンダクタ・サーバー
-
Grafana
-
HashiCorp Vault
-
Jaeger
-
Apache Kafka
-
Loki
-
Netflix Conductor
-
OpenTelemetry Collector
-
Oracle Autonomous Database Serverless
-
Oracle Backend for Spring Bootコマンドライン・インタフェース(CLI)
-
Oracle Backend for Spring Boot Visual Studio Codeプラグイン
-
Oracle Database Operator for Kubernetes (OraOperatorまたはオペレータ)
-
Oracle Transaction Manager for Microservices (MicroTx)
-
ParseおよびParse Dashboard (オプション)
-
Prometheus
-
Promtail
-
Spring Boot管理ダッシュボード
-
Spring Cloud Configサーバー
-
Spring Cloud Eurekaサービス・レジストリ
-
Strimzi Kafka Operator
OBaaSは、アプリケーションとデータに必要な複数のプラットフォーム・サービスを統合します。Oracle DatabaseとKubernetes、およびOracle Database Operator for Kubernetesを使用して、マイクロサービスのDevOpsを簡単にします。
図27-1 Oracle Backend for Spring Boot and Microservices (OBaaS)

開発者は、次のような開発時または構築時のサービスおよびライブラリにもアクセスできます:
-
データベース・スキーマ管理を含む、サービスのデプロイメントと構成を管理するためのコマンドライン・インタフェース(CLI)
-
サービスのデプロイメントと構成を管理するためのVisual Studio Code (VS Code)プラグイン
-
Oracle DatabaseにアクセスするためのSpringデータ(Java Persistence API (JPA)およびOracle JDBC)
-
Oracle Java Database Connectivity(JDBC)ドライバ
-
Spring Cloud Configクライアント
-
Spring Eurekaサービス検出クライアント
-
Spring Cloud OpenFeign
-
OpenTelemetryコレクタ(自動インスツルメンテーションを含む)
-
Oracleユニバーサル接続プール(UCP)、Oracleウォレット、Oracle Advanced Queuing (AQ)およびTransactional Event Queues (TxEventQ)のSpringスターター
OBaaSも拡張可能であるため、Kubernetes Operator (Weblogicなど)および重要と判断される他のコンポーネント(Redisなど)を追加できます。テスト済プラットフォームをリクエストする十分な顧客があり、コミュニティ(オープン・ソースの場合)、またはベンダー(無料または有料バージョンを使用している場合)からサポートするパスがある場合、これらの追加コンポーネントは、将来、OBaaSに含まれる可能性があります。
OBaaSデプロイメントおよび本番環境でのOBaaSの使用方法の詳細は、http://bit.ly/oraclespringbootを参照してください。
27.2.1 CloudBankサンプル・アプリケーション
Oracleには、Oracle Backend for Spring Boot and Microservicesプラットフォーム(OBaaS)の使用方法を学習するために使用できる、CloudBankというサンプル・アプリケーションがあります。
CloudBankは、次の図に示すように、Oracle Backend for SpringBoot and Microservicesプラットフォームをインストールし、いくつかのマイクロサービス(顧客、アカウント、転送、クレジット・スコア、チェック処理)をデプロイするマイクロサービスベースのアプリケーションです。
図27-2 CloudBankサンプル・アプリケーション

CloudBankハンズオン・ラボでは、次のことを学習できます:
-
Oracle Backend for Spring Boot and Microservicesをインストールします。
-
Spring Boot用の開発環境を設定します。
-
Spring Webを使用してSpring Bootマイクロサービスをゼロから構築し、Representational State Transfer (REST)サービスを作成します。
-
サービス検出およびクライアント側のロード・バランシングを使用します。
-
Spring Actuatorを使用して、サービスの監視を許可します。
-
RESTのかわりにJava Message Service (JMS)で非同期メッセージングを使用するサービスを作成します。
-
Sagaパターンを実装して、マイクロサービス間のデータの一貫性を管理します。
-
APISIX APIゲートウェイを使用して、サービスをクライアントに公開します。
-
提供されているFlutterクライアントを拡張して、構築したサービスを使用する新しいクラウド・キャッシュ機能を追加します。
サンプルCloudBankアプリケーションには、CloudBankラボからアクセスできます。