
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Download the monolith code and build your container
/ 10
Create a kubernetes cluster and deploy the application
/ 20
Create a containerized version of orders and product Microservices
/ 20
Deploy the new microservices
/ 20
Create a containerized version of the Frontend microservice
/ 10
Deploy the Frontend microservice
/ 20
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ás utilizar las habilidades aprendidas en los labs del curso para decidir cómo completar las tareas por tu cuenta. Un sistema automatizado de puntuación (en esta página) mostrará comentarios y determinará si completaste tus tareas correctamente.
En un lab de desafío, no se explican conceptos nuevos de Google Cloud, sino que se espera que amplíes las habilidades que adquiriste, 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?
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, 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:
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.
En cuanto te sientes en tu escritorio y abras tu laptop nueva, recibirás la siguiente solicitud para completar estas tareas. ¡Buena suerte!
Accede a tu proyecto nuevo y abre Cloud Shell.
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.
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:
Se mostrarán algunos proyectos diferentes que se pueden compilar y enviar.
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.
Deberás ejecutar Cloud Build (en esa carpeta monolith) para compilarla y, luego, enviarla a GCR.
Asígnale el siguiente nombre a tu artefacto:
Pista:
Asegúrate de enviar una compilación llamada
Haz clic en Revisar mi progreso para verificar el objetivo.
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
Nombre del clúster:
Región:
Cantidad de nodos: 3
Pista:
Asegúrate de que el clúster se llame
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.
Deberías ver lo siguiente:
Pista:
Asegúrate de que tu implementación se llame
Haz clic en Revisar mi progreso para verificar el objetivo.
Ahora que puedes compilar e implementar la aplicación monolítica de FancyStore, está todo listo para comenzar a separarla en 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.
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:
Crea una versión alojada en contenedores de tus microservicios
A continuación, se muestra un conjunto de servicios que deben alojarse en contenedores.
Microservicio Pedidos |
|
Microservicio Productos |
|
Pista: Asegúrate de enviar una compilación llamada
Haz clic en Revisar mi progreso para verificar el objetivo.
Implementa estos contenedores nuevos usando el mismo proceso que seguiste para la aplicación monolítica
Microservicio Pedidos |
|
Microservicio Productos |
|
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.
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
Haz clic en Revisar mi progreso para verificar el objetivo.
Ahora que extrajiste los microservicios Pedidos y Productos, debes configurar el servicio Frontend para que apunte a ellos e implementarlo.
nano
para reemplazar la URL local por la dirección IP del nuevo microservicio Productos:Cuando se abra el editor, tu archivo debería verse de esta forma:
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:Presiona Ctrl + O, luego Intro y, por último, Ctrl + X para guardar el archivo en el editor nano
.
Ahora vuelve a compilar la app del frontend antes de crear contenedores:
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.
Este proceso puede tardar unos minutos; ten paciencia.
Pista: Asegúrate de enviar una compilación llamada
Haz clic en Revisar mi progreso para verificar el objetivo.
Implementa este contenedor usando el mismo proceso que seguiste para los microservicios Pedidos y Productos.
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.
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.
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 2025 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.
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
One lab at a time
Confirm to end all existing labs and start this one