Integra los servicios de Google Cloud a Cloud Foundry en SAP Business Technology Platform (SAP BTP)

En estas instrucciones, se muestra cómo integrar los servicios de Google Cloud en un entorno de Cloud Foundry de SAP Business Technology Platform (SAP BTP) mediante el agente de servicio abierto para Google Cloud (agente del servicio de Google Cloud).

El agente del servicio de Google Cloud simplifica la entrega de servicios de Google Cloud a las aplicaciones que se ejecutan en un entorno de Cloud Foundry en SAP BTP. Cuando se crean recursos de Google Cloud y se administran sus permisos correspondientes, el agente del servicio de Google Cloud facilita el consumo de los servicios de Google Cloud desde un entorno de aplicaciones de SAP BTP.

En este diagrama, aparece una vista de alto nivel de los pasos de configuración con algunos ejemplos de servicios de Google Cloud.

Accede a los servicios de Google Cloud desde Cloud Foundry en SAP BTP

Componentes principales de la solución

Los siguientes componentes son necesarios para la configuración del agente del servicio de Google Cloud en SAP BTP para Cloud Foundry.

Servicio Caso práctico
Agente de servicio abierto para Google Cloud Integración de los servicios de Google Cloud en un entorno de SAP BTP de Cloud Foundry
Cloud SQL para MySQL Una base de datos para el almacenamiento de backend del agente del servicio de Google Cloud
Cuenta SAP BTP Proporciona el entorno de SAP BTP de Cloud Foundry en la región de Google Cloud seleccionada
Proyecto de Google Cloud Proporciona los servicios de Google Cloud
CLI de Cloud Foundry Interfaz de línea de comandos para configurar Cloud Foundry

Costos

Cloud SQL, que se recomienda para usar con el agente del servicio de Google Cloud, es un componente facturable de Google Cloud.

El uso de los servicios de Google Cloud a través de sus respectivas API también puede ser facturable.

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.

Requisitos previos

Antes de configurar el entorno de Cloud Foundry en SAP BTP primero debes configurar tu entorno de desarrollo local y crear un proyecto en Google Cloud.

Configura tu entorno de desarrollo

  1. Instala la interfaz de línea de comandos (CLI) de Cloud Foundry en tu estación de trabajo de desarrollo según la documentación del portal de SAP.

Configura un proyecto de Google Cloud

Si aún no tienes un proyecto de Google Cloud con la facturación habilitada, debes crear uno.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Configura el entorno de Google Cloud

Necesitas ciertas API de Google Cloud habilitadas, una cuenta de servicio de Google Cloud y una base de datos para el agente del servicio de Google Cloud.

Habilita las API de Google Cloud requeridas

Habilita estas API en Administrador de API > Biblioteca.

  1. Habilita la API de Cloud Resource Manager.
  2. Habilita la API de la administración de identidades y accesos.
  3. Habilita la API de Administrador de Cloud SQL.
  4. Habilita la API de cualquier otro servicio de Google Cloud compatible que necesites.

Crea una cuenta de servicio raíz

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

    Ir a la página Cuentas de servicio

  2. Selecciona tu proyecto de Google Cloud.

  3. Haz clic en Crear cuenta de servicio.

  4. Ingresa un nombre en el campo Nombre de cuenta de servicio.

  5. Haz clic en Crear y continuar.

  6. En la lista Seleccionar una función, haz clic en Proyecto > Propietario, que proporciona los permisos necesarios para que el agente del servicio de Google Cloud funcione con los servicios de Google Cloud.

  7. Haz clic en Continuar.

  8. Según corresponda, otorga otro acceso a los usuarios a la cuenta de servicio.

  9. Haz clic en Listo.

  10. En la página Cuentas de servicio de la consola de Google Cloud, haz clic en la dirección de correo electrónico de la cuenta de servicio que acabas de crear.

  11. En el nombre de la cuenta de servicio, haz clic en la pestaña Claves.

  12. Haz clic en el menú desplegable Agregar clave y, luego, selecciona Crear clave nueva.

  13. Asegúrate de que esté especificado el tipo de clave JSON.

  14. Haz clic en Crear. El archivo de claves JSON se descarga automáticamente en tu estación de trabajo.

  15. Mueve el archivo de claves JSON a una ubicación segura.

Configura una base de datos de copia de seguridad

El agente del servicio de Google Cloud requiere una base de datos MySQL para almacenar el estado de los recursos aprovisionados. Se recomienda una instancia de segunda generación de Cloud SQL para MySQL, que proporciona una base de datos de MySQL Community Edition completamente administrada, con alta disponibilidad y copias de seguridad y mantenimiento automáticos. Sin embargo, puedes usar cualquier base de datos compatible con el protocolo de MySQL.

Sigue los pasos a continuación para crear una base de datos mediante una instancia de Cloud SQL de segunda generación en Google Cloud; estos pasos deberían ser aplicables a cualquier base de datos compatible con el protocolo de MySQL.

Crea una instancia de Cloud SQL para MySQL

Antes de crear una base de datos, debes crear una instancia de Cloud SQL para MySQL en Google Cloud.

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    ABRIR la página Instancias de Cloud SQL

  2. Haz clic en Crear instancia.

    1. Selecciona MySQL y haz clic en Siguiente.
    2. Haz clic en Elegir segunda generación.
    3. Define un ID de instancia.
    4. Define una contraseña raíz.
    5. En el campo Región selecciona la región en la que se ubicará tu entorno de Cloud Foundry.
    6. Haz clic en Crear.

Crea una base de datos

  1. Después de que se inicie la instancia de Cloud SQL, abre Cloud Shell.

    Abrir Cloud Shell

  2. Conéctate a la instancia de Cloud SQL.

    gcloud sql connect your-cloud-sql-instance --user=root
    

    En el ejemplo anterior your-cloud-sql-instance es el nombre de la instancia de Cloud SQL que creaste en Google Cloud.

  3. Crea una base de datos llamada servicebroker.

    CREATE DATABASE servicebroker;
    
  4. Define un nombre de usuario y una contraseña para el agente del servicio de Google Cloud.

    CREATE USER 'SB_DB_UserName'@'%' IDENTIFIED BY 'SB_DB_Password';
    

    Donde:

    • SB_DB_UserName es el nombre de usuario que representa al agente del servicio de Google Cloud como un usuario de la base de datos.
    • SB_DB_Password es la contraseña que identifica al agente del servicio de Google Cloud en la base de datos.
  5. Configura los privilegios de acceso para el agente del servicio de Google Cloud.

    GRANT ALL PRIVILEGES ON servicebroker.* TO 'SB_DB_UserName'@'%' WITH GRANT OPTION;
    
  6. Configura SSL y obtén los certificados SSL.

    1. En la consola de Google Cloud, abre la página Instancias de Cloud SQL.

      ABRIR la página Instancias de Cloud SQL

    2. Haz clic en el nombre de tu instancia de Cloud SQL.

    3. En la página Detalles de la instancia, haz clic en la pestaña Conexiones.

    4. En la sección SSL en Conexiones SSL, haz clic en Permitir solo conexiones SSL. La actualización puede tardar unos segundos.

    5. En la sección SSL, en Configurar certificados de cliente SSL, haz clic en Crear un certificado de cliente.

    6. Ingresa un nombre y haz clic en Crear.

    7. Descarga los tres archivos de los certificados y guárdalos en una ubicación segura.

  7. En la sección Conectividad de la pestaña Conexiones en la página Detalles de la instancia, realiza estas acciones:

    1. Confirma que la casilla IP pública esté seleccionada.
    2. En Redes autorizadas, haz clic en Agregar red.
    3. En el campo Red, ingresa 0.0.0.0/0.
    4. Haz clic en Listo.
  8. Haz clic en Guardar para guardar los cambios de autorización.

Obtén una cuenta de prueba de SAP BTP para Cloud Foundry en la infraestructura de Google Cloud

  1. Regístrate para obtener una cuenta de prueba de SAP BTP. Necesitas una cuenta de SAP activa para obtener una cuenta de prueba de SAP BTP.
  2. Accede a SAP BTP Cockpit.
  3. En SAP BTP Cockpit, elige Página principal en la parte superior de la pantalla.
  4. En el panel de navegación en el lado izquierdo de la pantalla, haz clic en Regiones.
  5. En Entorno de Cloud Foundry, selecciona una región que use la infraestructura de Google Cloud, como US-Central (IA). Esto crea una organización y un espacio dentro del entorno de Cloud Foundry de SAP BTP.

Instala y configura el agente del servicio de Google Cloud para Cloud Foundry

Implementa el agente del servicio de Google Cloud para Cloud Foundry

En una terminal de tu estación de trabajo de desarrollo, haz lo siguiente:

  1. Instala la versión más reciente del agente del servicio de Google Cloud para Cloud Foundry desde GitHub.

    curl -s https://api.github.com/repos/GoogleCloudPlatform/gcp-service-broker/releases/latest \
    |grep 'tag_name' \
    |cut -d\" -f4 \
    |xargs -I {} curl -sOL "https://github.com/GoogleCloudPlatform/gcp-service-broker/archive/"{}'.tar.gz'
    
  2. Extrae los archivos del agente del servicio de Google Cloud.

    tar zxvf *.tar.gz
    
  3. Cambia los directorios.

    cd gcp-service-broker*
    
  4. Accede al entorno de SAP BTP de Cloud Foundry.

    cf login
    
  5. Ingresa el extremo de la API.

    https://api.techkey.hana.ondemand.com
    

    En el ejemplo anterior techkey es una clave técnica definida por SAP que identifica la región del extremo de la API. Por ejemplo, la clave técnica para la región central de EE.UU. que incluye la infraestructura de Google Cloud es cf.us30. Para obtener una lista de todas las regiones para el entorno de Cloud Foundry de SAP BTP, consulta el Portal de ayuda de SAP.

  6. Ingresa el nombre de usuario y la contraseña de tu cuenta SAP BTP.

  7. Implementa la app del agente del servicio de Google Cloud en el entorno de Cloud Foundry.

    cf push APP_NAME --no-start
    

    Donde APP_NAME es un nombre único que eliges para la aplicación del agente del servicio de Google Cloud. Por ejemplo, gcp-service-broker-001 o mycompany-gcp-svc-broker-app.

    Verás información similar a la del siguiente ejemplo después de que Cloud Foundry implemente la app del agente del servicio de Google Cloud:

    name:              gcp-service-broker-example-app
    requested state:   stopped
    routes:            gcp-service-broker-example-app.cfapps.us30.hana.ondemand.com
    last uploaded:
    stack:
    buildpacks:
    type:           web
    instances:      0/1
    memory usage:   1024M
         state   since                  cpu    memory   disk     details
    #0   down    2018-12-19T23:49:13Z   0.0%   0 of 0   0 of 0
    

Configura la app del agente del servicio de Google Cloud para Cloud Foundry

  1. Accede a SAP BTP Cockpit.
  2. En SAP BTP Cockpit, ve a Página de pruebas > Regiones > Your Google Cloud region > Your global account > Your subaccount > Spaces > Your space.
  3. Haz clic en el nombre de la aplicación del agente del servicio de Google Cloud que implementaste en la sección anterior.
  4. En el menú de la izquierda, haz clic en Variables proporcionadas por el usuario.
  5. Usa el botón Agregar variable para definir las siguientes variables del agente del servicio de Google Cloud como pares clave-valor:

    Clave Valor
    CA_CERT
    El contenido del archivo de certificado del servidor, server-ca.pem, que descargaste cuando configuraste SSL en la sección sobre cómo configurar una base de datos de respaldo.
    CLIENT_CERT
    El contenido del archivo del certificado de cliente, client-cert.pem, que descargaste cuando configuraste SSL en la sección sobre cómo configurar una base de datos de copia de seguridad.
    CLIENT_KEY
    El contenido del archivo de claves del cliente, client-key.pem, que descargaste cuando configuraste SSL en la sección sobre cómo configurar una base de datos de copia de seguridad.
    DB_HOST
    La dirección IP pública de tu instancia de Cloud SQL, como aparece en la sección sobre cómo conéctarte a esta instancia de la página Detalles de la instancia para tu instancia de Cloud SQL en la consola de Google Cloud.
    DB_PASSWORD
    La contraseña que definiste para el agente del servicio de Google Cloud a fin de acceder a la base de datos que configuraste en Configura una base de datos de copia de seguridad.
    DB_USERNAME
    El nombre de usuario que definiste para el agente del servicio de Google Cloud cuando creaste la base de datos. Para una base de datos de Cloud SQL, puedes ver el nombre de usuario en Cuentas de usuario de MySQL en la pestaña Usuarios de la página Detalles de la instancia de tu instancia de Cloud SQL en la consola de Google Cloud.
    ROOT_SERVICE_ACCOUNT_JSON
    El contenido del archivo de claves JSON que descargaste cuando creaste la cuenta de servicio raíz.
    SECURITY_USER_NAME
    Un nombre de usuario que defines para que el agente del servicio use cuando se autentiquen sus solicitudes. Especificarás este mismo nombre de usuario más adelante en el comando cf create-service-broker cuando crees el servicio del agente.
    SECURITY_USER_PASSWORD
    Una contraseña que defines para que el agente del servicio use cuando se autentiquen sus solicitudes. Especificarás esta misma contraseña más adelante en el comando cf create-service-broker cuando crees el servicio del agente.
    Variables de entorno opcionales Si deseas obtener una lista de variables opcionales que puedes usar para personalizar el agente del servicio de Google Cloud, consulta Personalización de la instalación.

Inicia la app del agente del servicio de Google Cloud para Cloud Foundry

  1. Haz clic en Overview (Descripción general) en el menú de la izquierda.
  2. Para iniciar la aplicación del agente, haz clic en Iniciar (Start). Cuando la aplicación esté activa, los indicadores verdes Iniciado (Started) y En ejecución (Running) aparecerán en la página Descripción general (Overview), como se muestra en las siguientes imágenes.

    Un indicador verde que dice Iniciado (Started) muestra que se inició el agente del servicio de Google Cloud

    Un indicador verde que dice EN EJECUCIÓN (RUNNING) muestra que el agente del servicio de Google Cloud está en ejecución.

  3. Si la app del agente del servicio de Google Cloud no se inicia o muestra Error o Crashed, verifica los registros de la aplicación en tu estación de trabajo de desarrollo y ajusta las variables o configuración según corresponda.

    cf logs APP_NAME --recent
    

Registra el agente del servicio de Google Cloud para Cloud Foundry

En tu estación de trabajo de desarrollo, haz lo siguiente:

  1. Conéctate al entorno de SAP BTP de Cloud Foundry.

    cf login
    
  2. Enumera las aplicaciones implementadas.

    cf apps
    

    Verás un resultado similar al del siguiente ejemplo:

    name              requested state   instances   memory   disk   urls
    broker-test-app   started           1/1         1G       1G     broker-test-app.cfapps.us30.hana.ondemand.com
    
  3. Registra el servicio del agente.

    cf create-service-broker BROKER_SERVICE_NAME SECURITY_USER_NAME
    SECURITY_USER_PASSWORD https://BROKER_APPLICATION_ROUTE --space-scoped
    

    Donde:

  4. Verifica el registro del servicio del agente.

    cf service-brokers
    

    Deberías ver un resultado similar al siguiente:

    name                  url
    broker-service-name   https://broker-service-name.cfapps.us30.hana.ondemand.com
    
  5. Verifica que los servicios de Google Cloud ya estén disponibles en el servicio de Marketplace de SAP BTP.

    cf marketplace
    

    En el siguiente ejemplo, que se editó para facilitar la lectura y adaptarlo a la página, se muestran dos servicios de una lista de servicios de Google Cloud en el mercado.

    service          plans                      description
    ...
    google-bigquery  default                    A fast, economical and fully managed data warehouse for large-scale data analytics.
    google-bigtable  three-node-production-hdd  A high performance NoSQL database service for large analytical and operational workloads.
    

    Para obtener una lista de los servicios de Google Cloud disponibles, consulta Open Service Broker for Google Cloud.

¿Qué sigue?

Crea instancias de servicios de Google Cloud y vincúlalas a tus aplicaciones de SAP BTP.

Para obtener más información sobre cómo crear y vincular servicios de Google Cloud, consulta el siguiente vínculo: