Spring Music のデプロイ

以下の手順では、Kf を使用して Cloud Foundry Spring Music 参照アプリをデプロイする方法を説明します。ここでは、その過程でいくつかのことを説明します。

  1. ソースから Java アプリをビルド: Spring Music のソースはローカルではなくクラスタ上でビルドされます。

  2. サービス ブローカーの統合: PostgreSQL データベースを作成して Spring Music アプリにバインドします。

  3. Spring Cloud Connectors: Spring Cloud Connectors は、Spring Music App がバインドされた CF サービスなどを検出するために使用され、Kf とシームレスに連携します。

  4. Java バージョンの構成: ビルドパックで使用する Java のバージョンを指定します。

前提条件

オプション 1: Minibroker

クラスタ管理者は、こちらの手順に沿ってクラスタに Minibroker サービス ブローカーをインストールする必要があります。Minibroker を使用すると、PostgreSQL データベースをプロビジョニングして、それを使用するようにアプリを構成できます。

Minibroker がインストールされ、クラスタで使用できる状態かを確認するには、kf marketplace を実行します。次のような出力が表示されます。

$ kf marketplace
5 services can be used in Space "demo", use the --service flag to list the plans for a service

Broker      Name        Space      Status  Description
minibroker  mariadb                Active  Helm Chart for mariadb
minibroker  mongodb                Active  Helm Chart for mongodb
minibroker  mysql                  Active  Helm Chart for mysql
minibroker  postgresql             Active  Helm Chart for postgresql
minibroker  redis                  Active  Helm Chart for redis

オプション 2: その他のサービス ブローカー

PostgreSQL サービスの作成をサポートしていれば、インストールされている別のサービス ブローカーを使用できます。たとえば、gcp-service-broker が使用できます。

デプロイ

ソースのクローンを作成する

  1. Spring Music リポのクローンを作成します。

    git clone https://github.com/cloudfoundry-samples/spring-music.git spring-music
    cd spring-music
  2. manifest.yml を編集して、内容を次のように置き換えます。

    ---
    applications:
    - name: spring-music
      memory: 1G
      random-route: true
      stack: org.cloudfoundry.stacks.cflinuxfs3
      env:
        BP_AUTO_RECONFIGURATION_ENABLED: false
    

アプリを push する

  1. デプロイ(Space がすでに kf target されていることを前提。詳しくはこちらのドキュメントを参照):

    kf push spring-music
    
  2. プロキシ機能を使用して、デプロイされたアプリにアクセスし、ブラウザで http://localhost:8080 を読み込みます。

    kf proxy spring-music
    

    デプロイされたアプリには、どの Spring プロファイルが使用されているかを表示する UI 要素が含まれます(Spring プロファイルがある場合)。ここで、使用されているプロファイルがなければ、メモリ内データベースが使用されていることがわかります。

データベースを作成してバインドする

  1. マーケットプレイスにインストールされているブローカーを介して PostgreSQL サービスを作成します。

    kf create-service postgresql 11-7-0 spring-music-db -c '{"postgresqlDatabase":"smdb", "postgresDatabase":"smdb"}'
    
  2. サービス インスタンスを Spring Music アプリにバインドします。

    kf bind-service spring-music spring-music-db -c '{"postgresqlDatabase":"smdb", "postgresDatabase":"smdb"}'
    
  3. アプリを再起動し、VCAP_SERVICES 環境変数を介してサービス バインディングを使用できるようにします。

    kf restart spring-music
    
  4. (省略可)バインディングの詳細を次のように表示します。

    kf bindings
    
  5. kf proxy からアプリに再度アクセスし、ウェブブラウザで表示します。Spring プロファイルが表示され、作成してバインドした PostgreSQL サービスが使用されていることがわかります。

破棄

  1. PostgreSQL サービスをバインド解除して削除します。

    kf unbind-service spring-music spring-music-db
    kf delete-service spring-music-db
    
  2. このアプリを削除します。

    kf delete spring-music