Implementar Spring Music

En estas instrucciones, se te explicará cómo implementar la app de referencia de Cloud Foundry Spring Music con Kf, en la que se muestran algunos aspectos del proceso:

  1. Compila apps de Java desde la fuente: La fuente de Spring Music se compilará en el clúster, no de forma local.

  2. Integración de agente del servicio: Crearás y vincularás una base de datos PostgreSQL a la aplicación Spring Music.

  3. Spring Cloud Connectors: La app de Spring Music usa Spring Cloud Connectors para detectar elementos como servicios de CF vinculados. Funcionan perfectamente con Kf.

  4. Configuración de la versión de Java: Especificarás la versión de Java que deseas que use el paquete de compilación.

Requisitos

Opción 1: Minibroker

El administrador del clúster debe seguir estas instrucciones para instalar el agente del servicio de Minibroker en tu clúster. Minibroker te permitirá aprovisionar una base de datos PostgreSQL y configurar tu aplicación para usarla.

Para confirmar que Minibroker esté instalado y disponible para tu clúster, ejecuta kf marketplace y deberías ver un resultado similar al siguiente:

$ 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

Opción 2: Otro agente del servicio

Puedes usar un agente del servicio diferente que esté instalado, siempre y cuando sea compatible con la creación de servicios de PostgreSQL. Por ejemplo, el gcp-service-broker.

Implementa

Clona la fuente

  1. Clona el repositorio de Spring Music.

    git clone https://github.com/cloudfoundry-samples/spring-music.git spring-music
    cd spring-music
  2. Edita manifest.yml y reemplaza el contenido por lo siguiente:

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

Envía la app

  1. Implementa (siempre que ya hayas kf target un espacio; consulta estos documentos para obtener más detalles):

    kf push spring-music
    
  2. Usa la función de proxy para acceder a la app implementada y, luego, carga http://localhost:8080 en el navegador:

    kf proxy spring-music
    

    La app implementada incluye un elemento de IU que muestra qué perfil de Spring (si corresponde) está en uso. Aquí no se usa ningún perfil, lo que indica que se está usando una base de datos en la memoria.

Crea y vincula una base de datos

  1. Crea un servicio de PostgreSQL a través del agente instalado en el mercado:

    kf create-service postgresql 11-7-0 spring-music-db -c '{"postgresqlDatabase":"smdb", "postgresDatabase":"smdb"}'
    
  2. Vincula la instancia del servicio a la app de Spring Music:

    kf bind-service spring-music spring-music-db -c '{"postgresqlDatabase":"smdb", "postgresDatabase":"smdb"}'
    
  3. Reinicia la app para que la vinculación del servicio esté disponible a través de la variable de entorno VCAP_SERVICES:

    kf restart spring-music
    
  4. Visualiza los detalles de vinculación (opcional):

    kf bindings
    
  5. kf proxy en la aplicación de nuevo y visualízalo en tu navegador web. El perfil de Spring debería mostrarse, lo que indica que el servicio de PostgreSQL que creaste y vinculaste está en uso:

Destruir

  1. Desvincula y borra el servicio de PostgreSQL:

    kf unbind-service spring-music spring-music-db
    kf delete-service spring-music-db
    
  2. Borra la app:

    kf delete spring-music