Despliegue Multinube con Anthos en Google Cloud y AWS

Clase 15 de 20Curso de Contenedores y Aplicaciones en la Nube con Google Cloud Platform

Resumen

¿Cómo gestionar una infraestructura multicloud?

Trabajar en un entorno multicloud puede ser intimidante. No solo significa utilizar múltiples servicios de nube, sino también garantizar su interoperabilidad. En este laboratorio, aprenderemos a gestionar infraestructuras utilizando Google Cloud Platform (GCP) y Amazon Web Services (AWS). Veamos cómo empezar a aprovisionar, configurar y visualizar nuestras aplicaciones en un entorno multicloud.

¿Qué necesitamos para comenzar?

Para llevar a cabo el laboratorio, es necesario contar con:

  • Credenciales para acceder a GCP y AWS.
  • Un repositorio de GitLab con el workshop Anthos Multicloud.
  • La plataforma Quick Labs, que nos proporciona credenciales y alguna infraestructura preconfigurada.

¿Cómo configurar entornos de trabajo?

Comenzamos iniciando sesión en la consola de GCP (console.cloud.google.com) usando las credenciales proporcionadas. Es importante elegir el proyecto correcto usando gcloud config set project. Esto nos asegura trabajar en el entorno adecuado.

gcloud config set project <YOUR_PROJECT_ID>

A continuación, configuramos las variables de ambiente que serán necesarias para aprovisionar la infraestructura en AWS. Estas incluyen la secret_access_key, AWS_access_key_id, entre otras. Después, creamos un directorio para nuestro proyecto con mkdir y lo preparamos para trabajar ahí:

mkdir ~/AnthosMulticloud
cd ~/AnthosMulticloud
export WORKDIR=~/AnthosMulticloud

¿Cómo aprovisionar infraestructura?

El proceso de aprovisionamiento utiliza scripts que tienen instrucciones definidas para implementar la infraestructura necesaria. Usamos Terraform para aprovisionar recursos en GCP y AWS en diferentes ambientes: desarrollo, staging y producción.

git clone <REPO_URL>
cd AnthosMulticloudWorkshop
./build.sh

Monitorizamos el proceso desde Cloud Build en la consola de Google, donde veremos cómo se despliegan varios jobs para levantar la infraestructura.

¿Qué servicios se implementan?

El despliegue crea:

  • Clústeres de GKE para Google Cloud.
  • Clústeres de EKS en AWS.
  • Un servidor GitLab para configuraciones remotas.

Durante el script de aprovisionamiento, tareas como la creación de clústeres y la configuración de redes de trabajo se realizan para cada entorno. Este proceso puede tardar de 20 a 25 minutos.

¿Cómo visualizar el despliegue?

Para asegurarnos de que nuestra infraestructura esté funcionando correctamente, accedemos a los servicios implementados y revisamos su funcionamiento. Usamos kubectl para verificar los clústeres de Kubernetes, y Kiali para monitorear el tráfico y el estado de los servicios en tiempo real.

kubectl get pods -n istio-system

Kiali proporciona un gráfico visual que muestra cómo los servicios se conectan entre sí y el flujo del tráfico entre microservicios.

¿Cómo manejar la portabilidad de los servicios?

Uno de los aspectos esenciales del enfoque multicloud es mover servicios entre nubes rápidamente:

  1. Si un servicio falla en AWS, podemos migrarlo a GCP.
  2. El script de despliegue nos ayuda a crear un nuevo servicio en GCP.

Por ejemplo, si el cart service en AWS deja de funcionar, lo recreamos en GKE, lo cual restablece la aplicación sin que el usuario final note interrupciones.

¿Cómo implementar múltiples instancias?

Finalmente, desplegamos diferentes instancias del front end en ambas nubes, GCP y AWS, utilizando etiquetas y selectores. Esto permite un balance de carga entre nubes y garantiza alta disponibilidad. Al acceder a nuestra aplicación, podemos alternar entre instancias en GCP y AWS sin interrumpir la experiencia del usuario.

Con estas configuraciones y scripts, hemos logrado un entorno multicloud robusto y preparado para manejar tráfico y contingencias efectivamente. Continúa explorando y adquiriendo experiencia práctica para llegar a dominar los entornos multicloud. ¡Tienes todo lo que necesitas para seguir aprendiendo y mejorando tus habilidades!