Esplorare le procedure consigliate per la scalabilità automatica

Completato

Se non si seguono le procedure consigliate durante la creazione di impostazioni di scalabilità automatica, è possibile creare condizioni che portano a risultati indesiderati. In questa unità si apprenderà come evitare di creare regole in conflitto tra loro.

Concetti relativi alla scalabilità automatica

  • Un'impostazione di scalabilità automatica ridimensiona le istanze orizzontalmente, aumentando le istanze e in riducendo il numero di istanze. Un'impostazione di scalabilità automatica ha un valore massimo, minimo e predefinito delle istanze.

  • Un processo di scalabilità automatica legge sempre la metrica associata per la scalabilità, verificando se ha superato la soglia configurata per la scalabilità espansiva o riduttiva.

  • Tutte le soglie vengono calcolate a livello di istanza. Ad esempio, "scalare orizzontalmente aggiungendo un'istanza quando la CPU media > supera il valore di 80% e il numero di istanze è 2", significa aumentare le istanze quando la CPU media di tutte le istanze è maggiore di 80%.

  • Tutti i successi e i fallimenti di scalabilità automatica vengono registrati nel registro attività. È quindi possibile configurare un avviso del log attività in modo che sia possibile 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 durante la creazione delle regole di scalabilità automatica.

Assicurarsi che i valori massimi e minimi siano diversi e abbiano un margine adeguato tra di essi

Se si dispone di un'impostazione con minimum=two, maximum=two e il conteggio delle istanze corrente è due, non è possibile eseguire alcuna azione di scalabilità. Mantenere un margine adeguato tra il numero massimo e il numero minimo di istanze, inclusi. La scalabilità automatica viene sempre ridimensionata tra questi limiti.

Scegliere la statistica appropriata per la metrica di diagnostica

Per le metriche di diagnostica, è possibile scegliere tra Media, Minimo, Massimo e Totale come metrica di cui scalare. La statistica più comune è Media.

Scegliere attentamente le soglie per tutti i tipi di metrica

È consigliabile scegliere con attenzione soglie diverse per la scalabilità orizzontale e verticale, in base a situazioni pratiche.

È non è consigliabile impostazioni di scalabilità automatica come gli esempi seguenti con gli stessi valori di soglia o simili per out e in condizioni:

  • Aumenta le istanze di uno quando il conteggio dei thread >= 600
  • Ridurre le istanze di uno quando il conteggio dei Thread <= 600

Di seguito viene illustrato un esempio di ciò che può portare a un comportamento che potrebbe sembrare confuso. Si consideri la sequenza seguente.

  1. Si supponga che siano presenti due istanze con cui iniziare e quindi il numero medio di thread per istanza cresce fino a 625.
  2. La scalabilità automatica aggiunge una terza istanza.
  3. Si supponga quindi che il numero medio di thread nell'istanza sia pari a 575.
  4. Prima di ridurre le dimensioni, la scalabilità automatica cerca di stimare quale sarebbe lo stato finale se essa stessa venisse ridimensionata. Ad esempio, 575 x 3 (numero di istanze correnti) = 1.725 / 2 (numero finale di istanze quando viene ridimensionato) = 862,5 thread. Ciò significa che la scalabilità automatica dovrebbe aumentare immediatamente le risorse nuovamente anche dopo essere stata ridimensionata, se il numero medio di thread rimane invariato o scende di poco. Tuttavia, se è stato ridimensionato di nuovo, l'intero processo si ripete, causando un ciclo infinito.
  5. Per evitare questa situazione (con il termine "flapping"), la scalabilità automatica non viene ridimensionata affatto. Invece, salta e rivaluta la condizione la prossima volta che viene eseguito il processo del servizio. Questo può confondere molte persone perché la scalabilità automatica non sembra funzionare quando il numero medio di thread era 575.

La stima durante una riduzione del numero di istanze è destinata a evitare situazioni di "instabilità", in cui le azioni di riduzione e aumento del numero di istanze si alternino continuamente. Tenere presente questo comportamento quando si scelgono le stesse soglie per il ridimensionamento e l'aumento del numero di istanze.

Si consiglia di scegliere un margine adeguato tra le soglie di scalabilità in entrata e in uscita. Si consideri ad esempio la combinazione di regole migliore seguente.

  • Aumenta di 1 il conteggio delle istanze quando la CPU% >è pari a 80.
  • Ridurre di 1 il numero di istanze quando la CPU% <= 60

In questo caso

  1. Si supponga che siano presenti 2 istanze con cui iniziare.
  2. Se la CPU media% tra istanze passa a 80, la scalabilità automatica aumenta aggiungendo una terza istanza.
  3. Si supponga ora che nel tempo la CPU% scende a 60.
  4. La regola di scalabilità automatica stima lo stato finale se dovesse essere ridimensionato. Ad esempio, 60 x 3 (numero di istanze correnti) = 180 / 2 (numero finale di istanze quando viene ridimensionato) = 90. Pertanto, la scalabilità automatica non viene ridimensionata perché sarebbe necessario aumentare di nuovo il numero di istanze immediatamente. Ignora invece il ridimensionamento.
  5. Al successivo controllo della scalabilità automatica, la CPU continua a scendere a 50. Stima di nuovo - 50 x 3 istanza = 150 / 2 istanze = 75, che è al di sotto della soglia di aumento del numero di istanze pari a 80, quindi viene ridimensionata correttamente a 2 istanze.

Considerazioni sulla scalabilità 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 scalabilità orizzontale, la scalabilità automatica viene eseguita se viene soddisfatta qualsiasi regola. Nella riduzione della scala in, la scalabilità automatica richiede che vengano soddisfatte tutte le regole.

Per illustrare, si supponga di avere le quattro regole di scalabilità automatica seguenti:

  • Se la CPU < 30%, aumentare il numero di istanze di 1
  • Se memoria < 50%, ridurre il numero di istanze di 1
  • Se la CPU > 75%, aumenta di 1 il numero di istanze
  • Se la memoria > 75%soddisfa le condizioni, eseguire un'operazione di "scale out" incrementando di 1 l'unità.

Si verifica quindi quanto segue:

  • Se la CPU è 76% e la memoria è 50%, scaliamo.
  • Se il CPU è 50% e la Memoria è 76%, si esegue uno scale-out.

D'altra parte, se la CPU è 25% e la memoria è 51% la scalabilità automatica non viene ridimensionata. Se la CPU è pari a 29% e la memoria è pari a 49% poiché entrambe le regole di scalabilità sono vere, si verificherebbe un aumento automatico del numero di istanze.

Selezionare sempre un numero di istanze predefinito sicuro

Il numero di istanze predefinito è importante perché la scalabilità automatica ridimensiona il servizio a tale conteggio quando le metriche non sono disponibili. Selezionare quindi un numero di istanze predefinito sicuro per i carichi di lavoro.

Configurare le notifiche di scalabilità automatica

La scalabilità automatica pubblica nel log attività se si verifica una delle condizioni seguenti:

  • La scalabilità automatica genera un'operazione di scalabilità
  • Il servizio di scalabilità automatica completa correttamente un'azione di scalabilità
  • Il servizio di scalabilità automatica non riesce a eseguire un'azione di scalabilità.
  • Le metriche non sono disponibili per il servizio di scalabilità automatica per prendere una decisione di scalabilità.
  • Le metriche sono nuovamente disponibili (ripristino) per prendere una decisione di scalabilità.

È anche possibile usare un avviso del log attività per monitorare l'integrità del motore di scalabilità automatica. Oltre a usare gli avvisi del log attività, è anche possibile configurare notifiche tramite posta elettronica o webhook per ricevere notifiche per le azioni di scalabilità riuscite tramite la scheda Notifiche nell'impostazione di scalabilità automatica.