Esplorare le procedure consigliate per la scalabilità automatica
Se non si seguono le procedure consigliate durante la creazione di impostazioni di scalabilità automatica, è possibile creare condizioni che comportano risultati indesiderati. In questa unità si apprenderà come evitare di creare regole in conflitto.
Concetti di scalabilità automatica
Un'impostazione di scalabilità automatica scala le istanze orizzontalmente, ovvero aumenta e riduce il numero delle istanze. Un'impostazione di scalabilità automatica prevede un numero massimo, un numero minimo e un numero predefinito di istanze.
Un processo di scalabilità automatica legge sempre la metrica associata in base a cui eseguire il ridimensionamento, controllando se è stata superata la soglia configurata per l'aumento o la riduzione del numero di istanze.
Tutte le soglie vengono calcolate a livello di istanza. Ad esempio, è possibile specificare di aumentare il numero di istanze di 1 quando l'utilizzo medio della CPU > 80% e il numero di istanze è 2, per cui il ridimensionamento avviene quando l'utilizzo medio della CPU tra tutte le istanze è maggiore dell'80%.
I processi riusciti e gli errori di scalabilità automatica vengono registrati nel log attività. È quindi possibile configurare un avviso del log attività in modo da ricevere una notifica tramite posta elettronica, SMS o webhook ogni volta che è presente un'attività.
Procedure consigliate per la scalabilità automatica
Usare le procedure consigliate seguenti quando si creano regole di scalabilità automatica.
Assicurarsi che i valori massimo e minimo siano diversi e che tra di loro ci sia un margine adeguato
Se un impostazione prevede il valore minimo 2, il valore massimo 2 e il numero di istanze corrente è 2, non può essere eseguita alcuna azione di ridimensionamento. Mantenere un margine adeguato tra i conteggi massimo e minimo delle istanze, che sono valori inclusivi. La scalabilità automatica viene sempre applicata entro questi limiti.
Scegliere la statistica appropriata per la metrica di diagnostica
Per le metriche di diagnostica, è possibile scegliere tra Medio, Minimo, Massimo e Totale come metrica per il ridimensionamento. La statistica più comune è Media.
Scegliere attentamente le soglie per tutti i tipi di metriche
È consigliabile scegliere con attenzione soglie diverse per l'aumento e la riduzione del numero di istanze in base a situazioni pratiche.
Non è consigliabile scegliere impostazioni di scalabilità automatica come quelle degli esempi seguenti, con valori di soglia uguali o simili per le condizioni di aumento e riduzione del numero di istanze:
- Aumentare il numero di istanze di uno quando il conteggio dei thread >= 600
- Ridurre il numero di istanze di uno quando il conteggio dei thread <= 600
Verrà ora esaminato un esempio di come si può arrivare a un comportamento che può sembrare poco chiaro. Considerare la sequenza indicata di seguito.
- Si supponga di iniziare con due istanze e che poi il numero medio di thread per ogni istanza aumenti fino a 625.
- Il numero di istanze viene aumentato automaticamente aggiungendo una terza istanza.
- Si supponga ora che il conteggio medio dei thread nell'istanza scenda a 575.
- Prima di ridimensionare il numero di istanze, la scalabilità automatica cerca di stimare quale sarà lo stato finale in caso di riduzione del numero di istanze. Ad esempio, 575 x 3 (conteggio corrente delle istanze) = 1.725 / 2 (numero finale di istanze dopo la riduzione) = 862,5 thread. La scalabilità automatica dovrà quindi immediatamente aumentare di nuovo il numero di istanze anche dopo averlo ridotto, se il conteggio medio dei thread rimane invariato o scende anche solo di poco. Se, tuttavia, aumentasse di nuovo il numero di istanze, l'intero processo si ripeterebbe, generando un loop infinito.
- Per evitare questa situazione (definita "instabile"), la scalabilità automatica non riduce affatto le istanze. ma ignora la condizione e la valuta nuovamente la volta successiva che il processo del servizio viene eseguito. Questo può generare confusione perché sembra che la scalabilità automatica non funzioni quando il conteggio medio dei thread è 575.
La stima per la riduzione del numero di istanze è prevista per evitare situazioni in cui le azioni di aumento e riduzione vengono continuamente invertite. Tenere presente questo comportamento quando si scelgono le stesse soglie per l'aumento e la riduzione del numero di istanze.
È consigliabile scegliere un margine adeguato tra le soglie di aumento e di riduzione del numero di istanze. Ad esempio, considerare la combinazione di regole seguente, che è migliore.
- Aumentare le istanze di 1 quando la percentuale di CPU è >= 80
- Ridurre le istanze di 1 quando la percentuale di CPU è <= 60
In questo caso
- Si supponga di iniziare con 2 istanze.
- Se la % di CPU media nelle istanze arriva a 80, la scalabilità automatica aumenta il numero di istanze aggiungendone una terza.
- Si supponga che nel corso del tempo la percentuale di CPU scenda a 60.
- La regola di riduzione del numero di istanze della scalabilità automatica valuta lo stato finale se venisse applicata la riduzione del numero di istanze. Ad esempio, 60 x 3 (conteggio corrente delle istanze) = 180 / 2 (numero finale di istanze dopo la riduzione delle istanze) = 90. La scalabilità automatica quindi non riduce il numero di istanze perché dovrebbe aumentarlo di nuovo immediatamente. Al contrario, evita di ridurre le istanze.
- Al successivo controllo, la percentuale di CPU continua a scendere fino a 50. Viene quindi eseguita una nuova stima: 50 x 3 istanze = 150 / 2 istanze = 75, che è al di sotto della soglia di aumento del numero di istanze pari a 80, quindi il numero di istanze viene correttamente ridotto a 2.
Considerazioni sul ridimensionamento quando vengono configurate più regole in un profilo
In alcuni casi potrebbe essere necessario impostare più regole in un profilo. Il set di regole di scalabilità automatica seguente viene usato dai servizi quando vengono impostate più regole.
In caso di aumento del numero di istanze, la scalabilità automatica viene eseguita se risulta soddisfatta una regola qualsiasi. In caso di riduzione del numero di istanze, la scalabilità automatica richiede che tutte le regole siano soddisfatte.
Per illustrare questo concetto, si supponga di avere le quattro regole di scalabilità automatica seguenti:
- Se la CPU è < 30%, ridurre il numero di istanze di 1
- Se la memoria è < 50%, ridurre il numero di istanze di 1
- Se la CPU è > 75%, aumentare il numero di istanze di 1
- Se la memoria è > 75%, aumentare il numero di istanze di 1
Si verifica quanto segue:
- Se la CPU è pari al 76% e la memoria è pari al 50%, il numero di istanze verrà aumentato.
- Se la CPU è pari al 50% e la memoria è pari al 76%, il numero di istanze verrà aumentato.
Ma, se la CPU è pari al 25% e la memoria è pari al 51%, la scalabilità automatica non riduce il numero di istanze. Si verificherebbe una riduzione automatica del numero di istanze se la CPU è pari al 29% e la memoria è pari al 49% poiché entrambe le regole di scalabilità sarebbero vere.
Selezionare sempre un numero di istanze predefinito sicuro
Il numero di istanze predefinito è importante poiché la scalabilità automatica dimensiona il servizio a quel numero quando le metriche non sono disponibili. Selezionare quindi un conteggio di istanze predefinito sicuro per i carichi di lavoro.
Configurare le notifiche relative alla scalabilità automatica
La scalabilità automatica esegue la registrazione sul log attività se si verifica una delle condizioni seguenti:
- La scalabilità automatica esegue un'operazione di scalabilità
- Il servizio di scalabilità automatica esegue correttamente un'azione di scalabilità
- Il servizio di scalabilità automatica non riesce a eseguire un'azione di scalabilità.
- Non sono disponibili metriche che consentono al servizio di scalabilità automatica di prendere una decisione sul ridimensionamento.
- Sono di nuovo disponibili metriche (ripristino) che consentono di prendere una decisione sulla scalabilità.
Per monitorare l'integrità del motore di scalabilità automatica si può anche usare un avviso di log attività. Oltre a usare gli avvisi di log attività, è possibile configurare le notifiche tramite posta elettronica o webhook per ricevere una notifica delle azioni di scalabilità riuscite tramite la scheda delle notifiche dell'impostazione di scalabilità automatica.