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.
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.
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
- SDK de .NET 8 o posterior
- Docker (para compilar la imagen)
- CLI de desarrollo de Azure
Configuración del entorno
Clona el
Azure-Samples/Durable-Task-Scheduler
directorio.git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.git
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
Vaya al directorio de ejemplo
AutoscalingInACA
.cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACA
Aprovisione recursos e implemente la aplicación:
azd up
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ómoazd 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
medianteazd 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 deazd
- 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.
- 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 Azure Portal 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
worker
contenedor.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, 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.
En Azure Portal, vaya a la aplicación de trabajo.
En el menú del lado izquierdo, haga clic en Aplicación>Revisiones y réplicas.
Haga clic en la pestaña Réplicas para comprobar que la aplicación está escalando horizontalmente.
En el menú del lado izquierdo, haga clic en Escala de aplicaciones>.
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).