Condividi tramite


Configurare il ridimensionamento

Configurare le impostazioni di ridimensionamento per gestire le prestazioni e i costi del pool DevOps gestito. Per informazioni sui prezzi e sulle prestazioni, vedere Gestire i costi e le prestazioni.

Stato dell'agente

I pool DevOps gestiti possono essere configurati come senza stato o con stato.

  • Pool senza stato: fornire un nuovo agente per ogni processo.
  • Pool con stato: consente la condivisione di agenti tra più processi.

L'impostazione predefinita per un pool devOps gestito è senza stato (agente aggiornato ogni volta), ma in alcuni casi i team potrebbero voler riutilizzare gli agenti per riutilizzare i pacchetti o i file creati durante l'esecuzione della pipeline precedente. Il carico di lavoro di compilazione è uno scenario comune in cui i team vogliono mantenere lo stato e riutilizzare gli agenti. È possibile ottenere pool con stato tramite pool DevOps gestiti, bilanciandoli con le procedure consigliate per la sicurezza. Per impostazione predefinita, un agente può essere riutilizzato per un massimo di 7 giorni, ma è possibile configurarlo per essere riciclato prima.

Nota

I pool senza stato o l'uso dello stato dell'agente impostano Fresh agent ogni volta che sono consigliati dagli esperti di sicurezza come difesa dagli attacchi della supply chain.

Pool senza stato

Quando viene configurato un agente senza stato, viene acquistato un nuovo agente per ogni processo e viene rimosso al termine del processo.

Screenshot di un agente senza stato.

Quando lo stato dell'agente è impostato su Fresh Agent ogni volta, viene acquistato un nuovo agente per ogni processo e viene rimosso al termine del processo.

Pool con stato

Screenshot di un agente con stato.

Quando lo stesso agente può essere usato da più compilazioni ("kind": "stateful" nei modelli di risorse o { "stateful": {...} } nell'interfaccia della riga di comando di Azure) è abilitato, gli agenti nel pool vengono considerati con stato. I pool con stato vengono configurati usando le impostazioni seguenti.

  • Il tempo massimo di esecuzione per gli agenti di standby (maxAgentLifetime) configura la durata massima che un agente in un pool con stato può essere eseguito prima che venga arrestato e rimosso. Il formato di durata massima per gli agenti di standby è dd.hh:mm:ss. Il valore predefinito Max time to live for standby agents è impostato sulla durata massima consentita di sette giorni (7.00:00:00).

  • Periodo di tolleranza (gracePeriodTimeSpan) configura la quantità di tempo per cui un agente in un pool con stato attende i nuovi processi prima dell'arresto dopo il completamento di tutti i processi correnti e in coda. Il formato del periodo di tolleranza è dd.hh:mm:ss e il valore predefinito non è un periodo di tolleranza.

Mentre gli agenti nei pool senza stato vengono arrestati e rimossi dopo ogni processo, gli agenti nei pool con stato continuano a essere in esecuzione se vengono soddisfatte una delle condizioni seguenti.

  • Se è presente un altro processo in coda al completamento del primo processo, i pool di DevOps gestiti inviano tale processo all'agente che ha eseguito il primo processo invece di arrestarlo.
  • Se è configurato un periodo di tolleranza per il pool, gli agenti attendono i nuovi processi per la durata specificata dal periodo di tolleranza prima dell'arresto.
  • Se gli agenti di standby sono abilitati e l'immagine dell'agente soddisfa i criteri del periodo di provisioning attivo, l'agente continua a essere eseguito e attende i processi.

Gli agenti in esecuzione nei pool con stato vengono arrestati e rimossi se vengono eseguiti continuamente per la durata specificata da Max time to live per gli agenti di standby, anche se le condizioni precedenti sono vere. Se, ad esempio, la durata massima per gli agenti di standby è configurata per tre giorni e la modalità agente standby è impostata su Manuale, Schema di tutte le settimane (computer disponibili 24/7), gli agenti vengono riavviati dopo tre giorni di tempo di attività continui.

Importante

Gli agenti nei pool con stato possono comunque essere arrestati e rimossi dopo il completamento di un processo se non è presente alcun periodo di tolleranza, nessun periodo di provisioning attivo per gli agenti di standby e nessun processo in coda corrispondente all'agente. Una volta rimosso un agente, qualsiasi stato viene perso.

Il periodo di tolleranza consente il modo più conveniente per eseguire pool con stato per le pipeline con carico coerente e non richiede l'uso della modalità agente standby per mantenere online gli agenti e pronti ad accettare processi.

Modalità agente standby

Quando si crea un pool, la modalità agente standby è disattivata per impostazione predefinita e non sono presenti agenti di standby da assegnare immediatamente alle pipeline, che potrebbero dover attendere alcuni istanti, fino a 15 minuti, affinché venga effettuato il provisioning di un agente su richiesta. Per prestazioni migliori, abilitare la modalità agente standby e configurare una pianificazione dell'agente di standby che fornisce capacità per il carico di lavoro.

  • Disattivata : la modalità agente standby è disattivata e gli agenti vengono sottoposte a provisioning su richiesta quando i processi vengono accodati.
  • Manuale : configurare una pianificazione di standby manuale.
  • Automatico : usare una pianificazione di standby automatica in base alla cronologia di utilizzo dell'agente e configurabile per i costi e le prestazioni.

Screenshot della selezione della modalità agente di standby.

Manuale

La modalità manuale è più adatta per i team che hanno familiarità con i modelli di utilizzo delle pipeline CI/CD. Se si seleziona l'opzione manuale, è necessario definire lo schema di pre-provisioning in base alla comprensione dell'uso degli agenti nel pool e del numero di agenti che potrebbero essere usati e specificare un conteggio di provisioning degli agenti che soddisfano la richiesta prevista.

È possibile creare una pianificazione di provisioning personalizzata o scegliere tra una delle pianificazioni predefinite ed è possibile configurare il fuso orario da usare per specificare le pianificazioni. Il valore predefinito per Il fuso orario di pre-provisioning è (UTC) Coordinated Universal Time.

Suggerimento

Il numero di provisioning in uno schema non può essere maggiore degli agenti massimi configurati nelle impostazioni pool.

Ogni pochi minuti, i pool di DevOps gestiti controllano il numero di agenti attivi che eseguono processi e agenti di standby in attesa di processi, per assicurarsi che il numero di provisioning degli agenti specificati dallo schema di provisioning corrente sia disponibile. Se il numero di provisioning corrente è 10 e sono presenti cinque agenti che eseguono processi e due agenti in standby, i pool di DevOps gestiti avviano tre agenti di standby aggiuntivi per portare il conteggio totale degli agenti fino a 10.

La configurazione manuale dell'agente standby può essere configurata in uno dei tre modi seguenti.

Ognuna delle guide introduttive di pre-provisioning include le impostazioni comuni seguenti, oltre alle impostazioni specifiche per tale avvio rapido.

  • Il pre-provisioning timeZone consente di configurare il fuso orario per gli orari nello schema di pre-provisioning. Il valore predefinito per Il fuso orario di pre-provisioning è (UTC) Coordinated Universal Time.
  • Percentuale agente standby configura la percentuale di agenti di standby desiderati per ogni immagine. È possibile immettere * per assicurarsi che venga eseguito lo stesso provisioning di tutte le immagini oppure è possibile specificare un numero intero compreso tra 0 e 100 per rappresentare una percentuale. Se si specifica una percentuale, il totale per tutte le immagini deve essere uguale a 100. Se si dispone di una singola immagine, specificare * o 100. La percentuale dell'agente di standby viene configurata nella images sezione quando si usano i modelli di Resource Manager. Per altre informazioni, vedere Configurare le immagini.

Screenshot della modalità standby manuale.

Inizia da zero

Se si sceglie di iniziare da zero, è possibile aggiungere un elenco di periodi di provisioning da usare come schema di provisioning. Ogni periodo di provisioning è costituito da un giorno di inizio, un giorno di fine, un fuso orario, un'ora di inizio, un'ora di fine e un conteggio. I periodi di provisioning non possono sovrapporsi tra loro.

Proprietà Descrizione
Più giorni Quando selezionata, è possibile configurare sia un giorno di inizio che un giorno di fine per lo schema di provisioning.
Fino al periodo successivo Quando selezionato, il periodo di provisioning viene eseguito dall'ora di inizio fino all'inizio del periodo di provisioning successivo.
Giorno di inizio Giorno in cui inizia il periodo di provisioning.
Fine giorno Giorno in cui termina il periodo di provisioning. Obbligatorio se è selezionata l'opzione Multi-Day.
Ora di avvio Ora di inizio del periodo di provisioning.
Ora di fine Ora di fine del periodo di provisioning. Obbligatorio a meno che non venga controllato fino al periodo successivo.
Count Numero di agenti di standby di cui effettuare il provisioning. Questo numero deve essere maggiore di zero e non deve essere maggiore del valore Massimo agenti configurato nelle impostazioni pool.

Dopo aver creato un periodo di provisioning, è possibile eliminare o modificare il periodo dall'elenco Schema di pre-provisioning.

L'esempio seguente configura uno schema manuale con 1 agente di cui è stato effettuato il provisioning il lunedì mattina dalle 12:00 alle 5:00 EST.

Screenshot dello schema di ridimensionamento manuale.

Schema giorno feriale

Se si sceglie lo schema della settimana, è possibile specificare un'ora di inizio e un'ora di fine in cui il numero specificato di agenti di standby sarà in standby ogni giorno feriale.

Proprietà Descrizione
Ora di avvio Ora di inizio del periodo di provisioning.
Ora di fine Ora di fine del periodo di provisioning.
Conteggio provisioning Numero di agenti di standby di cui effettuare il provisioning. Questo numero deve essere maggiore di zero e non deve essere maggiore del valore Massimo agenti configurato nelle impostazioni pool.

Nell'esempio seguente vengono configurati quattro agenti da utilizzare durante l'orario di lavoro con 0 agenti durante le ore non lavorative e i fine settimana, usando l'ora solare orientale.

Screenshot dello schema della settimana.

Tutti gli schemi settimanali

Se si sceglie lo schema di tutte le settimane, è possibile specificare un numero di agenti che si desiderano disponibili 24/7.

Screenshot dello schema di tutte le settimane.

Automatico

Se non si conoscono i modelli di utilizzo e si vuole basarsi sulla previsione automatica basata sui dati passati, scegliere Automatico. È possibile bilanciare i costi e le prestazioni dell'agente usando un dispositivo di scorrimento con le cinque opzioni seguenti. I pool DevOps gestiti eseguono una query nelle ultime tre settimane di dati cronologici (se disponibili), organizzando le sessioni in coda del pool in cinque minuti e assegnando il percentile specificato (per evitare picchi) a ogni ora.

  • Più conveniente (MostCostEffective) - 10° percentile
  • Più conveniente (MoreCostEffective) - 25° percentile
  • Bilanciato (impostazione predefinita) -Balanced 50° percentile
  • Prestazioni maggiori (MorePerformance) - 75° percentile
  • Prestazioni migliori (BestPerformance) - 90° percentile

Screenshot dell'impostazione di ridimensionamento automatico.

Vedi anche