Parte 36: MIGs de GCP sin estado — Balanceo, Autoescalado y Canary
Google Compute Engine Managed Instance Groups Stateless
Google Cloud Managed Instance Groups MIGs son una de las formas mas potentes de ejecutar aplicaciones escalables y fiables en la nube. Permiten administrar maquinas virtuales identicas como una unica unidad logica con autoscaling, balanceo de carga, autohealing y actualizaciones graduales rolling updates.
En Q2BSTUDIO impulsamos arquitecturas cloud robustas para aplicaciones a medida y software a medida, integrando inteligencia artificial, ciberseguridad, agentes IA y servicios inteligencia de negocio para acelerar la innovacion. Si necesitas dimensionar, optimizar y securizar tu infraestructura multi nube, descubre nuestros servicios cloud AWS y Azure. Tambien acompañamos a tu organización con IA para empresas para mejorar predicciones, eficiencia y automatizacion.
Que es un Managed Instance Group MIG
Un MIG es un conjunto de instancias de VM identicas creadas a partir de la misma plantilla de instancia Instance Template. Administras el grupo, no cada VM individual. Si una VM falla, el grupo la reemplaza automaticamente. Si la demanda sube, el MIG escala tu aplicacion.
Por que MIGs Stateless
Stateless es la configuracion mas comun. Todas las VMs son identicas y no mantienen estado unico persistente.
Puntos clave
1 Todas las VMs se crean desde el mismo Instance Template
2 El Instance Template es obligatorio
3 Recomendado para la gran mayoria de casos de uso
Funciones principales de MIGs Stateless
Balanceo de carga Distribuye trafico entre VMs
Despliegue multizona Aumenta disponibilidad al distribuir instancias
Autoscaling Escala segun CPU, trafico o metricas personalizadas
Autohealing Reemplaza instancias no saludables
Autoupdating Rolling updates con minimo downtime
Global vs Regional MIGs
Global MIG Instancias en varias regiones, integra con Global HTTP S Load Balancer. Ideal para aplicaciones de alcance mundial.
Regional MIG Instancias en varias zonas dentro de una misma region, integra con Load Balancer regional. Ideal para alta disponibilidad regional.
Paso 01 Introduccion
Un Instance Group te permite gestionar VMs como una sola entidad con autoscaling, autohealing, autoupdates, despliegue multizona y balanceo de carga. En esta guia nos centramos en Managed Instance Groups Stateless, la opcion mas usada en produccion.
Paso 02 Crear Instance Template
Un MIG requiere un Instance Template donde defines tipo de maquina, disco de arranque, script de inicio y configuracion de red.
Consola
1 Compute Engine Instance Templates Create Instance Template
2 Nombre mig-it-stateless-v1, Region us-central1, Maquina e2-micro, Firewall permitir HTTP, Service Account por defecto, Script de inicio v1-webserver-install.sh que instala Nginx y publica una pagina con hostname, IP y version V1.
CLI equivalente
gcloud config set project gcpdemos
gcloud compute instance-templates create mig-it-stateless-v1 --machine-type=e2-micro --network-interface=network=default,network-tier=PREMIUM --instance-template-region=us-central1 --tags=http-server --metadata-from-file=startup-script=v1-webserver-install.sh
Paso 03 Crear Health Check
Un health check verifica de forma periodica si una VM responde como se espera. Es clave para balanceo de carga, autoscaling y autohealing.
Consola
Compute Engine Health Checks Create Health Check Nombre app1-health-check, Ambito Regional us-central1, Protocolo HTTP, Puerto 80, Path de solicitud app1 status.html, Respuesta esperada App1. Mantener criterios por defecto y logging desactivado para evitar costos elevados.
CLI equivalente
gcloud compute health-checks create http app1-health-check --project=gcpdemos --port=80 --request-path=/index.html --proxy-header=NONE --response=Welcome --region=us-central1 --no-enable-logging --check-interval=10 --timeout=5 --unhealthy-threshold=3 --healthy-threshold=2
Paso 04 Regla de firewall para Health Checks
Permite las IP de sondas de Google Cloud para que los health checks alcancen tus VMs en el puerto 80.
Rangos
130.211.0.0 22
35.191.0.0 16
CLI
gcloud compute firewall-rules create allow-health-check --allow tcp:80 --source-ranges 130.211.0.0 22,35.191.0.0 16 --network default
Paso 05 Crear Managed Instance Group Stateless zona unica
Consola
Compute Engine Instance Groups Create MIG Stateless Nombre mig-stateless, Plantilla mig-it-stateless-v1, Zona us-central1-a.
Autoscaling
Modo On, Min 2, Max 6, Señal CPU 60 por ciento, Predictivo activado, Periodo de inicializacion 60 s, Control de scale in no reducir mas de 1 VM en 10 min.
Autohealing
Health check app1-health-check, Retraso inicial 180 s, Politica de actualizacion mantener configuracion de instancias existentes.
Mapeo de puertos
Nombre webserver-port, Puerto 80.
CLI
gcloud compute instance-groups managed create mig-stateless --size=2 --template=projects gcpdemos regions us-central1 instanceTemplates mig-it-stateless-v1 --zone=us-central1-c --health-check=projects gcplearn9 regions us-central1 healthChecks app1-health-check
gcloud compute instance-groups set-named-ports mig-stateless --zone=us-central1-c --named-ports=webserver-port:80
gcloud compute instance-groups managed set-autoscaling mig-stateless --project=gcpdemos --zone=us-central1-c --cool-down-period=60 --max-num-replicas=6 --min-num-replicas=2 --mode=on --target-cpu-utilization=0.6 --scale-in-control=max-scaled-in-replicas=1,time-window=600
Paso 06 Revisar propiedades del MIG
En el grupo mig-stateless revisa Overview tamaño, template y autoscaling, Details health check y puerto, Monitoring CPU, escalados y salud, Errors si los hay. En VM Instances verifica que se crearon 2 VMs desde la plantilla.
Paso 07 Crear Load Balancer
Network Services Load Balancing Create Load Balancer HTTP S Regional From Internet to my VMs. Nombre lb-for-mig-stateless.
Frontend
Nombre fip-lb-mig-stateless, Protocolo HTTP, Tier Premium, IPv4, IP nueva sip-lb-mig-stateless, Puerto 80.
Backend Service
Nombre lb-backend-for-mig-stateless, Tipo Instance Group, Protocolo HTTP, Named port webserver-port, Timeout 30 s, Backend Group mig-stateless, Puerto 80, Modo Utilization, Max 80 por ciento, Capacidad 100. Logging y seguridad por defecto desactivados.
Reglas de host y path modo simple, todo el trafico al backend. Crear y esperar 3 a 5 minutos.
Paso 08 Verificar Load Balancer
Confirma Backends Healthy y que el Frontend tiene IP asignada.
Paso 09 Acceder a la aplicacion de ejemplo
Navega a https://LB-IP-ADDRESS y refresca. Veras respuestas alternando entre VMs mostrando hostname, IP y version. En CLI puedes probar con while true; do curl https://LB-IP-ADDRESS; sleep 1; done
Autoscaling en Instance Groups
Un MIG mantiene el numero configurado de instancias y repone VMs fallidas. El autoscaling añade o quita VMs segun carga con politicas basadas en CPU, capacidad del load balancer, metricas de Cloud Monitoring y horarios programados.
Paso 10 Schedules programar capacidad
Para trafico predecible crea un schedule en mig-stateless por ejemplo high-traffic-tuesday con minimo de 3 instancias de 7 00 a 17 00 hora IST recurrente los martes. CLI ejemplo gcloud compute instance-groups managed update-autoscaling mig-stateless --project=gcpdemos --zone=us-central1-c --set-schedule=high-traffic-tuesday --schedule-cron=0 7 * * Tue --schedule-duration-sec=36000 --schedule-time-zone=Asia Calcutta --schedule-min-required-replicas=3 --schedule-description=high-traffic-tuesday
Paso 11 Autoscaling predictivo y Autohealing
El autoscaling predictivo anticipa picos con modelos de IA y escala antes de la demanda. Activalo en Edit del MIG. Autohealing repara instancias que fallan health checks o presentan errores de aplicacion.
Demo autohealing
Conectate por SSH a una VM del MIG y elimina el index.html de Nginx. El health check fallara y el MIG reemplazara la VM, ejecutando de nuevo el startup script y restaurando el servicio en minutos. Resultado mayor resiliencia y alta disponibilidad.
Auto updating y Rolling updates
Permite desplegar nuevas versiones de software con seguridad. Tipos
Proactive automatico actualiza VMs de inmediato
Opportunistic selectivo actualiza cuando se reemplazan o reinician fuera de autohealing
Parametros clave Maximum surge instancias temporales durante el reemplazo y Maximum unavailable instancias que pueden estar fuera de servicio simultaneamente.
Paso 12 Actualizar VMs con nuevo Instance Template
Crear plantilla v2
Consola clona mig-it-stateless-v1 a mig-it-stateless-v2, cambia a e2-small y usa el script v2 que instala Nginx y publica version V2. CLI gcloud compute instance-templates create mig-it-stateless-v2 --machine-type=e2-small --network-interface=network=default,network-tier=PREMIUM --instance-template-region=us-central1 --tags=http-server --metadata-from-file=startup-script=v2-webserver-install.sh
Actualizar el MIG
En mig-stateless asigna Instance Template mig-it-stateless-v2, Update Type Automatic Proactive, acciones solo replace, maximum surge 1, maximum unavailable 1. El grupo ira reemplazando VMs hasta tener dos VMs e2-small con la V2 desplegada. Valida con curl al IP del balanceador.
Paso 13 Eliminar una instancia
Si borras manualmente una VM, el MIG detecta la falta y crea otra para mantener el tamaño deseado. Demuestra la capacidad de autorecuperacion.
Paso 14 Remove from group
Quita una VM del grupo sin borrarla de inmediato. El MIG crea una nueva para mantener el tamaño y podras borrar manualmente la instancia separada despues. Util para debug sin que el MIG la reponga al instante.
Paso 15 Reiniciar o Reemplazar VMs
Restart reinicia VMs sin recrearlas, ideal para parches del SO. Replace recrea VMs completas con control de maximum surge y maximum unavailable, util para aplicar un nuevo template o cambiar especificaciones.
Paso 16 Monitorizacion
El tab de Monitoring muestra grafico de instancias, historial de autoscaling y estado de health checks, clave para validar el comportamiento en carga real.
Canary updates en MIGs
Un canary despliega una nueva version a un subconjunto de instancias antes de extenderla al 100 por ciento. En Edit del grupo añade un segundo Instance Template y define el target size por ejemplo 50 por ciento para servir trafico con la nueva version. Si todo va bien, aumenta el porcentaje hasta completar la migracion.
Buenas practicas
Usa health checks de aplicacion no solo de puerto
Activa scale in controls para evitar oscilaciones
Define named ports coherentes con el backend service
Evita costos de logging en health checks a menos que los necesites
Usa schedules cuando conozcas ventanas de alta demanda
Prueba canary antes de rolling updates masivos
SEO y valor para negocio
En Q2BSTUDIO unimos arquitectura cloud, automatizacion de procesos, inteligencia artificial, ciberseguridad y analitica avanzada con power bi para lograr plataformas escalables, seguras y enfocadas a resultados. Si buscas acelerar tu hoja de ruta cloud, modernizar aplicaciones a medida, desplegar agentes IA o fortalecer tu postura de ciberseguridad, nuestro equipo te acompaña de extremo a extremo.
Llamado a la accion
Quieres llevar tus MIGs y tu arquitectura cloud al siguiente nivel Conecta con nuestros arquitectos para una evaluacion 360 y un plan de mejoras que combine escalado inteligente, observabilidad y seguridad. Conoce tambien nuestro enfoque integral para aplicaciones a medida y software a medida integrando CI CD, pruebas, observabilidad y cost governance. Explora nuestros servicios cloud y la experiencia en Azure y AWS en la pagina de servicios cloud AWS y Azure.
Limpieza de recursos
1 Elimina el Load Balancer
2 Libera la IP externa del LB
3 Elimina el Instance Group
4 Elimina los Instance Templates
Glosario rapido
aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi