Escalar más allá de los límites: por qué necesitas Azure Compute Fleet para cargas de trabajo masivas
By Mirko Peters ·
Bienvenido de nuevo a nuestra exploración continua de arquitecturas avanzadas en la nube. En nuestro último episodio del podcast, "Azure Compute Fleet – Simply Explained", abordamos un m…
Automatically translated with AI from the original post. Read the English original

Bienvenido de nuevo a nuestra exploración continua de arquitecturas cloud avanzadas. En nuestro último episodio del podcast, Azure Compute Fleet – Simply Explained, abordamos un desafío enorme al que se enfrentan las empresas modernas cuando trabajan con infraestructura cloud. Si alguna vez has intentado aprovisionar cientos o miles de máquinas virtuales de una vez para un trabajo por lotes exigente, una simulación de computación de alto rendimiento o un pipeline de procesamiento de datos a gran escala, ya conoces la frustración de chocar de repente con límites de capacidad. En este artículo vamos a profundizar en esos conceptos: veremos por qué los métodos tradicionales se quedan cortos y cómo Azure Compute Fleet cambia de forma fundamental la manera en que obtienes y administras recursos de cómputo masivos en la nube.
¿Qué es Azure Compute Fleet?
Azure Compute Fleet es un servicio gestionado especializado, diseñado específicamente para resolver problemas de capacidad a gran escala. Cuando necesitas escalar una carga de trabajo de cero a miles de workers de forma inmediata, los métodos de implementación estándar pueden convertirse fácilmente en un cuello de botella. Crear una sola máquina virtual es sencillo, pero pedir a una región que te entregue mil máquinas virtuales idénticas de un SKU exacto es un desafío completamente distinto. Azure Compute Fleet cambia la pregunta fundamental que le haces a la nube. En lugar de preguntar: "¿Cómo consigo mil VM idénticas de este tamaño exacto?", preguntas: "¿Cómo obtengo la capacidad de cómputo que necesita mi carga de trabajo usando una variedad de opciones aceptables?". Al describir tus requisitos generales de capacidad, los tamaños de VM aceptables, tus preferencias regionales y tu disposición a usar precios bajo demanda frente a precios Spot de menor coste, Azure puede buscar de forma inteligente en varios grupos de disponibilidad para asegurar los recursos que necesita tu aplicación.
Por qué importa la flexibilidad
Para entender por qué Compute Fleet es tan potente, tenemos que mirar con atención cómo funciona la capacidad en la nube. Un SKU de máquina virtual representa una combinación específica de CPU, memoria, arquitectura de almacenamiento y familia de procesadores. Si tus scripts de automatización solicitan solo un SKU concreto, Azure solo puede buscar esa coincidencia exacta. Si esa familia específica tiene mucha demanda en tu región de destino, tu implementación se quedará atascada en estado de cola o fallará por completo. Compute Fleet introduce flexibilidad al permitirte especificar una amplia gama de tamaños de VM aceptables. Siempre que tu carga de trabajo esté diseñada para ejecutarse correctamente en esas distintas configuraciones de hardware, Azure puede distribuir tus workers de forma dinámica. A gran escala, esta flexibilidad aumenta exponencialmente la probabilidad de obtener exactamente la cantidad de potencia de cómputo agregada que necesitas, justo cuando la necesitas.
Hasta 10 000 VM en un solo fleet
Administrar manualmente una infraestructura a gran escala es una receta para el agotamiento operativo. Escribir scripts de orquestación personalizados para gestionar reintentos de implementación, tamaños de VM alternativos y monitorización en docenas de configuraciones diferentes se convierte rápidamente en una pesadilla imposible de mantener. Compute Fleet está diseñado para eliminar esa sobrecarga operativa, ya que admite hasta 10 000 máquinas virtuales en una sola solicitud de fleet. Defines los parámetros del fleet una vez, y Azure evalúa el inventario disponible en todas las opciones permitidas, identifica automáticamente la combinación óptima de recursos y crea los grupos de máquinas virtuales subyacentes necesarios. Esta capacidad nativa permite a los equipos de ingeniería centrarse en sus cargas de trabajo reales en lugar de dedicar innumerables horas a resolver errores de asignación de infraestructura.
Lo que Compute Fleet no hace
Aunque Azure Compute Fleet es un cambio de juego para la adquisición de capacidad, es importante entender sus límites. Compute Fleet resuelve el problema de la capacidad; no determina ni reemplaza toda tu arquitectura de aplicaciones. Sigues siendo totalmente responsable de proporcionar las imágenes de máquina virtual, las configuraciones de red, los grupos de seguridad y el software de aplicación que cada worker necesita para ejecutarse. Compute Fleet no sabe por sí mismo si tus workers están renderizando efectos visuales cinematográficos, ejecutando cálculos financieros complejos, realizando pruebas de regresión automatizadas o analizando datos de telemetría científica sin procesar. Además, no reemplaza componentes arquitectónicos básicos como los balanceadores de carga, las colas de mensajes duraderas, la lógica de aplicación o los mecanismos de recuperación ante desastres. Su misión única y muy concreta es adquirir y gestionar grandes cantidades de capacidad de cómputo cuando existen múltiples configuraciones aceptables.
Elegir tamaños de VM aceptables
Diseñar una implementación de flota eficaz empieza por una decisión de arquitectura fundamental: determinar qué tamaños de VM puede usar realmente tu aplicación. A escala de flota, tu preocupación principal no debería ser asegurar un modelo de procesador concreto por preferencia personal. En su lugar, necesitas hacer una auditoría exhaustiva de los requisitos de tu software. ¿De qué número de núcleos de CPU, umbrales de memoria, métricas de rendimiento del almacenamiento local o tipos de aceleradores depende realmente tu aplicación? Si varias familias de VM cumplen esos umbrales operativos, permitirlas todas da a Azure un espacio de búsqueda mucho más amplio. Sin embargo, debes validar rigurosamente cada tamaño que incluyas. Nunca añadas una familia de VM a tu configuración de flota solo porque parezca más barata si tu software requiere conjuntos de instrucciones específicos, controladores especializados, configuraciones de almacenamiento particulares o capacidades de hardware concretas.
Capacidad frente a precio
Otra consideración de diseño importante consiste en equilibrar las necesidades inmediatas de capacidad con la optimización global de costes. Cada carga de trabajo exige estrategias de implementación totalmente distintas. Por ejemplo, un cálculo nocturno de riesgo financiero puede tener una ventana de ejecución estricta y debe terminar antes de que abran los mercados globales a la mañana siguiente. En ese escenario concreto, adquirir capacidad garantizada de inmediato es mucho más crítico que asegurar el precio por núcleo más bajo posible. Por el contrario, otras cargas de trabajo ofrecen una enorme flexibilidad de programación. Las pruebas en segundo plano, las simulaciones a largo plazo, el procesamiento de datos acumulados y los entornos de desarrollo temporales pueden tolerar a menudo pequeños retrasos al obtener la capacidad completa a cambio de costes de infraestructura considerablemente más bajos. Compute Fleet ofrece a las organizaciones la libertad arquitectónica para adaptar sus implementaciones a estas prioridades operativas distintas.
Selección de VM basada en atributos
Para hacer la configuración aún más potente, Azure ofrece un enfoque de selección de VM basado en atributos, que se destacó en nuestros recientes materiales del podcast como una función de vista previa muy potente. En lugar de obligarte a enumerar manualmente decenas de SKU de VM exactos, esta capacidad te permite definir características generalizadas. Puedes especificar parámetros como el mínimo y el máximo de vCPU, rangos de memoria, requisitos de almacenamiento NVMe local o aceleradores GPU especializados. Azure identifica y utiliza entonces dinámicamente los tamaños de VM que coinciden con esas definiciones de atributos exactas. Esto aporta una enorme preparación para el futuro a medida que Microsoft incorpora nuevas generaciones de VM más nuevas y eficientes a la nube, aunque tus aplicaciones deben seguir pasando una validación adecuada frente a cualquier perfil de hardware nuevo que se asigne.
Máquinas virtuales bajo demanda
Construir una flota robusta implica entender los distintos roles de los modelos de compra. Las máquinas virtuales bajo demanda forman la base estable y sólida de tu flota. Cuando solicitas una VM bajo demanda, pagas la tarifa estándar y predecible, y Azure garantiza que no recuperará el recurso simplemente porque aumente la demanda de otro cliente. Esto hace que la capacidad bajo demanda sea ideal para la línea base mínima de cómputo que tu carga de trabajo necesita para seguir operativa en todo momento. Los componentes de infraestructura críticos, como los coordinadores de trabajos, los escuchas de colas de mensajes y los workers base principales, deberían casi siempre utilizar capacidad bajo demanda para garantizar una supervisión ininterrumpida.
Máquinas virtuales Spot
En el otro extremo del espectro de compra, encontramos las máquinas virtuales Spot. Las VM Spot te permiten aprovechar la capacidad de cómputo no utilizada de Azure con descuentos muy elevados, lo que a menudo te permite ahorrar hasta un noventa por ciento en comparación con el precio estándar de pago por uso. El precio que pagas por este enorme ahorro es el riesgo de interrupción. Azure se reserva el derecho de recuperar la capacidad Spot con poca antelación siempre que la demanda regional requiera esos recursos físicos. Por eso las VM Spot resultan especialmente atractivas para cargas de trabajo tolerantes a fallos, donde los workers pueden desaparecer a mitad de una tarea sin provocar fallos catastróficos, siempre que tu arquitectura esté diseñada para reintentar de forma segura las operaciones interrumpidas.
Combinar capacidad Spot y bajo demanda
No tienes que elegir entre una estrategia puramente bajo demanda y un enfoque exclusivamente basado en Spot. De hecho, las arquitecturas más resilientes combinan ambos modelos de compra en una única flota cohesionada. Si utilizas VM bajo demanda para tu plano de control persistente y para los workers fundamentales, garantizas un rendimiento mínimo predecible. Al mismo tiempo, puedes ampliar tu flota con VM Spot para gestionar una escalabilidad de cómputo masiva a una fracción del coste habitual. Si Azure recupera una parte de tus workers Spot durante un momento de escasez de capacidad, tus workers bajo demanda principales siguen procesando sin interrupciones, logrando un equilibrio económico excelente entre el ahorro y la estabilidad operativa.
Diseñar para la interrupción
Aunque Azure Compute Fleet gestiona de forma elegante la asignación de capacidad subyacente y envía notificaciones anticipadas de las interrupciones Spot, no puede proteger por arte de magia los datos de la aplicación que se almacenan exclusivamente en la memoria de un worker individual. Para aprovechar de verdad el potencial de una flota, tu carga de trabajo debe diseñarse desde el principio para gestionar la terminación de workers. Por ejemplo, piensa en una canalización distribuida de renderizado de vídeo. Si un proyecto se divide en tareas individuales de renderizado de fotogramas y Azure recupera una VM Spot mientras procesa el fotograma 412, esa tarea específica debería volver automáticamente a tu cola de mensajes central para que otro worker disponible pueda recogerla. Este mismo patrón arquitectónico se aplica igual de bien a simulaciones científicas, compilaciones de software automatizadas, pruebas de integración continua y análisis masivos de datos.
Mantener el estado fuera del worker
Para sobrevivir en un entorno de flota dinámico, tu aplicación debe cumplir una regla de oro: mantener el estado completamente fuera del worker. No dependas del almacenamiento temporal en disco local para datos persistentes críticos. En su lugar, aprovecha soluciones de almacenamiento duradero como Azure Blob Storage, bases de datos relacionales gestionadas o almacenes NoSQL distribuidos para mantener la fuente de verdad. Usa colas duraderas para distribuir las tareas entre la flota y asegúrate de que los workers escriban puntos de control periódicos durante las operaciones de larga duración. Diseña tus tareas para que sean idempotentes, es decir, que puedan ejecutarse varias veces sin crear registros duplicados ni resultados corruptos. Cuando una VM Spot desaparece de forma inesperada, solo deberías perder la pequeña fracción de trabajo que está en curso, en lugar de horas de procesamiento irrecuperable.
Compute Fleet frente a Virtual Machine Scale Sets
Una pregunta habitual que se hacen los ingenieros al explorar esta tecnología es cómo se compara Compute Fleet con Azure Virtual Machine Scale Sets (VMSS). Ambos servicios gestionan grupos de máquinas virtuales, pero están diseñados para resolver problemas fundamentalmente distintos. Virtual Machine Scale Sets normalmente parte de un nivel de aplicación concreto. Despliegas una aplicación web, una API de microservicios o una aplicación empresarial de línea de negocio detrás de un equilibrador de carga, y VMSS aumenta o reduce el número de instancias idénticas en función del tráfico de red entrante o de los umbrales de CPU. Compute Fleet, en cambio, parte de una premisa completamente distinta: ¿cómo puedo adquirir rápidamente un enorme grupo de capacidad de cómputo flexible para procesar una montaña de trabajo distribuido?
Cuándo usar Virtual Machine Scale Sets
Los conjuntos de escalado de máquinas virtuales (Virtual Machine Scale Sets) siguen siendo el estándar de referencia absoluto para las capas de aplicación continuas y de larga duración, donde las instancias desempeñan funciones uniformes y necesitan responder de forma dinámica al tráfico de los usuarios. Los casos de uso ideales incluyen aplicaciones web orientadas al cliente, API públicas, tiendas de comercio electrónico y servidores de aplicaciones de back-end situados detrás de un Azure LoadBalancer o de Application Gateway. En estos entornos, los principales factores de diseño son mantener el estado de salud continuo de la aplicación, enrutar el tráfico de los clientes en tiempo real sin interrupciones y gestionar las actualizaciones progresivas del sistema operativo en instancias idénticas.
Cuándo usar Compute Fleet
En cambio, Compute Fleet brilla especialmente cuando el principal obstáculo es obtener enormes cantidades de potencia de cálculo bruta para tareas asíncronas, por lotes o independientes. Los escenarios típicos incluyen clústeres de computación de alto rendimiento, procesamiento de lotes financieros, simulaciones de modelado molecular, canalizaciones de ingesta de datos a gran escala, suites de pruebas automatizadas, granjas de renderizado multimedia y grupos temporales de workers. En estas arquitecturas, un worker toma una unidad de trabajo discreta, la procesa, escribe el resultado final en almacenamiento persistente y pasa inmediatamente a la siguiente tarea. Si un worker desaparece, el sistema simplemente asigna esa unidad de trabajo a otro nodo disponible.
Puedes usar ambos
Lo mejor de la arquitectura cloud moderna es que no tienes que elegir una sola herramienta. Azure Compute Fleet y Virtual Machine Scale Sets no son mutuamente excluyentes; pueden trabajar en armonía dentro del mismo ecosistema empresarial. Por ejemplo, una aplicación empresarial sofisticada podría usar un Virtual Machine Scale Set para impulsar su frontend web y su capa de API de alta disponibilidad, garantizando experiencias de usuario impecables. Al mismo tiempo, esa misma aplicación puede desplegar un Azure Compute Fleet en segundo plano para gestionar las cargas pesadas de almacenamiento de datos nocturnas, la generación de informes por lotes o las simulaciones complejas. Al elegir la herramienta adecuada para cada capa concreta, construyes una arquitectura que es a la vez muy receptiva para los usuarios y rentable a escala.
Para profundizar aún más en estas arquitecturas y escuchar consejos prácticos de implementación, no dejes de escuchar nuestro episodio completo del podcast complementario: Azure Compute Fleet – Simply Explained. ¡No olvides apoyar nuestro programa y estar atento a más análisis en profundidad sobre ingeniería cloud!
Hazte mecenas de este podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support.