Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al hospedar aplicaciones del SDK de Durable Task en Azure Container Apps, puede configurar el escalado automático para que la plataforma ajuste automáticamente el número de réplicas en función de la carga de trabajo de orquestación, actividad o entidad.
En este artículo aprenderá a:
- Establezca recuentos mínimos y máximos de réplicas para la aplicación de contenedores.
- Agregue reglas de escalado que respondan a los elementos de trabajo del Programador de tareas durables.
- Implemente y compruebe un ejemplo de escalado automático mediante Azure CLI para desarrolladores.
Nota:
El escalado automático es compatible con las aplicaciones creadas mediante los SDK de Durable Task y hospedados en Azure Container Apps. Esta característica usa el azure-durabletask-scheduler escalador KEDA.
Importante
Establecer minReplicas en 0 permite escalar a cero, lo que ahorra costos cuando está inactivo, pero introduce latencia de arranque en frío cuando llegan nuevos elementos de trabajo. Establézcalo minReplicas en 1 o superior si su carga de trabajo es sensible a la latencia.
Configuración del escalador automático
Puede establecer la configuración del escalador automático mediante el portal de Azure, una plantilla de Bicep y el CLI de Azure.
En Azure Portal, vaya a la aplicación contenedora.
En el menú del lado izquierdo, seleccione Escala de aplicaciones>.
Establezca los valores Réplicas mínimas y Réplicas máximas para la revisión.
Seleccione Agregar para crear una nueva regla de escalado. Establezca el tipo en Personalizado y configure los campos Programador de tareas durables.
Asegúrese de que la casilla Autenticar con una identidad administrada está activada y elija la identidad vinculada al programador y al recurso del centro de tareas.
Haga clic en Guardar.
| Campo | Descripción | Ejemplo |
|---|---|---|
| Réplicas mínimas | Número mínimo de réplicas permitidas para la revisión del contenedor en un momento dado. | 1 |
| Número máximo de réplicas | Número máximo de réplicas permitidas para la revisión del contenedor en un momento dado. | 10 |
| endpoint | Punto de conexión del Programador de tareas durable al que se conecta el escalador. | https://dts-ID.centralus.durabletask.io |
| NúmeroMáximoDeElementosDeTrabajoSimultáneos | Número máximo de elementos de trabajo que una sola réplica procesa simultáneamente. Los valores menores hacen que el escalador agregue réplicas con mayor celeridad. Comience con 1 para el trabajo intensivo de CPU; aumente para las cargas de trabajo basadas en E/S. |
1 |
| taskhubName | Nombre del centro de tareas conectado al programador. | taskhub-ID |
| tipoDeElementoDeTrabajo | Tipo de elemento de trabajo que se está enviando. Las opciones incluyen Orchestration, Activity o Entity. |
Orchestration |
| Identidad administrada | La identidad administrada asignada por el usuario o por el sistema, vinculada al programador y al recurso del centro de tareas. | /subscriptions/<SUB_ID>/resourceGroups/<RG>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<IDENTITY_NAME> |
Tutorial: Implementación de una aplicación de contenedor de escalado automático
¿Ya se ha configurado el escalado automático en una aplicación existente? Puede omitir esta sección. Si desea un tutorial práctico, siga los pasos siguientes para implementar el Autoscaling en Azure Container Apps ejemplo mediante la CLI para desarrolladores de Azure. El ejemplo implementa una aplicación de SDK de Durable Task .NET que usa el patrón de encadenamiento de funciones e incluye un escalador KEDA preconfigurado.
Nota:
Aunque en este ejemplo se usa el SDK de .NET de Durable Task, el escalado automático es independiente del lenguaje.
Prerrequisitos
- SDK de .NET 8 o posterior
- Docker (para compilar la imagen)
- Azure CLI para desarrolladores
Configuración del entorno
Clona el directorio
Azure-Samples/Durable-Task-Scheduler.git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.gitAutentíquese con Azure mediante la CLI para desarrolladores de Azure.
azd auth login
Implementación de la solución mediante la CLI para desarrolladores de Azure
Vaya al directorio de ejemplo
AutoscalingInACA.cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACAInicialice el entorno de la CLI para desarrolladores de Azure (solo es necesario la primera vez):
azd initAprovisione recursos e implemente la aplicación:
azd upCuando se le solicite en el terminal, proporcione los parámetros siguientes.
Parámetro Descripción Nombre del entorno Prefijo del grupo de recursos creado para contener todos los recursos de Azure. Ubicación de Azure La ubicación de Azure para tus recursos. Suscripción a Azure La suscripción de Azure para tus recursos. Este proceso puede tardar un tiempo en finalizar. A medida que se completa el comando
azd up, la salida de la CLI muestra dos vínculos del portal de Azure para supervisar el progreso de la implementación. La salida también muestra cómoazd uphace lo siguiente:- Crea y configura todos los recursos necesarios de Azure a través de los archivos de Bicep proporcionados en el directorio
./inframedianteazd provision. Una vez aprovisionado por Azure CLI para desarrolladores, puede acceder a estos recursos a través del portal de Azure. Los archivos que aprovisionan los recursos de Azure incluyen:main.parameters.jsonmain.bicep- Un directorio de recursos de
apporganizado por funcionalidad - Biblioteca de referencia de
coreque contiene los módulos de Bicep usados por la plantilla deazd
- Implementa el código mediante
azd deploy
Salida prevista
Packaging services (azd package) (✓) Done: Packaging service client - Image Hash: {IMAGE_HASH} - Target Image: {TARGET_IMAGE} (✓) Done: Packaging service worker - Image Hash: {IMAGE_HASH} - Target Image: {TARGET_IMAGE} Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time. Subscription: SUBSCRIPTION_NAME (SUBSCRIPTION_ID) Location: West US 2 You can view detailed progress in the Azure portal: https://portal.azure.com/#view/HubsExtension/DeploymentDetailsBlade/~/overview/id/%2Fsubscriptions%SUBSCRIPTION_ID%2Fproviders%2FMicrosoft.Resources%2Fdeployments%2FCONTAINER_APP_ENVIRONMENT (✓) Done: Resource group: GENERATED_RESOURCE_GROUP (1.385s) (✓) Done: Virtual Network: VNET_ID (862ms) (✓) Done: Container Apps Environment: GENERATED_CONTAINER_APP_ENVIRONMENT (54.125s) (✓) Done: Container Registry: GENERATED_REGISTRY (1m27.747s) (✓) Done: Container App: SAMPLE_CLIENT_APP (21.39s) (✓) Done: Container App: SAMPLE_WORKER_APP (24.136s) Deploying services (azd deploy) (✓) Done: Deploying service client - Endpoint: https://SAMPLE_CLIENT_APP.westus2.azurecontainerapps.io/ (✓) Done: Deploying service worker - Endpoint: https://SAMPLE_WORKER_APP.westus2.azurecontainerapps.io/ SUCCESS: Your up workflow to provision and deploy to Azure completed in 10 minutes 34 seconds.- Crea y configura todos los recursos necesarios de Azure a través de los archivos de Bicep proporcionados en el directorio
Confirmar la implementación exitosa
En Azure Portal, compruebe que las orquestaciones se ejecutan correctamente.
Copie el nombre del grupo de recursos de la salida del terminal.
Inicie sesión en el portal Azure y busque ese nombre del grupo de recursos.
En la página de información general del grupo de recursos, haga clic en el recurso de aplicación contenedora cliente.
Seleccione Supervisión>flujo de logs.
Confirme que el contenedor del cliente registra las tareas de encadenamiento de funciones.
Vuelva a la página del grupo de recursos para seleccionar el
workercontenedor.Seleccione Supervisión>flujo de logs.
Confirme que el contenedor del trabajo registra las tareas de encadenamiento de funciones.
Comprender el escalador personalizado
Este ejemplo incluye un azure.yaml archivo de configuración. Cuando ejecutó azd up, implementó toda la solución de ejemplo en Azure, que incluye un escalador personalizado para sus aplicaciones de contenedor que se ajusta automáticamente según la carga de trabajo del Planificador de Tareas Durable.
Escalador personalizado:
- Supervisa el número de orquestaciones pendientes en la central de tareas.
- Escala el número de réplicas de trabajo al aumentar la carga de trabajo.
- Se reduce verticalmente cuando se reduce la carga.
- Proporciona un uso eficaz de los recursos mediante la coincidencia de la capacidad a la demanda.
Comprobación de la configuración del escalador
Compruebe que el escalado automático funciona correctamente en la solución implementada.
En el portal de Azure, vaya a la aplicación de trabajo.
En el menú de la izquierda, seleccione Aplicación>Revisiones y réplicas.
Seleccione la pestaña Réplicas para comprobar que la aplicación está escalando horizontalmente.
En el menú del lado izquierdo, seleccione Escala de aplicaciones>.
Seleccione el nombre de la regla de escalado para ver la configuración del escalador.