arrow_back

Build a Website on Google Cloud: Lab de desafío

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Build a Website on Google Cloud: Lab de desafío

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP319

Labs de autoaprendizaje de Google Cloud

Introducción

En un lab de desafío, se le proporcionarán una situación y un conjunto de tareas. En lugar de seguir instrucciones paso a paso, deberá utilizar las habilidades aprendidas en los labs de la Quest a fin de decidir cómo completar las tareas por su cuenta. Un sistema de puntuación automatizado (que se muestra en esta página) le proporcionará comentarios acerca de si completó las tareas correctamente.

En un lab de desafío, no se explican conceptos nuevos de Google Cloud, sino que se espera que amplíe las habilidades que adquirió, como cambiar los valores predeterminados y leer o investigar los mensajes de error para corregir sus propios errores.

Debe completar correctamente todas las tareas dentro del período establecido para obtener una puntuación del 100%.

Se recomienda este lab a los alumnos inscritos en la Quest Build a Website on Google Cloud. ¿Aceptas el desafío?

Configuración

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este 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.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Situación del desafío

Acabas de asumir un nuevo puesto en FancyStore, Inc.

Tu tarea es dividir el sitio web monolítico de comercio electrónico que utiliza la empresa en una serie de microservicios separados de forma lógica. El código de la aplicación monolítica existente se encuentra en un repositorio de GitHub. Debes alojar esta app en contenedores y, luego, refactorizarla.

Se espera que tengas las habilidades y el conocimiento para realizar estas tareas, por lo que no recibirás guías paso a paso.

Se te solicitó que te ocupes de esto, luego de que el último equipo sufriera de agotamiento relacionado con la aplicación monolítica y fuera en busca de nuevos horizontes (de hecho, ahora está dirigiendo una plantación de lavanda). Se te pedirá que extraigas el código fuente, compiles un contenedor a partir de este (uno de los agricultores te dejó un Dockerfile) y luego lo envíes a GKE.

Primero debes compilar, implementar y probar la aplicación monolítica simplemente para asegurarte de que el código fuente sea válido. Luego, debes dividir los servicios constituyentes en sus propias implementaciones de microservicios.

Estas son algunas pautas de FancyStore, Inc. que debes seguir:

  • Crea tu clúster en

  • La asignación de nombres suele ser de la siguiente manera: equipo-recurso (p. ej., una instancia podría llamarse fancystore-orderservice1).

  • Asigna tamaños de recursos rentables. Los proyectos son supervisados y el uso excesivo de recursos dará como resultado la finalización del proyecto que los contiene.

  • Usa el tipo de máquina e2-medium, a menos que se te indique lo contrario.

Tu desafío

En cuanto te sientes en tu escritorio y abras tu laptop nueva, recibirás la siguiente solicitud para completar estas tareas. ¡Buena suerte!

Tarea 1: Descarga el código de monolith y crea el contenedor

  1. Accede a tu proyecto nuevo y abre Cloud Shell.

  2. Primero, deberás clonar el repositorio de Git de tu equipo. Hay una secuencia de comandos setup.sh en el directorio raíz del proyecto que deberás ejecutar para crear el contenedor de monolith.

  3. Luego de ejecutar la secuencia de comandos setup.sh, asegúrate de que Cloud Shell esté ejecutando la versión más reciente de Node.js:

nvm install --lts

Se mostrarán algunos proyectos diferentes que se pueden compilar y enviar.

  1. Envía la compilación de monolith (ubicada de manera conveniente en el directorio monolith) a Google Container Registry. Hay un Dockerfile ubicado en la carpeta ~/monotlith-to-microservices/monolith que puedes usar para compilar el contenedor de la aplicación.

  2. Deberás ejecutar Cloud Build (en esa carpeta monolith) para compilarla y, luego, enviarla a GCR.

  3. Asígnale el siguiente nombre a tu artefacto:

  • Repositorio de GCR: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Nombre de la imagen:
  • Versión de la imagen: 1.0.0

Pista:

Asegúrate de enviar una compilación llamada con una versión “1.0.0”.

Haz clic en Revisar mi progreso para verificar el objetivo. Descargar el código de monolith y compilar tu contenedor

Tarea 2: Crea un clúster de Kubernetes y, luego, implementa la aplicación

Ahora que creaste la imagen y se encuentra en Container Registry, es momento de crear un clúster donde implementarla.

Se te solicitó que implementes todos tus recursos en la zona , por lo que, primero, deberás crear un clúster de GKE para ello. Comienza con un clúster de 3 nodos.

  1. Crea tu clúster de la siguiente manera:
  • Nombre del clúster:

  • Región:

  • Cantidad de nodos: 3

Pista:

Asegúrate de que el clúster se llame y que se ejecute en .

Ahora que compilaste una imagen y tienes un clúster ejecutándose, es momento de implementar la aplicación.

Deberás implementar la imagen que compilaste en tu clúster. Esto hará que tu aplicación funcione, pero no se podrá acceder a ella hasta que la expongas públicamente. Tu equipo te informó que la aplicación se ejecuta en el puerto 8080, pero deberás exponerla en el puerto 80, que es más accesible para el usuario.

  1. Crea y expón tu implementación de la siguiente manera:
  • Nombre del clúster:
  • Nombre del contenedor:
  • Versión del contenedor: 1.0.0
  • Puerto de la aplicación: 8080
  • Puerto de acceso externo: 80
Nota: Para los fines de este lab, se simplificó la exposición del servicio. Por lo general, usarías una puerta de enlace de API para proteger los extremos públicos. Obtén más información sobre las prácticas recomendadas en la Guía de prácticas recomendadas para microservicios.
  1. Toma nota de la dirección IP asignada en la operación de exposición de la implementación. Ahora deberías poder visitar esta dirección IP desde tu navegador.

Deberías ver lo siguiente:

Página web de FancyStore

Pista:

Asegúrate de que tu implementación se llame y de que hayas expuesto el servicio en el puerto 80 y lo hayas asignado al puerto 8080.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un clúster de Kubernetes e implementar la aplicación

Ahora que puedes compilar e implementar la aplicación monolítica de FancyStore, está todo listo para comenzar a separarla en microservicios.

Migra monolith a microservicios

Ahora que el sitio web de monolith existente se está ejecutando en GKE, puedes comenzar a dividir cada servicio en un microservicio. Por lo general, tendrás que planificar qué servicios separar en partes más pequeñas, normalmente en torno a partes específicas de la aplicación, como el dominio de la empresa.

Para los fines de este desafío, imagina que ya dividiste correctamente la aplicación monolítica en una serie de microservicios: Pedidos, Productos y Frontend. El código está listo, así que ahora debes implementar servicios.

Tarea 3: Crea microservicios nuevos

Hay 3 servicios que se deben dividir en sus propios contenedores. Dado que estás migrando todos los servicios a contenedores, debes realizar un seguimiento de la siguiente información para cada servicio:

  • La carpeta raíz del servicio (donde compilarás el contenedor)
  • El repositorio al que subirás el contenedor
  • El nombre y la versión del artefacto del contenedor

Crea una versión alojada en contenedores de tus microservicios

A continuación, se muestra un conjunto de servicios que deben alojarse en contenedores.

  1. Navega a las carpetas raíz de la fuente que se mencionan a continuación y sube los artefactos que se crean a Google Container Registry con los metadatos indicados:

Microservicio Pedidos

Service root folder: ~/monolith-to-microservices/microservices/src/orders

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

Microservicio Productos

Service root folder: ~/monolith-to-microservices/microservices/src/products

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

  1. Una vez que estos microservicios se alojen en contenedores y sus imágenes se suban a GCR, debes implementar y exponer estos servicios.

Pista: Asegúrate de enviar una compilación llamada con una versión “1.0.0” Y una compilación llamada con una versión “1.0.0”.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una versión alojada en contenedores de los microservicios Pedidos y Productos

Tarea 4: Implementa los microservicios nuevos

Implementa estos contenedores nuevos usando el mismo proceso que seguiste para la aplicación monolítica . Ten en cuenta que estos servicios escucharán en diferentes puertos, así que toma nota de las asignaciones de puertos que se muestran en la tabla a continuación.

  1. Crea y expón tus implementaciones de la siguiente manera:

Microservicio Pedidos

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8081

Externally accessible port: 80

Microservicio Productos

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8082

Externally accessible port: 80

NOTA: Toma nota de las direcciones IP de los servicios Pedidos y Productos una vez que se hayan expuesto, ya que las necesitarás en pasos futuros.

  1. Puedes verificar que las implementaciones se realizaron correctamente y que se expusieron los servicios si accedes a las siguientes URLs desde tu navegador:

http://IP_EXTERNA_PEDIDOS/api/orders

http://IP_EXTERNA_PRODUCTOS/api/products

Verás que cada servicio muestra una string JSON si las implementaciones se realizaron correctamente.

Pista: Asegúrate de que tus implementaciones se llamen y , y de que ves los servicios expuestos en el puerto 80.

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar los microservicios nuevos

Tarea 5: Configura e implementa el microservicio Frontend

Ahora que extrajiste los microservicios Pedidos y Productos, debes configurar el servicio Frontend para que apunte a ellos e implementarlo.

Vuelve a configurar el frontend

  1. Usa el editor nano para reemplazar la URL local por la dirección IP del nuevo microservicio Productos:
cd ~/monolith-to-microservices/react-app nano .env

Cuando se abra el editor, tu archivo debería verse de esta forma:

REACT_APP_ORDERS_URL=http://localhost:8081/api/orders REACT_APP_PRODUCTS_URL=http://localhost:8082/api/products
  1. Reemplaza REACT_APP_PRODUCTS_URL por el formato nuevo y, a la vez, reemplaza por las direcciones IP de los microservicios Pedidos y Productos para que coincidan con lo que se muestra a continuación:
REACT_APP_ORDERS_URL=http://<ORDERS_IP_ADDRESS>/api/orders REACT_APP_PRODUCTS_URL=http://<PRODUCTS_IP_ADDRESS>/api/products
  1. Presiona Ctrl + O, luego Intro y, por último, Ctrl + X para guardar el archivo en el editor nano.

  2. Ahora vuelve a compilar la app del frontend antes de crear contenedores:

npm run build

Tarea 6: Crea una versión alojada en contenedores del microservicio Frontend

Ahora que los microservicios Pedidos y Productos están alojados en contenedores y se implementaron, y el servicio Frontend está configurado para apuntar a ellos, el último paso es crear contenedores para Frontend e implementarlo.

Usa Cloud Build para empaquetar los contenidos del servicio Frontend y envíalo a Google Container Registry.

  • Carpeta del servicio raíz: ~/monolith-to-microservices/microservices/src/frontend
  • Repositorio de GCR: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Nombre de la imagen:
  • Versión de la imagen: 1.0.0

Este proceso puede tardar unos minutos; ten paciencia.

Pista: Asegúrate de enviar una compilación llamada con una versión “1.0.0”.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una versión alojada en contenedores del microservicio Frontend

Tarea 7: Implementa el microservicio Frontend

Implementa este contenedor usando el mismo proceso que seguiste para los microservicios Pedidos y Productos.

  1. Crea y expón tu implementación de la siguiente manera:
  • Nombre del clúster:
  • Nombre del contenedor:
  • Versión del contenedor: 1.0.0
  • Puerto de la aplicación: 8080
  • Puerto de acceso externo: 80
  1. Puedes verificar que la implementación se realizó con éxito y que los microservicios se expusieron correctamente accediendo a la siguiente dirección IP del servicio Frontend desde tu navegador.

Verás la página principal de FancyStore con vínculos a las páginas de Productos y Pedidos, con la tecnología de tus microservicios nuevos.

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar el microservicio Frontend

¡Felicitaciones!

Build_a_Website_on_Google_Cloud_Skill_WBG.png

Obtén tu próxima insignia de habilidad

Este lab de autoaprendizaje forma parte de la Quest para obtener insignias de habilidad Build a Website on Google Cloud. Si completas esta Quest, obtendrás la insignia de habilidad que se muestra arriba como reconocimiento de tu logro. Comparte la insignia en tu currículum y tus plataformas de redes sociales, y anuncia tu logro con el hashtag #GoogleCloudBadge.

Esta insignia de habilidad es parte de la cartera sobre Modernización de la infraestructura de Google Cloud. Revisa el catálogo con más de 20 Quests de insignias de habilidad en las que puedes inscribirte para continuar tu recorrido de aprendizaje.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 5 de diciembre de 2023

Prueba más reciente del lab: 5 de diciembre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.