arrow_back

Cómo implementar aplicaciones en Google Cloud

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Cómo implementar aplicaciones en Google Cloud

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

Descripción general

En este lab, implementarás aplicaciones en los servicios de Google Cloud: App Engine, Kubernetes Engine y Cloud Run.

Servicios de Google Cloud: Arquitectura de App Engine, Kubernetes Engine y Cloud Run

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Descargar una app de ejemplo desde GitHub
  • Realizar la implementación en App Engine
  • Realizar la implementación en Kubernetes Engine
  • Realizar la implementación en Cloud Run

Configura el entorno de tu lab

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Tarea 1. Crea una aplicación sencilla de Python

Necesitas algún código fuente para administrar. Por lo tanto, crearás una aplicación web simple con Flask de Python. La aplicación será solo un poco mejor que “Hello World”, pero será suficiente para probar la canalización que crearás.

  1. En la consola de Cloud, haz clic en Activar Cloud Shell (Ícono de Activar Cloud Shell).
  2. Si se te solicita, haz clic en Continuar.

3.9. En Cloud Shell, ingresa el siguiente comando para crear una carpeta llamada gcp-course:

mkdir gcp-course
  1. Cambia a la carpeta que acabas de crear:
cd gcp-course
  1. Crea una carpeta llamada deploying-apps-to-gcp:
mkdir deploying-apps-to-gcp
  1. Cambia a la carpeta que acabas de crear:
cd deploying-apps-to-gcp
  1. En Cloud Shell, haz clic en Abrir editor (Ícono del editor) para abrir el editor de código. Si se te solicita, haz clic en Abrir en una nueva ventana.
  2. En el árbol del explorador de la izquierda, selecciona la carpeta gcp-course > deploying-apps-to-gcp.
  3. Haz clic en deploying-apps-to-gcp.
  4. Haz clic en New File.
  5. Asígnale el nombre main.py al archivo y presiona Intro.
  6. Pega el siguiente código en el archivo que acabas de crear:
from flask import Flask, render_template, request app = Flask(__name__) @app.route("/") def main(): model = {"title": "Hello GCP."} return render_template('index.html', model=model) if __name__ == "__main__": app.run(host='0.0.0.0', port=8080, debug=True, threaded=True)
  1. Para guardar los cambios, presiona CTRL + S.
  2. Haz clic en la carpeta deploying-apps-to-gcp.
  3. Haz clic en New Folder.
  4. Asigna el nombre templates a la carpeta y presiona Intro.
  5. Haz clic con el botón derecho en la carpeta templates y crea un nuevo archivo con el nombre layout.html.
  6. Agrega el siguiente código y guarda el archivo como lo hiciste antes:
<!doctype html> <html lang="en"> <head> <title>{{model.title}}</title> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> </head> <body> <div class="container"> {% block content %}{% endblock %} <footer></footer> </div> </body> </html>
  1. Además, en la carpeta templates, agrega otro archivo nuevo llamado index.html.

  2. Agrega el siguiente código y guarda el archivo como lo hiciste antes:

{% extends "layout.html" %} {% block content %} <div class="jumbotron"> <div class="container"> <h1>{{model.title}}</h1> </div> </div> {% endblock %}
  1. En Python, los requisitos previos de la aplicación se administran mediante pip. Ahora, agregarás un archivo que incluye los requisitos para esta aplicación.

  2. En la carpeta deploying-apps-to-gcp (no en la carpeta templates), crea un nuevo archivo. Luego, agrega lo siguiente al archivo y guárdalo con el nombre requirements.txt:

Flask==2.0.3 itsdangerous==2.0.1 Jinja2==3.0.3 werkzeug==2.2.2

Tarea 2. Define una compilación de Docker

El primer paso para usar Docker es crear un archivo llamado Dockerfile. En este archivo, se define cómo se construye un contenedor de Docker. Lo harás ahora.

  1. En la carpeta deploying-apps-to-gcp, haz clic en Nuevo archivo y asígnale el nombre Dockerfile al archivo nuevo.

El archivo Dockerfile se usa para definir cómo se compila el contenedor.

  1. Agrega lo siguiente:
FROM python:3.9 WORKDIR /app COPY . . RUN pip install gunicorn RUN pip install -r requirements.txt ENV PORT=8080 CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 main:app
  1. Para probar el programa, escribe este comando para crear un contenedor de Docker de la imagen:
docker build -t test-python .
  1. Para ejecutar la imagen de Docker, escribe este comando:
docker run --rm -p 8080:8080 test-python
  1. Para ver el programa en ejecución, haz clic en Vista previa en la Web (Ícono de vista previa en la Web), en la barra de herramientas de Google Cloud Shell. Luego, selecciona Vista previa en el puerto 8080.

El programa debería mostrarse en una pestaña nueva del navegador.

  1. En Cloud Shell, presiona Ctrl + C para detener el programa.

Tarea 3. Realiza la implementación en App Engine

App Engine es una plataforma de implementación completamente automatizada. Es compatible con muchos lenguajes, incluidos Python, Java, JavaScript y Go. Para utilizarla, crea un archivo de configuración e implementa tus aplicaciones con un par de comandos simples. En esta tarea, crearás un archivo llamado app.yaml y lo implementarás en App Engine.

  1. En Cloud Shell, haz clic en Abrir editor (Ícono del editor de Cloud Shell) y, luego, en Abrir en una nueva ventana si es necesario.
  2. En el árbol del explorador de la izquierda, selecciona la carpeta gcp-course/deploying-apps-to-gcp.
  3. Haz clic en New file, asigna el nombre app.yaml al archivo y, luego, presiona Intro.
  4. Pega lo siguiente en el archivo que acabas de crear:
runtime: python39
  1. Guarda los cambios.
Nota: Hay otras opciones de configuración que puedes agregar al archivo app.yaml, pero, en este caso, solo se requiere el entorno de ejecución del lenguaje.
  1. En un proyecto, se debe crear una aplicación de App Engine. Para ello, se ingresa el comando gcloud app create y se especifica la región en la que deseas crear la aplicación, solo una vez. Haz clic en Abrir terminal y escribe este comando. Si se te solicita, haz clic en Autorizar:
gcloud app create --region={{{project_0.startup_script.app_region| Region}}}
  1. Ahora implementa tu app con el siguiente comando:
gcloud app deploy --version=one --quiet Nota: Este comando tardará unos minutos en completarse.
  1. En el campo de búsqueda de la barra de título de la consola de Google Cloud, escribe App Engine y, luego, haz clic en App Engine en la sección Resultados de la búsqueda.

  2. En la esquina superior derecha del panel, hay un vínculo a tu aplicación, similar al siguiente:

Ejemplo del vínculo de la aplicación

Nota: De forma predeterminada, la URL a una aplicación de App Engine tiene el formato https://project-id.appspot.com.
  1. Haz clic en el vínculo para probar el programa.

  2. Haz un cambio en el programa para ver lo fácil que es administrar versiones con App Engine.

  3. En el editor de código, expande la carpeta /deploying-apps-to-gcp en el panel de navegación de la izquierda. Luego, haz clic en el archivo main.py para abrirlo.

  4. En la función main(), cambia el título a Hello App Engine como se muestra a continuación:

@app.route("/") def main(): model = {"title" "Hello App Engine"} return render_template('index.html', model=model)
  1. En la barra de herramientas del editor de código, haz clic en Archivo > Guardar para guardar los cambios.

  2. Ahora implementa la versión "two" con el siguiente comando:

gcloud app deploy --version=two --no-promote --quiet Nota: El parámetro --no-promote le indica a App Engine que siga entregando solicitudes con la versión antigua. Esto permite que pruebes la versión nueva antes de lanzarla a producción.
  1. Cuando se complete el comando, regresa al panel de App Engine. Vuelve a hacer clic en el vínculo, y se seguirá mostrando la versión "one". Debería mostrar Hello GCP. Esto se debe al parámetro --no-promote en el comando anterior.

  2. Haz clic en la pestaña Versiones, ubicada a la izquierda. Observa que se muestran dos versiones.

Nota: Es posible que debas hacer clic en Actualizar para que se muestre la versión two.
  1. Haz clic en el vínculo de la versión two para probarla. Debería mostrar Hello App Engine.

  2. Para migrar el tráfico de producción a la versión "two", haz clic en Dividir el tráfico, en la parte superior. Cambia a la versión two y haz clic en Guardar.

  3. Espera un minuto para que se complete. Actualiza la pestaña del navegador que antes mostró Hello GCP. Ahora debería mostrar la versión nueva.

Haz clic en Revisar mi progreso para verificar el objetivo. Realizar la implementación en App Engine

Tarea 4. Realiza la implementación en Kubernetes Engine con Cloud Build y Artifact Registry

Kubernetes Engine te permite crear un clúster de máquinas e implementar cualquier cantidad de aplicaciones allí. Kubernetes abstrae los detalles de las máquinas de administración y te permite automatizar la implementación de tus aplicaciones con comandos simples de la CLI.

Para implementar una aplicación en Kubernetes, primero debes crear el clúster. Luego, tienes que agregar un archivo de configuración para cada aplicación que implementarás en el clúster.

  1. En el Menú de navegación (Ícono del menú de navegación), haz clic en Kubernetes Engine. Si aparece un mensaje que indica que la API de Kubernetes se está inicializando, espera a que el proceso se complete.

  2. Haz clic en Crear clúster, luego, en Cambiar a clúster estándar y confirma Cambiar a clúster estándar.

  3. Haz clic en Zonal para Tipo de ubicación y, luego, selecciona la zona . Acepta todas las demás variables como predeterminadas y haz clic en Crear. El clúster de Kubernetes Engine tardará algunos minutos en crearse. Cuando el clúster esté listo, aparecerá una marca de verificación verde.

  4. Haz clic en los tres puntos que aparecen a la derecha del clúster y, luego, en Conectar.

  5. En la pantalla Conéctate al clúster, haz clic en Ejecutar en Cloud Shell. Esto abrirá Cloud Shell con el comando "connect" ingresado automáticamente.

  6. Presiona Intro para conectarte al clúster.

  7. Para probar la conexión, escribe este comando:

kubectl get nodes

Este comando simplemente muestra las máquinas en tu clúster. Si funciona, significa que tienes conexión.

  1. En Cloud Shell, haz clic en Abrir editor (Ícono del editor de Cloud Shell).
  2. Expande la carpeta gcp-course/deploying-apps-to-gcp en el panel de navegación de la izquierda. Luego, haz clic en el archivo main.py para abrirlo.
  3. En la función main(), cambia el título a Hello Kubernetes Engine como se muestra a continuación:
@app.route("/") def main(): model = {"title" "Hello Kubernetes Engine"} return render_template('index.html', model=model)
  1. Guarda el cambio.
  2. Agrega un archivo llamado kubernetes-config.yaml a la carpeta gcp-course/deploying-apps-to-gcp.
  3. Pega el siguiente código en ese archivo para configurar la aplicación:
--- apiVersion: apps/v1 kind: Deployment metadata: name: devops-deployment labels: app: devops tier: frontend spec: replicas: 3 selector: matchLabels: app: devops tier: frontend template: metadata: labels: app: devops tier: frontend spec: containers: - name: devops-demo image: <YOUR IMAGE PATH HERE> ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: devops-deployment-lb labels: app: devops tier: frontend-lb spec: type: LoadBalancer ports: - port: 80 targetPort: 8080 selector: app: devops tier: frontend

Nota: En la primera sección del archivo YAML de más arriba, estás configurando una implementación. En este caso, implementarás 3 instancias de tu aplicación web de Python. Observa el atributo de la imagen. En un minuto, actualizarás este valor con tu imagen después de compilarla. En la segunda sección, configurarás un servicio del tipo "balanceador de cargas". El balanceador de cargas tendrá una dirección IP pública. Los usuarios accederán a la aplicación a través del balanceador de cargas.

Para obtener más información sobre las implementaciones y los servicios de Kubernetes, consulta los siguientes vínculos:

  1. En Cloud Shell, escribe este comando para crear un repositorio de Artifact Registry llamado devops-demo:
gcloud artifacts repositories create devops-demo \ --repository-format=docker \ --location={{{ project_0.default_region | "REGION" }}}
  1. Si quieres configurar Docker para que se autentique en el repositorio Docker de Artifact Registry, escribe este comando:
gcloud auth configure-docker {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev
  1. Para utilizar Kubernetes Engine, debes compilar una imagen de Docker. Si quieres utilizar Cloud Build para crear la imagen y almacenarla en Artifact Registry, escribe este comando:
cd ~/gcp-course/deploying-apps-to-gcp gcloud builds submit --tag {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/$DEVSHELL_PROJECT_ID/devops-demo/devops-image:v0.2 .
  1. Cuando se complete el comando anterior, el nombre de la imagen aparecerá en el resultado. El formato de la imagen es -docker.pkg.dev/PROJECT_ID/devops-demo/devops-image:v0.2.

  2. Destaca el nombre de la imagen y cópialo en el portapapeles. Pega ese valor en el archivo kubernetes-config.yaml, en el que debes reemplazar la cadena <YOUR IMAGE PATH HERE> por ese nombre.

Deberías ver un resultado similar al siguiente:

spec: containers: - name: devops-demo image: {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/PROJECT_ID/devops-demo/devops-image:v0.2 ports:
  1. Escribe este comando de Kubernetes para implementar la aplicación:
kubectl apply -f kubernetes-config.yaml
  1. En el archivo de configuración, se especificaron tres réplicas de la aplicación. Ingresa el siguiente comando para verificar que se hayan creado tres instancias:
kubectl get pods

Asegúrate de que todos los Pods estén listos. De lo contrario, espera unos segundos y vuelve a intentarlo.

  1. También se agregó un balanceador de cargas al archivo de configuración. Ingresa el siguiente comando para verificar que se haya creado:
kubectl get services

Deberías ver un resultado similar al siguiente:

Salida

Si la dirección IP externa del balanceador de cargas dice “pending”, espera unos segundos y vuelve a intentarlo.

  1. Cuando tengas una IP externa, abre una pestaña del navegador y realiza una solicitud a tal IP. Debería mostrar Hello Kubernetes Engine. Es posible que demore unos segundos en estar lista.

Haz clic en Revisar mi progreso para verificar el objetivo. Realizar la implementación en Kubernetes Engine

Tarea 5. Realiza la implementación en Cloud Run

Cloud Run simplifica y automatiza las implementaciones en Kubernetes. Cuando utilizas esta plataforma, no necesitas un archivo de configuración. Solo debes elegir un clúster para tu aplicación. Con Cloud Run, puedes utilizar tu propio clúster de Kubernetes, o bien uno que administre Google.

Para utilizar Cloud Run, tu aplicación debe implementarse con una imagen de Docker y estar sin estado.

  1. Abre el editor de código de Cloud Shell y expande la carpeta gcp-course/deploying-apps-to-gcp en el panel de navegación de la izquierda. Luego, haz clic en el archivo main.py para abrirlo.
  2. En la función main(), cambia el título a Hello Cloud Run como se muestra a continuación:
@app.route("/") def main(): model = {"title" "Hello Cloud Run"} return render_template('index.html', model=model)
  1. Guarda el cambio.

  2. Para utilizar Cloud Run, debes compilar una imagen de Docker. En Cloud Shell, escribe este comando si quieres utilizar Cloud Build para crear la imagen y almacenarla en Artifact Registry:

cd ~/gcp-course/deploying-apps-to-gcp gcloud builds submit --tag {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/$DEVSHELL_PROJECT_ID/devops-demo/cloud-run-image:v0.1 .
  1. Cuando se complete la compilación, escribe Cloud Run en el campo de búsqueda de la barra de título de la consola de Google Cloud y, luego, haz clic en Cloud Run en la sección Productos y páginas.

  2. Haz clic en Crear servicio. Esta acción habilitará la API de Cloud Run.

  3. Haz clic en el vínculo Seleccionar del cuadro de texto URL de la imagen del contenedor y, luego, haz clic en Artifact Registry. En el diálogo resultante, expande Region-docker.pkg.dev/$DEVSHELL_PROJECT_ID/devops-demo > cloud-run-image y selecciona la imagen que aparece. Luego, haz clic en Seleccionar.

  4. En Nombre del servicio, escribe hello-cloud-run y selecciona la región .

  5. Para la Autenticación, selecciona Permitir invocaciones no autenticadas.

  6. En Contenedores, volúmenes, Herramientas de redes y seguridad, selecciona Predeterminado en la sección Entorno de ejecución.

  7. En Escalamiento de revisión, establece el Número máximo de instancias en 6. Deja el resto de las opciones con la configuración predeterminada.

  8. Por último, haz clic en Crear.

  9. El servicio no debería tardar mucho en implementarse. Cuando aparezca una marca de verificación verde, haz clic en la URL que se genera automáticamente para la aplicación. Debería mostrar Hello Cloud Run.

Haz clic en Revisar mi progreso para verificar el objetivo. Realizar la implementación en Cloud Run

¡Felicitaciones!

En este lab, implementaste aplicaciones en los servicios de Google Cloud: App Engine, Kubernetes Engine y Cloud Run.

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Copyright 2025 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.