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.
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
- 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.
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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.
- Habilita la API de Cloud Resource Manager.
- Habilita la API de la administración de identidades y accesos.
- Habilita la API de Administrador de Cloud SQL.
- Habilita la API de cualquier otro servicio de Google Cloud compatible que necesites.
Crea una cuenta de servicio raíz
En la consola de Google Cloud, ve a la página Cuentas de servicio.
Selecciona tu proyecto de Google Cloud.
Haz clic en Crear cuenta de servicio.
Ingresa un nombre en el campo Nombre de cuenta de servicio.
Haz clic en Crear y continuar.
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.
Haz clic en Continuar.
Según corresponda, otorga otro acceso a los usuarios a la cuenta de servicio.
Haz clic en Listo.
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.
En el nombre de la cuenta de servicio, haz clic en la pestaña Claves.
Haz clic en el menú desplegable Agregar clave y, luego, selecciona Crear clave nueva.
Asegúrate de que esté especificado el tipo de clave JSON.
Haz clic en Crear. El archivo de claves JSON se descarga automáticamente en tu estación de trabajo.
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.
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
Haz clic en Crear instancia.
- Selecciona MySQL y haz clic en Siguiente.
- Haz clic en Elegir segunda generación.
- Define un ID de instancia.
- Define una contraseña raíz.
- En el campo Región selecciona la región en la que se ubicará tu entorno de Cloud Foundry.
- Haz clic en Crear.
Crea una base de datos
Después de que se inicie la instancia de Cloud SQL, abre Cloud Shell.
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.Crea una base de datos llamada
servicebroker
.CREATE DATABASE servicebroker;
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.
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;
Configura SSL y obtén los certificados SSL.
En la consola de Google Cloud, abre la página Instancias de Cloud SQL.
Haz clic en el nombre de tu instancia de Cloud SQL.
En la página Detalles de la instancia, haz clic en la pestaña Conexiones.
En la sección SSL en Conexiones SSL, haz clic en Permitir solo conexiones SSL. La actualización puede tardar unos segundos.
En la sección SSL, en Configurar certificados de cliente SSL, haz clic en Crear un certificado de cliente.
Ingresa un nombre y haz clic en Crear.
Descarga los tres archivos de los certificados y guárdalos en una ubicación segura.
En la sección Conectividad de la pestaña Conexiones en la página Detalles de la instancia, realiza estas acciones:
- Confirma que la casilla IP pública esté seleccionada.
- En Redes autorizadas, haz clic en Agregar red.
- En el campo Red, ingresa
0.0.0.0/0
. - Haz clic en Listo.
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
- 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.
- Accede a SAP BTP Cockpit.
- En SAP BTP Cockpit, elige Página principal en la parte superior de la pantalla.
- En el panel de navegación en el lado izquierdo de la pantalla, haz clic en Regiones.
- 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:
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'
Extrae los archivos del agente del servicio de Google Cloud.
tar zxvf *.tar.gz
Cambia los directorios.
cd gcp-service-broker*
Accede al entorno de SAP BTP de Cloud Foundry.
cf login
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 escf.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.Ingresa el nombre de usuario y la contraseña de tu cuenta SAP BTP.
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
omycompany-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
- Accede a SAP BTP Cockpit.
- En SAP BTP Cockpit, ve a Página de pruebas > Regiones > Your Google Cloud region > Your global account > Your subaccount > Spaces > Your space.
- Haz clic en el nombre de la aplicación del agente del servicio de Google Cloud que implementaste en la sección anterior.
- En el menú de la izquierda, haz clic en Variables proporcionadas por el usuario.
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
- Haz clic en Overview (Descripción general) en el menú de la izquierda.
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.
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:
Conéctate al entorno de SAP BTP de Cloud Foundry.
cf login
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
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:
BROKER_SERVICE_NAME
es un nombre único que eliges para el servicio del agente.SECURITY_USER_NAME
es el nombre de usuario que se definió para autenticar las solicitudes del agente en Configura la app del agente del servicio de Google Cloud para Cloud Foundry.SECURITY_USER_PASSWORD
es la contraseña que se definió para autenticar las solicitudes del agente en Configura la app del agente del servicio de Google Cloud para Cloud Foundry.BROKER_APPLICATION_ROUTE
es la URL de la aplicación del agente del servicio como aparece en el paso anterior. Por ejemplo:broker-test-app.cfapps.us30.hana.ondemand.com
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
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:
Usa servicios en el entorno de Cloud Foundry en el Portal de ayuda de SAP.
Documentación del agente del servicio de Google Cloud en GitHub.