BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring Cloud App Broker V1でマネージドサービス開発が容易に

Spring Cloud App Broker V1でマネージドサービス開発が容易に

原文(投稿日:2019/09/07)へのリンク

Spring Cloud App Broker V1がマネージドサービスの開発を容易に

Spring Cloudは、Spring Cloud App Brokerと呼ばれる新たなフレームワークを導入した。Open Service Broker APIを実装するSpring Bootアプリケーションの開発と、それらアプリケーションのマネージドサービスとしてのプロビジョニングが容易になる。

Open Service Broker APIにより、KubernetesやCloud Foundryなど、クラウドネイティブプラットフォームで動作しているアプリケーションに対するバッキングサービスの提供が可能になる。このAPIの主要なコンポーネントがサービスブローカだ。サービスブローカはサービスのライフサイクルを管理し、提供するサービスカタログのフェッチ、サービスインスタンスのプロビジョンとプロビジョン解除、アプリケーションのサービスインスタンスへのバインドとバインド解除を行うためのコマンドを提供する。クラウドネイティブなプラットフォームは、Service Brokerと対話することにより、Service Brokerが提供するマネージドサービスのプロビジョンとアクセスの獲得が可能になるOSGIに精通している人にとって、Open Service Broker APIには、OSGIサービス、サービス参照、およびサービスレジストリと、考え方の点で近いものがある。

Spring Cloud App Brokerは、Spring Cloud Open Service Broker上の抽象化レイヤで、Spring Cloud Open Service Brokerインターフェースに対する独自の実装を提供する。Spring Cloud Open Service Broker自体は、Open Service Broker APIをサポートするプラットフォーム上において、サービスブローカの開発と管理を行うために使用されるフレームワークである。

Spring Cloud App Brokerを使用することで、YAMLあるいはJavaプロパティファイルで定義された外部設定を使って、Service Brokerを短期間で開発することが可能になる。まず最初に、Spring Bootアプリケーションを開発して、App Brokerの依存関係をプロジェクトのビルドファイルに含める。Gradleをビルドツールとして使用するプロジェクトの場合は、次の依存関係を追加する必要がある。

dependencies {
    api 'org.springframework.cloud:spring-cloud-starter-app-broker-cloudfoundry:1.0.1.RELEASE'
}

例として、インテント分類やエンティティ抽出といった自然言語理解(NLU)機能を提供するサービスを定義して公開する場合には、以下のスニペットに示すように、spring.cloud.openservicebroker下のプロパティを使用したSpring Cloud Open Service Brokerの設定を含める。

spring:
  cloud:
    openservicebroker:
      catalog:
        services:
        — name: mynlu
          id: abcdef-12345
          description: A NLU service
          bindable: true
          tags:
          — nlu
          plans:
          — name: standard
            id: ghijk-678910
            description: A standard plan
            free: true

このスニペットが示すように、spring.cloud.appbrokerの下のプロパティを使用したSpring Cloud App Brokerの設定を含めておく。

spring:
  cloud:
    appbroker:
      services:
        — service-name: mynlu
          plan-name: standard
          apps:
            — name: nlu-service
              path: classpath:mynlu.jar            
      deployer:
        cloudfoundry:
          api-host: api.mynlu.com
          api-port: 443
          default-org: test
          default-space: development

Spring Cloud App Brokerはこれらの設定を利用して、NLUサービスの公開を処理し、サービスのプロビジョニングとバインドを管理する。

プロジェクトのドキュメントには、様々なサービスの設定オプションやカスタマイズ、展開オプションについて説明されている。注意が必要なのは、現時点ではCloud Foundryのみを展開プラットフォームとしてサポートしている点である。

この記事に星をつける

おすすめ度
スタイル

BT