di

Resumen

En este laboratorio se trabajan de forma combinada los modelos de Infraestructura como servicio y Plataforma como servicio. Se creará una base de datos MySQL en Google Cloud usando el modelo IaaS y se usará el modelo PaaS para desplegar en Vercel y Google App Engine una aplicación que interactúe con la base de datos MySQL.

Objetivos
  • Crear una base de datos MySQL usando el modelo IaaS.

  • Configurar variables de entorno en Vercel y Google App Engine.

  • Usar el modelo PaaS para desplegar aplicaciones en Vercel y Google App Engine a partir de un repositorio en GitHub.

Prerrequisitos
  • Cuenta y proyecto creado en Google Cloud.

  • Cuenta creada en GitHub.

  • Cuenta creada en Vercel.

1. Recursos

2. Actividades

La aplicación SG tiene un repositorio disponible en GitHub. Se trata de una aplicación que muestra un catálogo de artículos deportivos. Los artículos están almacenados en una base de datos MySQL denominada SG.

SGApp

Como se muestra a continuación, la aplicación usa variables de entorno para almacenar los valores de dirección IP del host de la base de datos, usuario y contraseña.

$conexion = mysqli_connect(getenv('MYSQL_HOST'), getenv('MYSQL_USER'), getenv('MYSQL_PASSWORD'), "SG");
Note

Si aún no se dispone de la base de datos SG, seguir el tutorial Creación de una instancia MySQL en Google Cloud para crear la base de datos SG.

2.1. Desplegar la aplicación SG en Vercel

Partiendo de que la base de datos SG está creada y disponible en Google Cloud, seguir los pasos siguientes:

  1. Hacer un fork en GitHub del repositorio de la aplicación SG.

  2. Seguir el apartado Despliegue Vercel del tutorial Despliegue en Vercel y Google App Engine y crear una aplicación nueva en Vercel para SG (puede ser necesario borrar alguna existente en función de la cuota disponible).

  3. Consultar la Guía de Vercel para la creación y configuración de variables de entorno.

  4. Definir en el proyecto Vercel las variables de entorno MYSQL_HOST, MYSQL_USER y MYSQL_PASSWORD con los valores correspondientes de la dirección IP pública de la base de datos MySQL de Google Cloud y sus credenciales de acceso.

  5. Desplegar la aplicación SG.

Important

Para la instancia MySQL en Google Cloud al finalizar la práctica para no malgastar el crédito del cupón de la asignatura en Google Cloud. Se trata de detener la instancia MySQL, no de eliminarla. En otras actividades la volveremos a iniciar. Mientras tanto, debe quedar detenida.

2.2. Desplegar la aplicación SG en Google App Engine

Partiendo de que la base de datos SG está creada y disponible en Google Cloud, seguir los pasos siguientes:

  1. Seguir el apartado Despliegue en Google App Engine del tutorial Despliegue en Vercel y Google App Engine

  2. Clonar en Cloud Shell el repositorio de la aplicación SG.

  3. Dentro del directorio de la aplicación SG en Cloud Shell crear el descriptor app.yaml siguiendo este ejemplo de descriptor app.yaml.

  4. Consultar el apartado Defining environment variables de la Guía de configuración del archivo app.yaml para ver cómo configurar variables de entorno en el descriptor app.yaml.

  5. Añadir al descriptor app.yaml las variables de entorno MYSQL_HOST, MYSQL_USER y MYSQL_PASSWORD con los valores correspondientes de la dirección IP pública de la base de datos MySQL de Google Cloud y sus credenciales de acceso.

    Note

    Usa el editor de Cloud Shell (botón Abrir editor) para editar de forma cómoda el archivo app.yaml. Respeta los espacios en el archivo y ten en cuenta que los valores de las variables de entorno se consideran cadenas en este caso y deben ir encerrados entre comillas simples.

    Para volver a la consola de Cloud Shell desde el editor pulsa el botón Abrir terminal.

  6. Desplegar la aplicación SG.

3. Detener los recursos iniciados

La instancia MySQL y la aplicación en App Engine consumen crédito del cupón de la asignatura mientras estén activas. Haz una parada de los recursos no necesarios para no malgastar el crédito del cupón de la asignatura en Google Cloud. Se trata de detenerlos, no de eliminarlos. En otras actividades los volveremos a iniciar. Mientras tanto, deben quedar detenidos.