Características y ventajas de Virtual Machine Scale Sets

Completado

Azure Virtual Machine Scale Sets de Azure ofrece una forma escalable de ejecutar aplicaciones en un conjunto de máquinas virtuales (VM). Las máquinas virtuales de un conjunto de escalado pueden tener la misma configuración y ejecutar las mismas aplicaciones o tener configuraciones diferentes y ejecutar diferentes aplicaciones. A medida que crece la demanda, se incrementa el número de máquinas virtuales que se ejecutan en el conjunto de escalado. A medida que se reduce la demanda, se puede quitar el exceso de máquinas virtuales. Los conjuntos de escalado de máquinas virtuales son ideales para escenarios que incluyen cargas de trabajo de proceso, de macrodatos y de contenedores.

En el escenario de ejemplo, los clientes usan uno de los sitios web de la empresa para administrar y comprobar el estado de sus envíos. Como el sitio web es accesible globalmente, a veces es difícil predecir la carga a una hora específica del día. Además, la carga puede variar según la época del año, siendo diciembre un período de máxima actividad debido a las vacaciones de fin de año. Decide usar un conjunto de escalado de máquinas virtuales para controlar la carga variable, a la vez que mantiene un tiempo de respuesta bajo para las solicitudes de clientes.

En esta unidad, explorará las características de conjuntos de escalado de máquinas virtuales. Al finalizar esta unidad, podrá describir cómo funciona un conjunto de escalado. Comprenderá cómo se admiten los escenarios de escalabilidad horizontal y vertical en un conjunto de escalado. Verá cómo se usan el escalado automático y el escalado basado en programación para ajustar los recursos disponibles en un conjunto de escalado.

¿Qué es un conjunto de escalado de máquinas virtuales?

Los conjuntos de escalado de máquinas virtuales en Azure se han diseñado para permitirle implementar y administrar un gran número de máquinas virtuales de carga equilibrada. Los conjuntos de escalado de máquinas virtuales son lo suficientemente inteligentes para escalar y reducir verticalmente de forma automática el número de instancias de máquinas virtuales.

Los criterios que se usan para el escalado vertical u horizontal pueden depender de una programación personalizada, o bien de la demanda y el uso reales. Los conjuntos de escalado pueden aplicar de forma simultánea la misma configuración a un grupo de máquinas virtuales. No es necesario que configure manualmente las instancias de forma individual si no quiere.

Un conjunto de escalado usa un equilibrador de carga para distribuir las solicitudes entre las instancias de máquina virtual. Usa un sondeo de estado o la Extensión de estado de aplicaciones para determinar la disponibilidad de cada instancia. El sondeo de estado o la Extensión de estado de la aplicación hace ping a la instancia. Si la instancia responde, el conjunto de escalado sabrá que aún está disponible. Si el ping produce un error o se agota el tiempo de espera, el conjunto de escalado sabe que la instancia no está disponible y no le envía solicitudes.

Virtual Machine Scale Sets admite máquinas virtuales Linux y Windows en Azure y puede ejecutar hasta 1000 máquinas virtuales en un único conjunto de escalado.

Si trabaja con grandes cargas de trabajo cuya demanda es variable e imprevisible, los conjuntos de escalado son una solución excelente. Como los conjuntos de escalado de máquinas virtuales ofrecen máquinas virtuales que se pueden escalar en respuesta a la demanda y son de carga equilibrada, proporcionan de forma automática un entorno con alta disponibilidad.

Opciones de escalado para conjuntos de escalado

Los conjuntos de escalado se diseñan teniendo en cuenta la rentabilidad. Las instancias de máquina virtual solo se crean cuando es necesario.

Es posible que en ocasiones necesite agregar o quitar máquinas de un conjunto de escalado, según la demanda. Por ejemplo, es posible que no tenga que ejecutar algunas máquinas durante períodos semanales o diarios de baja demanda. Puede ajustar manualmente el número de máquinas virtuales de un conjunto de escalado aumentando o disminuyendo el recuento de instancias, pero en muchos casos es mejor agregar o quitar automáticamente las máquinas virtuales mediante reglas. Las reglas se basan en métricas. Garantizan que se agregue el número adecuado de máquinas virtuales según la demanda o la programación.

Escalado de un conjunto de escalado

Los conjuntos de escalado de máquinas virtuales dan solución a la necesidad de crear y administrar rápidamente las máquinas virtuales para una carga de trabajo variable. Puede configurar dos tipos de escalado para un conjunto de escalado:

  • Escalado programado: puede programar de forma proactiva el conjunto de escalado para implementar una o un número N de instancias adicionales para acomodar un pico en el tráfico y, después, volver a reducir el escalado cuando el pico se reduzca.

  • Escalado automático: si la carga de trabajo es variable y no se puede programar siempre, puede usar el escalado de umbral basado en métricas. El escalado automático realiza un escalado horizontal en función del uso de los nodos. Después, reduce de nuevo el escalado cuando los recursos vuelven a una línea base.

Estas dos opciones solucionan el requisito de escalado, a la vez que se administran los costos asociados. En los ejemplos siguientes se describen escenarios en los que se podrían usar distintos tipos de escalado.

Escalado programado

Imagine que forma parte del equipo de DevOps de una importante empresa de reparto de comida. La noche del viernes suele ser el período de mayor actividad. Por el contrario, las 7:00 del miércoles suele ser la hora más tranquila.

Los cargos de Azure se basan en el consumo de recursos, por lo que no debe ejecutar los servicios que no necesita. Si necesita 100 servidores web para satisfacer la demanda el viernes por la noche, estará de acuerdo en pagarlos. Pero si solo necesita dos servidores un miércoles por la mañana, no querrá pagar por los 98 servidores inactivos adicionales. Para administrar los costos a la vez que cumple los requisitos operativos, considere la posibilidad de usar el escalado automático programado.

Escalado automático

Imagine que pertenece al equipo de DevOps de una importante empresa de calzado. Al acercarse el lanzamiento de un producto, cree que apreciará una demanda significativa del servicio. Pero es posible que el pico de demanda sea impredecible y difícil de cuantificar. Quiere que el servicio se adapte a la demanda mediante el escalado horizontal a medida que se usen los recursos actuales.

Para este escenario, usa el escalado automático basado en métricas. Este tipo de escalado automático escala horizontalmente la infraestructura a medida que se incrementa la demanda. Después, reduce horizontalmente el escalado cuando baja la demanda.

Reducción de los costos mediante el uso de máquinas virtuales de acceso puntual

Azure Spot Virtual Machines permite aprovechar las ventajas de nuestra capacidad no utilizada con un importante ahorro en los costos. Siempre que Azure necesite recuperar la capacidad, la infraestructura de esta plataforma expulsará las máquinas virtuales de acceso puntual de Azure. Por lo tanto, estas máquinas son excelentes para cargas de trabajo que puedan soportar interrupciones, como los trabajos de procesamiento por lotes, los entornos de desarrollo y pruebas, las cargas de trabajo de proceso de gran tamaño, etc.

La cantidad de capacidad sin usar disponible varía, por ejemplo, en función del tamaño, la región o la hora del día. Al implementar máquinas virtuales de acceso puntual de Azure, Azure las asigna si hay capacidad disponible, pero no hay un Acuerdo de Nivel de Servicio para ellas. Una máquina virtual de acceso puntual de Azure no ofrece ninguna garantía de alta disponibilidad. Siempre que Azure necesite recuperar la capacidad, la infraestructura de esta plataforma expulsará las máquinas virtuales de acceso puntual de Azure con un aviso de 30 segundos.

Cuando Azure vuelva a necesitar la capacidad de computación, recibirá una notificación sobre la máquina virtual que se quitará del conjunto de escalado. Si tiene que limpiar o salir correctamente del código en la máquina virtual, puede usar Scheduled Events de Azure para reaccionar a la notificación en la máquina virtual. También puede hacer que el conjunto de escalado intente crear otra máquina virtual para reemplazar la que se va a quitar. Pero la creación de la máquina virtual no está garantizada.

Con Azure Spot Virtual Machines, puede especificar dos tipos de eliminación mediante la configuración de una directiva de expulsión:

  • Directiva de desasignar (predeterminada): la VM se detiene. Los recursos de procesamiento y memoria se desasignan. Los discos permanecen intactos y los datos se mantienen. Se le cobrará por el espacio en disco mientras no se ejecute la máquina virtual.
  • Directiva de eliminación: se quita toda la máquina virtual, incluidos todos los discos subyacentes, por lo que no se le cobrará por el almacenamiento.

Azure Spot Virtual Machines son útiles para cargas de trabajo que se ejecutan con interrupciones, o bien cuando se necesitan máquinas virtuales de mayor tamaño con un costo mucho menor. Tenga en cuenta que no puede controlar cuándo es posible que se quite una máquina virtual.