Compartir a través de


Configuración del escalado automático para la aplicación del SDK de Durable Task hospedada en Azure Container Apps (versión preliminar)

Puede implementar el escalado automático en aplicaciones de contenedor que usan el Programador de tareas durables. El escalado automático mantiene la confiabilidad y escalabilidad de los flujos de trabajo de larga duración adaptando a las demandas cambiantes sin intervención manual.

Controle el proceso de escalado automático estableciendo el intervalo de réplicas de las aplicaciones que se activan en respuesta a la activación de una orquestación, actividad o entidad. El escalador ajusta dinámicamente el número de réplicas de aplicaciones de contenedor dentro de ese intervalo, lo que permite que la solución controle los picos de la carga de trabajo y evite el agotamiento de recursos.

Nota:

El escalado automático es compatible con las aplicaciones creadas mediante los SDK de Durable Task y hospedados en Azure Container Apps.

Configuración del escalador automático

Puede establecer la configuración del escalador automático mediante Azure Portal, una plantilla de Bicep y la CLI de Azure.

Captura de pantalla de la configuración mínima y máxima de réplica del escalador en Azure Portal.

Captura de pantalla de la configuración relacionada con el programador de tareas duraderas para el escalador en el portal de Azure.

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
punto final 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 El número máximo de tareas simultáneas despachadas como un evento a tu sistema de cómputo, como indicarle a tu sistema que lleve a cabo una orquestación. 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 Orquestación, Actividad o Entidad. Orquestación
Identidad administrada La identidad administrada asignada por el usuario o por el sistema, vinculada al programador y al recurso de la central de tareas. Asegúrese de que la casilla Autenticar con una identidad administrada está activada. someone@example.com

Experimento con el ejemplo

En el ejemplo Escalado automático en Azure Container Apps, se usa la CLI para desarrolladores de Azure para implementar el escalado automático de una aplicación contenedora compilada con el SDK de Durable Task de .NET y hospedado en Azure Container Apps. En el ejemplo se muestra una orquestación mediante el patrón de encadenamiento de funciones.

Nota:

Aunque en este ejemplo se usa el SDK de .NET de Durable Task, el escalado automático es independiente del lenguaje.

Prerrequisitos

Configuración del entorno

  1. Clona el Azure-Samples/Durable-Task-Scheduler directorio.

    git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.git
    
  2. Autentí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

  1. Vaya al directorio de ejemplo AutoscalingInACA.

    cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACA
    
  2. Aprovisione recursos e implemente la aplicación:

    azd up
    
  3. Cuando 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 Ubicación de Azure para los recursos.
    Suscripción a Azure La suscripción de Azure para los 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 de Azure Portal para supervisar el progreso de la implementación. La salida también muestra cómo azd up hace lo siguiente:

    • Crea y configura todos los recursos necesarios de Azure a través de los archivos de Bicep proporcionados en el directorio ./infra mediante azd provision. Una vez aprovisionados por Azure Developer CLI, puede acceder a estos recursos a través de Azure Portal. Los archivos que aprovisionan los recursos de Azure incluyen:
      • main.parameters.json
      • main.bicep
      • Un directorio de recursos de app organizado por funcionalidad
      • Biblioteca de referencia de core que contiene los módulos de Bicep usados por la plantilla de azd
    • Implementa el código mediante azd deploy

    Salida esperada

    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.   
    

Confirmar la implementación exitosa

En Azure Portal, compruebe que las orquestaciones se ejecutan correctamente.

  1. Copie el nombre del grupo de recursos de la salida del terminal.

  2. Inicie sesión en Azure Portal y busque ese nombre del grupo de recursos.

  3. En la página de información general del grupo de recursos, haga clic en el recurso de aplicación contenedora cliente.

  4. Seleccione Supervisión>flujo de logs.

  5. Confirme que el contenedor del cliente registra las tareas de encadenamiento de funciones.

    Captura de pantalla del flujo de registro del contenedor de cliente en Azure Portal.

  6. Vuelva a la página del grupo de recursos para seleccionar el worker contenedor.

  7. Seleccione Supervisión>flujo de logs.

  8. Confirme que el contenedor del trabajo registra las tareas de encadenamiento de funciones.

    Captura de pantalla del flujo de registro del contenedor de trabajo en Azure Portal.

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, incluido un escalador personalizado para las aplicaciones de contenedor que se escala automáticamente según la carga de trabajo del Programador de tareas duraderas.

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.

Confirmación de que el escalador está configurado

Compruebe que el escalado automático funciona correctamente en la solución implementada.

  1. En Azure Portal, vaya a la aplicación de trabajo.

  2. En el menú del lado izquierdo, haga clic en Aplicación>Revisiones y réplicas.

  3. Haga clic en la pestaña Réplicas para comprobar que la aplicación está escalando horizontalmente.

  4. En el menú del lado izquierdo, haga clic en Escala de aplicaciones>.

  5. Haga clic en el nombre de la escala para ver la configuración del escalador.

Pasos siguientes

Actualmente, el escalado automático de aplicaciones de contenedor con Durable Functions para el Programador de tareas duraderas no está disponible. Mientras tanto, pruebe el escalado automático de aplicaciones de contenedor mediante el back-end de Microsoft SQL (MSSQL).