Ejercicio: Reglas de escalado automático

Completado

En este ejercicio se examinan ejercicios para configurar y desencadenar el escalado automático de la aplicación de ejemplo.

Ejercicio de reglas

Al crear la aplicación de ejemplo de Azure Spring Apps se desencadenó una acción de escalabilidad horizontal en el microservicio de servicio al cliente.

La aplicación customers-service se escala horizontalmente cuando el recuento de solicitudes de Tomcat supera las 10 sesiones de media por minuto. Una vez desencadenada la escalabilidad automática, se reduce horizontalmente si el recuento de solicitudes es menor o igual que 10 sesiones de media por minuto.

Visualización de la configuración de escalabilidad automática en Azure Portal

  1. En una nueva pestaña del explorador web, abra Azure Portal.
  2. En el cuadro de búsqueda superior, busque Azure Spring Apps.
  3. En la página de información general de Azure Spring Apps, seleccione la instancia de Azure Spring Apps en los resultados.
  4. En el menú del panel de navegación izquierdo, seleccione la pestaña Apps (Aplicaciones) en Settings (Configuración).
  5. Seleccione la aplicación de servicio al cliente. A continuación, verá la página Overview (Información general) de la aplicación.
  6. Vaya a la pestaña Escalabilidad horizontal de Configuración en el menú del lado izquierdo de la página.

Captura de pantalla de la configuración

Hay dos opciones para la administración de la demanda de escalabilidad automática:

  1. Escala manual: mantiene un recuento de instancias fijo. en el nivel Estándar, es posible escalar horizontalmente hasta 500 instancias. Este valor cambia el número de instancias independientes en ejecución de la aplicación de microservicios.
  2. Escalabilidad automática personalizada: realiza la escalabilidad en cualquier programación y basada en cualquier métrica.

En Azure Portal, vea la configuración establecida previamente para la aplicación. En la ilustración siguiente se muestra una opción de escalabilidad automática Personalizada para escalar en el recuento de solicitudes de Tomcat.

Captura de pantalla de la configuración de Escalabilidad automática personalizada en Azure Portal.

Visualización de los eventos de escalabilidad automática finalizados

En la pantalla de configuración Escalabilidad horizontal, vaya a la pestaña Historial de ejecución para ver las acciones de escalado más recientes. La pestaña muestra gráficamente el cambio en Capacidad observada a lo largo del tiempo y un registro de cada acción de escalabilidad automática.

Captura de pantalla del historial de ejecución de escalabilidad automática en Azure Portal.

Desencadenamiento de la acción de escalabilidad horizontal con un script

También puede desencadenar el escalado automático manualmente mediante un explorador web o un script de shell.

Para probar las reglas de escalabilidad automática, se genera cierta carga en las instancias. Esta carga simulada hace que las reglas de escalabilidad automática escalen horizontalmente y aumenten el número de instancias. A medida que se va deteniendo la carga simulada, las reglas de escalabilidad automática reducen horizontalmente y disminuyen el número de instancias.

Para permitirle desencadenar la escalabilidad automática, se proporciona un script de shell en el mismo repositorio de GIT que se ha usado para crear la aplicación de Azure Spring Apps.

  1. Establezca el nombre de instancia del servicio de Spring Apps; para ello, ejecute el siguiente comando en la ventana de bash https://shell.azure.com. Use el mismo nombre de servicio de Azure Spring Apps que usó en el ejercicio anterior:

    export SPRING_APPS_SERVICE=<spring-apps-instance-name>
    
  2. Luego, en la ventana de Bash, ejecute los siguientes comandos para ejecutar transacciones en el microservicio customers-service de Spring Apps:

    cd mslearn-autoscale-java
    sh loadTest.sh
    
  3. Debería ver la salida de la prueba de carga de customers-service, que envía 100 solicitudes a la instancia.

Desencadenamiento de la acción de escalabilidad horizontal de forma manual mediante un explorador web (opcional)

Para desencadenar manualmente la condición de escalabilidad horizontal en la configuración de escalabilidad automática creada, el microservicio customers-service debe tener más de 10 solicitudes en menos de un minuto.

  1. Abra una nueva ventana del explorador y vaya al microservicio customers-service:

    https://<your-spring-apps-service>-api-gateway.azuremicroservices.io/api/customer/owners
    
  2. En rápida sucesión, vuelva a cargar la página más de 10 veces.

Visualización de la acción de escalabilidad horizontal

  1. De nuevo en la ventana original del explorador, en la configuración de escalabilidad automática, seleccione la pestaña Historial de ejecución.

  2. Debería ver un gráfico que refleje el recuento de instancias.

  3. En unos minutos, el recuento de instancias debería aumentar de 1 a 2.

  4. En el gráfico debería ver las entradas del registro de actividad de cada acción de escalado realizada por esta configuración de escalabilidad automática.

Captura de pantalla del historial de escalabilidad horizontal de escalabilidad automática en Azure Portal.

Acción de reducción horizontal

La condición de reducción horizontal de la configuración de escalabilidad automática se desencadena si hay menos de, o exactamente, 10 solicitudes al microservicio customers-service durante un período de un minuto.

  1. Asegúrese de que no se esté enviando ninguna solicitud al microservicio customers-service y de que la ventana del explorador a la aplicación o el servicio esté cerrada.

  2. Observe el número de instancias. En unos minutos, el recuento de instancias podría pasar de 2 a 1 (vea el siguiente punto importante).

Captura de pantalla de la acción de reducción horizontal de escalabilidad automática en Azure Portal.

Importante

Es posible que Azure Spring Apps no se escale, ya que la escalabilidad automática va a intentar estimar el estado final tras el escalado. Esto significa que la escalabilidad automática tendría que volver a escalar inmediatamente si el recuento medio de solicitudes de Tomcat sigue igual o incluso se reduce solo un poco.