Conjuntos de Escalado de Máquinas Virtuales (VM Scale Sets)
Un conjunto de escalado de máquinas virtuales (VM Scale Set) es como tener un ejército de servidores idénticos que se multiplican o reducen automáticamente según la demanda. Imagina que tienes una aplicación web que a veces necesita 2 servidores y otras veces 20. En lugar de crear y eliminar VMs manualmente, defines un "modelo" (tamaño, imagen, configuración) y Azure crea tantas instancias idénticas como necesites. Si la carga aumenta, se añaden más automáticamente; si baja, se eliminan. Todas las instancias son iguales y el tráfico se distribuye entre ellas. Es como tener un grupo de trabajadores que se ajusta al volumen de trabajo sin que tengas que contratar o despedir manualmente.
Definición
Un conjunto de escalado de máquinas virtuales (VM Scale Set) es un servicio de Azure que crea y gestiona un grupo de VMs idénticas con escalado automático basado en métricas (CPU, memoria, tráfico de red, etc.); todas las instancias se crean desde el mismo modelo (imagen, tamaño, configuración) y se distribuyen automáticamente en dominios de fallo y actualización para alta disponibilidad.
Permite:
- Crear múltiples instancias de VMs idénticas desde un modelo único (imagen, tamaño, configuración)
- Escalar automáticamente el número de instancias (escalado horizontal) según métricas (CPU, memoria, métricas personalizadas) o según una programación
- Distribuir instancias automáticamente en dominios de fallo y actualización para alta disponibilidad
- Actualizar instancias de forma gradual (rolling update) sin interrumpir el servicio completo
- Integrar con Azure Load Balancer o Application Gateway para distribuir tráfico entre instancias
- Usar health probes para detectar instancias no saludables y reemplazarlas automáticamente
Componentes
Modelo de VM (VM Model) – Configuración base que define la imagen (Windows, Linux, personalizada), tamaño, discos, red y extensiones; todas las instancias se crean idénticas a este modelo
Instancias – VMs individuales creadas desde el modelo; el número de instancias puede variar según el escalado automático o manual; cada instancia tiene su propia IP privada
Escalado automático (Autoscale) – Reglas que aumentan o disminuyen el número de instancias según métricas (p. ej. CPU > 70% añade instancias, CPU < 30% elimina instancias) o según una programación
Rolling update (actualización gradual) – Modo de actualización que actualiza instancias en lotes (batches) para mantener disponibilidad; las instancias nuevas se crean con la nueva configuración mientras las antiguas siguen sirviendo tráfico hasta que todas se actualizan
Health probe (sonda de salud) – Verificación de salud de las instancias mediante Azure Load Balancer o Application Gateway; si una instancia no responde correctamente, se marca como no saludable y puede ser reemplazada
Application Health extension – Extensión de VM que monitorea la salud de la aplicación en la instancia (TCP, HTTP/HTTPS); se usa con rolling updates y para determinar si una instancia está lista para recibir tráfico
Overprovisioning – Opción que crea más instancias de las solicitadas temporalmente y luego elimina las sobrantes para mejorar la probabilidad de éxito en el despliegue; se puede deshabilitar
Instancias spot – Opción para usar VMs de bajo costo con prioridad baja (Azure puede recuperarlas con 30 segundos de aviso); útil para cargas de trabajo tolerantes a interrupciones
Dominios de fallo y actualización – Distribución automática de instancias en dominios físicos distintos para alta disponibilidad (similar a Availability Sets pero gestionado automáticamente por el Scale Set)
Funcionalidad
- Se crea un VM Scale Set definiendo el modelo: imagen (Windows, Linux o personalizada), tamaño de VM, configuración de red, discos y extensiones
- Se configura el número inicial de instancias y los límites mínimo y máximo para el escalado automático
- Se configuran reglas de escalado automático basadas en métricas (CPU, memoria, métricas personalizadas) o programación (p. ej. más instancias en horario laboral)
- Opcionalmente se integra con Azure Load Balancer o Application Gateway para distribuir tráfico entre instancias; se configuran health probes para verificar salud
- Cuando se necesita actualizar el modelo (p. ej. nueva imagen, nueva configuración), se puede usar rolling update: las instancias se actualizan en lotes, manteniendo disponibilidad
- Las instancias no saludables (detectadas por health probes o Application Health extension) pueden ser reemplazadas automáticamente por el Scale Set
- El escalado automático añade o elimina instancias según las reglas configuradas; las nuevas instancias se crean idénticas al modelo
- Todas las instancias se distribuyen automáticamente en dominios de fallo y actualización para alta disponibilidad
Casos de Uso
- Aplicaciones web o APIs que necesitan escalar horizontalmente según la carga (más instancias cuando hay más tráfico)
- Cargas de trabajo que requieren múltiples instancias idénticas con alta disponibilidad sin gestionar Availability Sets manualmente
- Aplicaciones que necesitan actualizaciones sin downtime mediante rolling updates
- Entornos que requieren ajuste automático de capacidad según horarios o demanda (p. ej. más instancias en horario laboral)
- Cargas de trabajo tolerantes a interrupciones que pueden usar instancias spot para reducir costos
- Aplicaciones que se benefician de health monitoring y reemplazo automático de instancias no saludables
Errores Comunes
- Confundir VM Scale Sets con Availability Sets (los Scale Sets crean y gestionan múltiples VMs idénticas con escalado automático; los Availability Sets agrupan VMs existentes para alta disponibilidad)
- Pensar que el escalado automático está siempre habilitado por defecto (hay que configurar reglas de escalado automático; sin ellas, el número de instancias es fijo)
- Creer que todas las instancias deben estar en la misma subred (las instancias pueden estar en múltiples subredes si se configura)
- Asumir que rolling update es el único modo de actualización (también hay modo manual y automático según la configuración)
- Olvidar que los health probes son necesarios para que el Load Balancer o Application Gateway sepan qué instancias están saludables y puedan distribuir tráfico correctamente
Preguntas
-
¿Un VM Scale Set crea y gestiona múltiples instancias de VMs idénticas desde un modelo único con escalado automático?
-
¿El escalado automático en VM Scale Sets aumenta o disminuye el número de instancias según métricas (CPU, memoria) o programación?
-
¿Rolling update actualiza las instancias del Scale Set en lotes para mantener disponibilidad sin interrumpir el servicio completo?
-
¿Los health probes (de Load Balancer o Application Gateway) verifican la salud de las instancias y permiten distribuir tráfico solo a instancias saludables?
-
¿Las instancias de un VM Scale Set se distribuyen automáticamente en dominios de fallo y actualización para alta disponibilidad?
-
¿VM Scale Sets permite usar instancias spot (bajo costo, prioridad baja) para cargas de trabajo tolerantes a interrupciones?