1.3. Spring Boot の概要

Spring Boot では、スタンドアロン Spring ベースのアプリケーションを作成できます。Spring Boot に関するドキュメントの一覧は、「関連情報」を参照してください。https://access.redhat.com/documentation/ja-jp/red_hat_support_for_spring_boot/2.2/html-single/spring_boot_runtime_guide/#additional-springboot-resources_spring-boot

OpenShift 上の Spring Boot は、以下のように、Spring Boot の合理化されたアプリケーション開発機能と OpenShift のインフラストラクチャーおよびコンテナーオーケストレーション機能を組み合わせたものです。

  • ローリング更新
  • サービス検出
  • カナリアデプロイメント
  • 一般的なマイクロサービスパターンを実装する方法: 外部化設定、ヘルスチェック、サーキットブレーカー、およびフェイルオーバー

1.3.1. Spring Boot の機能およびフレームワークの概要

本ガイドでは、Spring Boot を使用した OpenShift でのクラウドネイティブアプリケーションの開発について説明します。これ以降のセクションのアプリケーション例では、Spring Boot を他の Red Hat テクノロジーと統合する方法を説明します。これらの統合機能を使用して、クラウドネイティブの Java アプリケーションを設定する最新の設計パターンを実装することができます。

  • resilient
  • responsive
  • scalable
  • secure

通常の Web サーバースタックまたはノンブロッキングリアクティブスタックで Spring Boot アプリケーションをビルドできます。

Developer Launcher を使用して、サンプルアプリケーションを OpenShift クラスターにデプロイすることもできます。アプリケーションはパッケージ化や変更せずにデプロイできます。または、それらをカスタマイズして、追加のクラウドネイティブ機能を使用し、OpenShift に組み込まれた継続的な統合機能を使用してそれらを更新で再デプロイすることもできます。

Red Hat は、Snowdrop コミュニティープロジェクトをベースとした Spring Boot のリリースをサポートします。

サポートされるランタイムフレームワークのコンポーネントには以下が含まれます。

  • Apache Tomcat (Red Hat Java Web Server 製品オファリングで提供) および JBoss Undertow (Red Hat Enterprise Application Platform で提供) をベースとしたクラウドネイティブの Java ベースのアプリケーションを開発するための Spring Boot Starter のセット。
  • Spring WebFlux 非ブロッキング API、Eclipse Vert.x および Reactor Netty によって提供されるネットワークコンポーネントを使用して、リアクティブスタックでクラウドネイティブの Java ベースのアプリケーションを開発するための Spring Boot Starters のセット。
  • Spring Boot と統合する OpenShift および Kubernetes のアノテーションパーサーのコレクションおよびアプリケーションテンプレートジェネレーターのコレクションである Dekorate。Dekorate を使用すると、OpenShift クラスターへのデプロイメント用にアプリケーションを設定するのに使用可能なテンプレートを自動的に作成できます。アプリケーションのビルド時、Dokorate は、アプリケーションプロジェクトの設定プロパティー (例: application.properties) が含まれるファイル、またはアプリケーションのソースファイルにあるアノテーションから設定パラメーターを抽出します。次に、Dekorate は抽出されたパラメーターを使用して、アプリケーションを OpenShift クラスターにデプロイするのに使用できるリソースファイルを作成し、設定します。Dekorate は、使用する言語とビルドツールとは独立して機能し、複数のクラウドネイティブなアプリケーションフレームワークと統合します。Red Hat は Dekorate を使用して、OpenShift Container Platform に Java ベースのアプリケーションをデプロイするアプリケーションテンプレートを生成するためのサポートを提供します。Red Hat は、Maven で Dekorate の使用に対するサポートを提供しています。他のビルドツールはサポートされていません。