Puntos de control
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
Build a Website on Google Cloud: Lab de desafío
- GSP319
- Introducción
- Configuración
- Situación del desafío
- Tarea 1: Descarga el código de monolith y crea el contenedor
- Tarea 2: Crea un clúster de Kubernetes y, luego, implementa la aplicación
- Tarea 3: Crea microservicios nuevos
- Tarea 4: Implementa los microservicios nuevos
- Tarea 5: Configura e implementa el microservicio Frontend
- Tarea 6: Crea una versión alojada en contenedores del microservicio Frontend
- Tarea 7: Implementa el microservicio Frontend
- ¡Felicitaciones!
GSP319
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)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
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
-
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:
- 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
Haz clic en Revisar mi progreso para verificar el objetivo.
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
- 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
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.
- 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
- 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:
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.
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.
- 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 |
|
Microservicio Productos |
|
- 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
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 4: Implementa los microservicios nuevos
Implementa estos contenedores nuevos usando el mismo proceso que seguiste para la aplicación monolítica
- Crea y expón tus implementaciones de la siguiente manera:
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.
- 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
Haz clic en Revisar mi progreso para verificar el objetivo.
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
- Usa el editor
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:
- 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:
-
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:
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
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 7: Implementa el microservicio Frontend
Implementa este contenedor usando el mismo proceso que seguiste para los microservicios Pedidos y Productos.
- 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
- 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.
¡Felicitaciones!
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.