Para las aplicaciones de microservicios en Serverless App Engine (SAE), puede agregar directivas de escalado automático con el fin de ajustar automáticamente las instancias de la aplicación en respuesta a cambios en el tráfico, como picos repentinos.
Descripción general
SAE admite los siguientes métodos de escalado:
Manual scaling: Utilice el escalado manual para necesidades urgentes, como picos de tráfico inesperados.
Auto scaling: Utilice el escalado automático para necesidades no urgentes, como cambios periódicos en el tráfico, mediante la configuración de una directiva de escalado automático. SAE admite directivas de escalado automático programadas, basadas en métricas e híbridas.
Casos de uso
SAE admite tres tipos de directivas de escalado automático:
Directiva de escalado automático programada: Adecuada para aplicaciones con patrones predecibles y periódicos de uso de recursos. Es común en sectores como finanzas, salud, gobierno y educación.
Directiva de escalado automático basada en métricas: Diseñada para aplicaciones que experimentan ráfagas de tráfico o fluctuaciones periódicas. Se utiliza frecuentemente en servicios de internet, videojuegos y redes sociales.
Directiva de escalado automático híbrida: Recomendada cuando la aplicación maneja tanto fluctuaciones periódicas en la demanda de recursos como ráfagas de tráfico. Es habitual en servicios de internet, educación y servicios de alimentos.
Consideraciones
Puede crear un máximo de cinco directivas de escalado automático programadas, una basada en métricas o una híbrida. No es posible utilizar estos tres tipos de directivas simultáneamente.
Cuando una directiva de escalado automático está habilitada, no realice operaciones manuales en el ciclo de vida de la aplicación, como escalar, desplegar, cambiar especificaciones, reiniciar o detener la aplicación. Para ejecutar estas operaciones, primero deshabilite la directiva de escalado automático.
Si la aplicación se encuentra actualmente en proceso de escalado horizontal, reducción de escala, despliegue (por lotes, por fases o canary), cambio de especificaciones, reinicio o detención, debe esperar a que finalice el proceso antes de agregar o habilitar una directiva de escalado automático.
El número máximo de instancias para una sola aplicación es 50. Para aumentar esta cuota, únase al grupo de DingTalk (ID: 32874633) y solicite su inclusión en la lista de permitidos.
Requisitos previos
Procedimiento
En la lista de aplicaciones de SAE, seleccione la región y el namespace objetivo en la parte superior y, a continuación, haga clic en el Application ID deseado.
En la página Basic Information de la aplicación objetivo, haga clic en la pestaña Auto Scaling. En la sección Auto Scaling, haga clic en Create Auto Scaling Policy.
Configurar una directiva de escalado automático
Directiva programada
-
En el panel Create Auto Scaling Policy, configure los siguientes parámetros y luego haga clic en Next: Preview Scheduled Auto Scaling Policy.
Parámetro
Descripción
Ejemplo
Policy Type
Seleccione Scheduled auto scaling policy.
Scheduled auto scaling policy
Policy Name
Introduzca un nombre personalizado para la directiva.
demo
Timeframe
Especifique si la directiva es a corto o largo plazo:
-
Corto plazo: Especifique una hora de inicio y una de finalización.
-
Largo plazo: La directiva permanece activa indefinidamente.
Long-term
Recurrence
Define la frecuencia con la que se repite la acción de escalado. Las opciones son Daily, Weekly o Monthly.
Daily
Daily Trigger Schedule
Trigger Time: La hora del día en que ocurre la acción de escalado.
Target Instance Count: El número de instancias que se mantendrán después de activarse la acción de escalado.
Hora de activación: 08:00 y 20:00
Número de instancias objetivo: 10 y 3
-
En la página Preview Scheduled Auto Scaling Policy, revise el recuento proyectado de instancias para periodos específicos y, a continuación, haga clic en Confirm.
Después de agregar la directiva de escalado automático programada, habilítela.
Directiva basada en métricas
-
En el panel Create Auto Scaling Policy, configure los siguientes parámetros y luego haga clic en Confirm.
Parámetro
Descripción
Ejemplo
Policy Type
Seleccione Metric-based auto scaling policy.
Metric-based auto scaling policy
Policy Name
Introduzca un nombre personalizado para la directiva.
demo
Trigger Conditions
Seleccione un tipo de métrica:
-
Utilización de CPU
-
Uso de memoria
-
Conexiones TCP activas
-
Total de conexiones TCP
-
QPS de la aplicación
-
Tiempo de respuesta (RT) de la aplicación
-
QPS de CLB orientado a Internet
-
Tiempo de respuesta de CLB orientado a Internet
-
QPS de CLB interno
-
Tiempo de respuesta de CLB interno
Nota-
Para obtener información sobre cómo se agregan las métricas, consulte las descripciones en la consola.
-
Puede configurar varios tipos de métricas.
Utilización de CPU
Se desencadena una acción de escalado cuando la métrica especificada alcanza este valor.
70%
Instance Count
Establezca los valores de Minimum application instances, Maximum application instances y minimum available instances.
NotaMinimum available instances especifica el número mínimo de instancias que permanecen disponibles durante una actualización continua. Puede establecer este valor por número o por proporción.
-
Instancias mínimas de la aplicación: 6
-
Instancias máximas de la aplicación: 50
-
Instancias mínimas disponibles: Establecido por número en 3.
Advanced Settings
(Opcional) Configure los siguientes parámetros según sea necesario:
-
Scale-out step size: Número máximo de instancias que se pueden agregar en una sola acción de escalado.
-
Scale-in step size: Número máximo de instancias que se pueden eliminar en una sola acción de escalado.
-
Scale-out stabilization window: Para evitar fluctuaciones rápidas al escalar horizontalmente, el algoritmo utiliza el recuento mínimo de instancias requeridas calculado durante esta ventana de tiempo para tomar una decisión de escalado.
-
Scale-in stabilization window: Para evitar fluctuaciones rápidas al reducir la escala, el algoritmo utiliza el recuento máximo de instancias requeridas calculado durante esta ventana de tiempo para tomar una decisión de escalado.
-
Disable scale-in: Si se habilita, la aplicación nunca reducirá su escala. Esto puede prevenir interrupciones del servicio causadas por la reducción de escala durante picos de tráfico. Esta opción está deshabilitada de forma predeterminada.
Consulte Best practices for advanced auto scaling parameters.
-
Después de agregar la directiva de escalado automático basada en métricas, habilítela.
Directiva híbrida
Una directiva de escalado automático híbrida combina una directiva de escalado automático programada y una directiva de escalado automático basada en métricas.
-
En Policy Type, seleccione Hybrid auto scaling policy e introduzca un Policy Name personalizado.
Configure los Metric Settings. Para más detalles, consulte los parámetros de una metric-based auto scaling policy.
-
(Opcional) Haga clic en Advanced Settings y configure los siguientes parámetros según sea necesario.
Parámetro
Descripción
Ejemplo
Scale-out step size
Número máximo de instancias que se pueden agregar en una sola acción de escalado.
3
Scale-in step size
Número máximo de instancias que se pueden eliminar en una sola acción de escalado.
2
Scale-out stabilization window
Para evitar fluctuaciones rápidas al escalar horizontalmente, el algoritmo utiliza el recuento mínimo de instancias requeridas calculado durante esta ventana de tiempo para tomar una decisión de escalado.
300 segundos
Scale-in stabilization window
Para evitar fluctuaciones rápidas al reducir la escala, el algoritmo utiliza el recuento máximo de instancias requeridas calculado durante esta ventana de tiempo para tomar una decisión de escalado.
300 segundos
Disable scale-in
Si se habilita, la aplicación nunca reducirá su escala. Esto puede prevenir interrupciones del servicio causadas por la reducción de escala durante picos de tráfico. Esta opción está deshabilitada de forma predeterminada.
Habilitado
Configure Special Time Period Settings. Para más detalles, consulte los parámetros de una scheduled auto scaling policy.
En el asistente Preview Scheduled Auto Scaling Policy, revise el recuento proyectado de instancias para periodos específicos y, a continuación, haga clic en Confirm.
Después de agregar la directiva de escalado automático híbrida, habilítela.
Comprobar la directiva
Compruebe que la directiva de escalado automático es efectiva mediante uno de los siguientes métodos:
Comprobar el recuento de instancias
Vaya a la página Basic Information de la aplicación objetivo y haga clic en la pestaña Auto Scaling. Compruebe si el número de instancias coincide con el especificado en la directiva de escalado automático. Si coinciden, la directiva es efectiva.
El gráfico Instance Count Trend with Scaling Metrics en la parte superior de la página muestra las curvas de cambio para el número actual de instancias de la aplicación y métricas como la utilización de CPU. El área azul indica el rango de escalado horizontal y el área amarilla indica el rango de reducción de escala. La tabla Hybrid Auto Scaling Policy List que aparece a continuación muestra los detalles de configuración de cada directiva, como el Metric Target Value, Maximum application instances y Minimum application instances. Puede usar esta información para comparar el recuento actual de instancias con la configuración de la directiva.
Realizar una prueba de estrés
-
Agregue un endpoint público para la aplicación.
Inicie sesión en la consola de SAE. En la página Basic Information, dentro de la sección Application Access Settings, haga clic en Add Internet-facing CLB Access.
-
En el panel Add Internet-facing CLB Access, seleccione Create CLB (Pay-by-Specification), establezca el HTTP Port y el Container Port, y luego haga clic en OK.
En este ejemplo, HTTP Port se establece en
80y Container Port en3210. -
Una vez agregado el endpoint, copie la dirección del public endpoint.
A la derecha de Public Endpoint, puede ver la dirección generada (por ejemplo,
101.xxx:80) y el tipo de protocolo HTTP.
-
Realice una prueba de estrés en la aplicación.
Inicie sesión en la consola de Performance Testing Service (PTS). En la página de descripción general, introduzca la dirección del endpoint con el formato
http://<Dirección del Endpoint Público>y, a continuación, haga clic en Test.-
En el panel Test Settings, introduzca el valor de Requests Per Second (RPS). Luego, seleccione la casilla The test is permitted and complies with the applicable laws and regulations y haga clic en Start.
En este ejemplo, Total Duration se establece en
10minutos y Requests Per Second (RPS) en1000.
-
Regrese a la consola de SAE. En la página Basic Information de la aplicación objetivo, vaya a la pestaña Instance List. Compruebe que el número de instancias de la aplicación ha aumentado. Un escalado horizontal exitoso confirma que la directiva es efectiva.
NotaUna vez completada la prueba de estrés, el número de instancias se reduce automáticamente. Este proceso puede tardar algún tiempo.
Ver eventos de escalado
Vaya a la página Application Events de la aplicación objetivo. Filtre por Source Type y establezca el tipo de origen en HorizontalPodAutoscaler para ver los eventos de escalado.
Tras aplicar el filtro, la lista de eventos muestra aquellos relacionados con el escalado. Un evento con nivel Normal y motivo SuccessfulRescale indica una acción de escalado exitosa. Puede expandir los detalles del evento para ver el resultado del escalado (por ejemplo, New size: 5) y el motivo de activación (por ejemplo, la métrica externa slb_incall_qps superó el umbral objetivo).
Más operaciones
En la página Basic Information de la aplicación objetivo, haga clic en la pestaña Auto Scaling.
En la sección Auto Scaling de la pestaña Auto Scaling, localice la directiva deseada. En la columna Actions, puede Enable, Disable, Edit o Delete la directiva, o bien consultar los Events desencadenados por ella.