Definición de escalado automático
En esta unidad se van a examinar conceptos del escalado de Azure.
Escalado elástico
Una ventaja principal de la nube es el escalado elástico. Para realizar el escalado horizontal, debe agregar instancias de aplicación en función del aumento de la demanda. Puede usar tanta capacidad como necesite, escalar horizontalmente a medida que aumenta la carga y reducir horizontalmente cuando no se necesite la capacidad adicional.
Suele necesitarse elasticidad cuando el sitio web de una organización experimenta cargas inusitadamente altas. Si el sitio no se puede escalar para satisfacer la demanda, las solicitudes tardarán más tiempo en procesarse, ya que se ponen en cola a la espera de tiempo de procesador. Desde el punto de vista del cliente, parecerá que el sitio es lento y no responde. En casos extremos, incluso podría parecer que está fuera de servicio.
Escalado manual frente a escalado automático
Puede configurar las opciones de escalado de una aplicación con cualquiera de los dos modos: manual o automático. El modo Manual es como cabe de esperar: usted establece el número absoluto de instancias. La escalabilidad automática permite establecer reglas que rigen cómo y cuánto se debe escalar.
Gracias al escalado automático, puede ejecutar la cantidad correcta de recursos para administrar la carga de la aplicación. El escalado automático alivia la sobrecarga de administración al reducir la necesidad de que los operadores del sistema tomen decisiones constantemente sobre la incorporación o eliminación de recursos o comprueben el rendimiento del sistema. Tener un mínimo garantiza la ejecución de la aplicación aunque no exista carga. Tener un máximo limita el posible coste total por hora. Se escala automáticamente entre estos dos extremos en función de las reglas que se creen.
"Horizontal" frente a "vertical"
Una aplicación se puede escalar fundamentalmente de dos maneras:
El escalado vertical, que también se denomina escalado vertical y reducción vertical, cambia la capacidad de un recurso. Por ejemplo, se podría mover una aplicación a un tamaño de proceso mayor. El escalado vertical suele exigir que el sistema no esté disponible temporalmente mientras se vuelve a implementar. Por lo tanto, resulta menos habitual automatizar el escalado vertical.
El escalado horizontal, que también se denomina escalado horizontal y reducción horizontal, agrega o quita instancias de un recurso. La aplicación puede seguir ejecutándose sin interrupciones mientras se aprovisionan los nuevos recursos. Una vez terminado el proceso de aprovisionamiento, la solución se implementa en estos recursos adicionales. Si la demanda disminuye, los recursos adicionales se pueden apagar sin problemas y desasignarse.
La escalabilidad automática solo "escala horizontalmente", lo que supone un aumento ("escalado horizontal") o una reducción ("reducción horizontal") del número de instancias de aplicación.
Escalabilidad automática de Azure Spring Apps
La escalabilidad automática de Azure Spring Apps supervisa las métricas de los recursos de una aplicación de Spring mientras se ejecuta. Detecta situaciones en las que se necesitan recursos adicionales para controlar un aumento de la carga de trabajo, y garantiza que esos recursos estén disponibles antes de que el sistema se sobrecargue. La escalabilidad automática es una característica integrada de Azure Spring Apps que ayuda a las aplicaciones de microservicios a rendir al máximo cuando cambia la demanda.
Ejemplo real
La cadena de supermercados Raley's necesita modernizar el código y la infraestructura de sus sitios de comercio electrónico con tecnología Java hospedados en Azure. La empresa también necesita optimizar y automatizar su asignación de red. Todo tiene que ser sólido, estar siempre en funcionamiento y, lo más importante, ser fácil de administrar.
Raley’s opta por Azure Spring Apps. Azure Spring Apps es un servicio administrado de Spring Boot que proporciona la potencia de Kubernetes junto con supervisión y escalabilidad automática en tiempo real. Además permite que Raley’s adopte una verdadera arquitectura de plataforma como servicio (PaaS), con lo que aprovecha más las ventajas de la nube.
El servicio administra la infraestructura de las aplicaciones de microservicios de Spring Boot en segundo plano, para que los desarrolladores puedan centrarse en su código. Cuando se implementan bibliotecas o código de Java, Spring Apps conecta automáticamente las aplicaciones con el entorno de ejecución del servicio Spring.
Una vez implementadas, las aplicaciones de Azure Spring Apps quedan totalmente integradas con herramientas de Azure Monitor, como Application Insights y Log Analytics. Estas herramientas permiten una supervisión fácil y totalmente configurable del rendimiento y los errores. Estos mismos servicios de supervisión además pueden impulsar el escalado automático, lo que ayuda a garantizar que los recursos tengan el tamaño adecuado para las cargas actuales.