Compartir a través de


Configuración del escalado

Configure las opciones de escalado para administrar el rendimiento y el costo del grupo de DevOps administrado. Para obtener información sobre los precios y el rendimiento, consulte Administración del costo y el rendimiento.

Estado del agente

Los grupos de DevOps administrados se pueden configurar como sin estado o con estado.

  • Grupos sin estado: proporcione un agente nuevo para cada trabajo.
  • Grupos con estado: permite el uso compartido de agentes entre varios trabajos.

La configuración predeterminada de un grupo de DevOps administrado no tiene estado (agente fresco cada vez), pero en algunos casos es posible que los equipos quieran reutilizar agentes para reutilizar los paquetes o archivos creados durante la ejecución de canalización anterior. La carga de trabajo de compilación es un escenario común en el que los equipos quieren conservar el estado y reutilizar los agentes. Puede lograr grupos con estado a través de grupos de DevOps administrados al equilibrarlos con los procedimientos recomendados de seguridad. De forma predeterminada, un agente se puede reutilizar durante un máximo de 7 días, pero puede configurarlo para que se rerecicle antes.

Nota:

Los expertos en seguridad recomiendan los grupos sin estado o el uso de la configuración de estado del agente Fresh agent cada vez que los expertos en seguridad son una defensa contra los ataques de la cadena de suministro.

Grupos sin estado

Cuando se configura un agente sin estado, se adquiere un nuevo agente para cada trabajo y se descarta una vez completado el trabajo.

Captura de pantalla de un agente sin estado.

Cuando el estado del agente se establece en Agente fresco cada vez, se adquiere un nuevo agente para cada trabajo y se descarta una vez completado el trabajo.

Grupos con estado

Captura de pantalla de un agente con estado.

Cuando varias compilaciones pueden usar el mismo agente ("kind": "stateful" en plantillas de recursos o { "stateful": {...} } en la CLI de Azure) está habilitada, los agentes del grupo se consideran con estado. Los grupos con estado se configuran con los valores siguientes.

  • El tiempo máximo de vida de los agentes en espera (maxAgentLifetime) configura la duración máxima que un agente de un grupo con estado se puede ejecutar antes de que se cierre y descarte. El formato de Tiempo máximo de vida para agentes en espera es dd.hh:mm:ss. El valor predeterminado de Tiempo máximo de vida para agentes en espera se establece en la duración máxima permitida de siete días (7.00:00:00).

  • Período de gracia (gracePeriodTimeSpan) configura la cantidad de tiempo que un agente de un grupo con estado espera nuevos trabajos antes de apagarse después de que se completen todos los trabajos actuales y en cola. El formato del período de gracia es dd.hh:mm:ss y el valor predeterminado no es ningún período de gracia.

Aunque los agentes de grupos sin estado se cierran y descartan después de cada trabajo, los agentes de grupos con estado siguen ejecutándose si se cumple alguna de las condiciones siguientes.

  • Si hay otro trabajo en cola cuando se completa el primer trabajo, los grupos de DevOps administrados envían ese trabajo al agente que ejecutó el primer trabajo en lugar de apagarlo.
  • Si hay un período de gracia configurado para el grupo, los agentes esperan a que los nuevos trabajos duren la duración especificada por el período de gracia antes de cerrarse.
  • Si los agentes en espera están habilitados y la imagen del agente cumple los criterios del período de aprovisionamiento activo, el agente continúa ejecutándose y esperando trabajos.

Los agentes en ejecución en grupos con estado se cierran y descartan si se ejecutan continuamente durante el tiempo especificado por Tiempo máximo de vida para los agentes en espera, incluso si se cumplen las condiciones anteriores. Por ejemplo, si el tiempo máximo de vida para los agentes en espera está configurado durante tres días y el modo de agente en espera se establece en Manual, All Week Scheme (Máquinas disponibles 24/7), los agentes se reinician después de tres días continuos de tiempo de actividad.

Importante

Los agentes de grupos con estado todavía se pueden apagar y descartar después de que se complete un trabajo si no hay ningún período de gracia, ningún período de aprovisionamiento activo para agentes en espera y ningún trabajo en cola que coincida con el agente. Una vez descartado un agente, se pierde cualquier estado.

El período de gracia permite la forma más rentable de ejecutar grupos con estado para canalizaciones con carga coherente y no requiere el uso del modo de agente en espera para mantener los agentes en línea y listos para aceptar trabajos.

Modo de agente en espera

Al crear un grupo, el modo de agente en espera está desactivado de forma predeterminada y no hay ningún agente en espera para asignar inmediatamente a las canalizaciones, lo que puede tener que esperar unos minutos, hasta 15 minutos, para que un agente se aprovisione a petición. Para mejorar el rendimiento, habilite el modo de agente en espera y configure una programación de agente en espera que proporcione capacidad para la carga de trabajo.

Cuando se configura una programación de agente en espera, los grupos de DevOps administrados comparan periódicamente el recuento de agentes aprovisionados con el recuento de agentes en espera especificados por el esquema de aprovisionamiento actual e inicia nuevos agentes según sea necesario para mantener el recuento de agentes en espera. Puede ver el recuento y estado actual de los agentes en su grupo mediante el panel Agentes.

Importante

El recuento de aprovisionamiento de un esquema no puede ser mayor que los agentes máximos configurados en Configuración del grupo.

El modo de agente en espera se configura mediante las siguientes opciones:

  • Desactivado : el modo de agente en espera está desactivado y los agentes se aprovisionan a petición cuando se ponen en cola los trabajos.
  • Manual : configure una programación manual en espera.
  • Automático : use una programación automática en espera basada en el historial de uso del agente y configurable para el costo y el rendimiento.

Captura de pantalla de la selección del modo de agente en espera.

Manual

El modo manual es más adecuado para los equipos que tienen conocimiento de sus patrones de uso de canalizaciones de CI/CD. Si selecciona la opción manual, debe definir el esquema de aprovisionamiento previo en función de su comprensión de cuándo es más probable que los agentes del grupo se usen y cuántos agentes probablemente se usen y especifiquen un recuento de aprovisionamiento de agentes que cumplan la demanda proyectada.

Puede crear su propia programación de aprovisionamiento o elegir entre una de las programaciones predefinidas y puede configurar la zona horaria que se usará para especificar las programaciones. El valor predeterminado de TimeZone de aprovisionamiento previo es (UTC) Hora universal coordinada.

La configuración manual del agente en espera se puede configurar de una de las tres maneras siguientes.

Cada uno de los inicios rápidos previos al aprovisionamiento tiene la siguiente configuración común además de la configuración específica para ese inicio rápido.

  • TimeZone de aprovisionamiento previo le permite configurar la zona horaria para las horas del esquema de aprovisionamiento previo. El valor predeterminado de TimeZone de aprovisionamiento previo es (UTC) Hora universal coordinada.
  • El porcentaje del agente en espera configura el porcentaje de agentes en espera que desee para cada imagen. Puede escribir * para asegurarse de que todas las imágenes se aprovisionan igualmente, o puede especificar un entero de 0 a 100 para representar un porcentaje. Si especifica un porcentaje, el total de todas las imágenes debe ser igual a 100. Si tiene una sola imagen, especifique * o 100. El porcentaje del agente en espera se configura en la images sección al usar plantillas de ARM. Para obtener más información, consulte Configuración de imágenes.

Captura de pantalla del modo de espera manual.

Inicio desde cero

Si decide empezar desde cero, puede agregar una lista de períodos de aprovisionamiento para servir como esquema de aprovisionamiento. Cada período de aprovisionamiento consta de un día de inicio, un día de finalización, una zona horaria, una hora de inicio, una hora de finalización y un recuento. Los períodos de aprovisionamiento no se pueden superponer entre sí.

Propiedad Descripción
Múltiples días Cuando se activa, puede configurar un día de inicio y un día de finalización para el esquema de aprovisionamiento.
Hasta el siguiente período Cuando se activa, el período de aprovisionamiento se ejecuta desde la hora de inicio hasta el inicio del siguiente período de aprovisionamiento.
Día de inicio Día en que se inicia el período de aprovisionamiento.
Día final El día en que finaliza el período de aprovisionamiento. Obligatorio si se comprueba Multi-Day.
Hora de inicio Hora en que se inicia el período de aprovisionamiento.
Hora de finalización Hora en que finaliza el período de aprovisionamiento. Obligatorio a menos que se compruebe hasta el siguiente período .
Count Número de agentes en espera que se van a aprovisionar. Este número debe ser mayor que cero y no debe ser mayor que el valor Máximo de agentes configurado en Configuración del grupo.

Después de crear un período de aprovisionamiento, puede eliminar o editar el período de la lista Esquema de aprovisionamiento previo.

En el ejemplo siguiente se configura un esquema manual con 1 agente aprovisionado el lunes por las mañanas de 12:00 a 5:00 EST.

Captura de pantalla del esquema de escalado manual.

Esquema de días laborables

Si elige el esquema de días laborables, puede especificar una hora de inicio y una hora de finalización en las que el número especificado de agentes en espera estará en espera cada día de la semana.

Propiedad Descripción
Hora de inicio Hora en que se inicia el período de aprovisionamiento.
Hora de finalización Hora en que finaliza el período de aprovisionamiento.
Recuento de aprovisionamiento Número de agentes en espera que se van a aprovisionar. Este número debe ser mayor que cero y no debe ser mayor que el valor Máximo de agentes configurado en Configuración del grupo.

En el ejemplo siguiente se configuran cuatro agentes que se usarán durante las horas de trabajo con 0 agentes durante el horario no laborable y los fines de semana, mediante la hora estándar oriental.

Captura de pantalla del esquema de día de la semana.

Esquema de toda la semana

Si elige el esquema de toda la semana, puede especificar una serie de agentes que desee disponibles 24/7.

Captura de pantalla del esquema de toda la semana.

Automático

Si no conoce los patrones de uso y quiere confiar en la previsión automática basada en datos anteriores, elija Automático. Puede equilibrar entre el costo y el rendimiento del agente mediante un control deslizante con las cinco opciones siguientes. Los grupos de DevOps administrados ejecutan una consulta en las últimas tres semanas de datos históricos (si están disponibles), organizando las sesiones en cola del grupo en cinco minutos y asigna el percentil especificado (para evitar picos) a cada hora.

  • Más rentable (MostCostEffective): percentil 10
  • Más rentable (MoreCostEffective): percentil 25
  • Equilibrado (valor predeterminado) (Balanced): percentil 50
  • Más rendimiento (MorePerformance): percentil 75
  • Mejor rendimiento (BestPerformance): percentil 90

Captura de pantalla de la configuración de escalado automático.

Consulte también