Impostare le baseline per i test di carico

Completato

Dopo aver definito i test di carico e i valori di soglia, è possibile usarli per compilare le baseline.

Una baseline è un set di criteri per le metriche usate per valutare se un test ha avuto esito negativo o riuscito. Ad esempio, i criteri potrebbero essere:

  • Richieste medie al secondo
  • Percentuale di errore
  • Tempo di risposta massimo

Per configurare la baseline per i test di carico, è necessario:

  1. Definire le baseline e i criteri di test per i singoli flussi utente e la soluzione complessiva.

  2. Regolare le soglie per le esecuzioni regolari per verificare che l'applicazione continui a fornire le prestazioni previste e non generi errori.

  3. Usare una baseline separata per il chaos testing che tolleri picchi di errore previsti e prestazioni temporaneamente ridotte.

Questa attività è continua e deve essere svolta regolarmente. Ad esempio, è necessario rivedere le baseline dopo l'introduzione di nuove funzionalità o la modifica degli SKU del servizio.

Usare Test di carico di Azure per valutare le soglie

Durante la fase di sviluppo, spesso non si conoscono chiaramente le prestazioni dei componenti e i requisiti delle risorse. I test di carico consentono di identificare le prestazioni previste della soluzione complessiva e dei suoi componenti, incluso il comportamento di scale-out. Possono anche consentire di identificare le soglie da prevedere per la compilazione della baseline.

È consigliabile porsi le seguenti domande, rivalutandole regolarmente:

  • Quanto tempo richiede un’operazione singola, un flusso utente o una chiamata API di sistema?
  • Quante richieste, operazioni e utenti simultanei può servire un componente al secondo?
  • Quanti risorse vengono usate?
  • In che modo 10, 50 e 100 utenti simultanei influiscono sull'infrastruttura sottostante e sul servizio di back-end?
  • Quando è previsto la scale in e scale out dei componenti?

Le risposte porteranno ai test e alle soglie. Le richieste al secondo, il tempo di risposta e la percentuale di errore sono tutti esempi applicabili per i valori di soglia.

Dopo aver annotato i dettagli, usare i valori per analizzare e valutare le prestazioni della soluzione complessiva e dei suoi componenti in modo coerente. Usare la baseline per identificare l'impatto delle modifiche e delle derive rispetto alle prestazioni previste.

Quando si eseguono i test, potrebbero essere presenti requisiti diversi per casi d'uso speciali, ad esempio un componente difettoso o un picco di carico. In questi casi, si possono prevedere e accettare tassi di errore più elevati o richieste inferiori al secondo. È possibile disporre di una baseline separata con soglie modificate per adattarsi a queste situazioni. Ad esempio:

  • Scenari di carico elevato in cui è prevista e richiesta un'operazione di scale-out. Potrebbe verificarsi una temporanea riduzione delle prestazioni fino al completamento dell'operazione.
  • Esperimenti Chaos, come parte di una pipeline di convalida continua. È possibile prevedere un tasso di errore superiore fino a quando le misure di resilienza non iniziano a prevenire automaticamente malfunzionamenti dell'applicazione o a eseguire il failover in un'altra area.

Usare Test di carico di Azure per valutare le prestazioni del sistema rispetto alle soglie definite. Il servizio ha una funzionalità di criteri di test predefinita. Ovvero, è possibile specificare i criteri che un test di carico deve superare.

È possibile usare i criteri di test per implementare diverse baseline. Ad esempio:

Table that shows sample test criteria.

È possibile specificare questi criteri di test in JSON e usare l'API per aggiungerli al test di carico. Ecco un esempio:

[
    {
        "passFailMetrics": {
            "<guid>": {
                "clientmetric": "requests_per_sec",
                "aggregate": "avg",
                "condition": "<",
                "value": 1200.0,
                "actualValue": 0.0,
                "result": null,
                "action": "continue"
            },
            "<guid>": {
                "clientmetric": "response_time_ms",
                "aggregate": "avg",
                "condition": ">",
                "value": 75.0,
                "actualValue": 0.0,
                "action": "continue"
              },
              "<guid>": {
                "clientmetric": "error",
                "aggregate": "percentage",
                "condition": ">",
                "value": 0.0,
                "actualValue": 0.0,
                "action": "continue"
              }
        }
    }
]

Un altro aspetto importante della convalida continua è l'inserimento di test che simulano problemi reali. Nell'unità successiva si apprenderà ad aggiungere gli esperimenti caos al processo di convalida.

Verifica delle conoscenze

1.

Quante baseline sono necessarie?

2.

La linea baseline definisce le prestazioni che la distribuzione può fornire?

3.

Quando è necessario valutare e aggiornare le baseline?