COST09-BP02 Implementazione di un buffer o del throttling per gestire la domanda
Buffering e throttling modificano la domanda sul carico di lavoro, attenuando eventuali picchi. Implementa il throttling quando i client eseguono nuovi tentativi. Implementa il buffering per archiviare la richiesta e rinviare l'elaborazione a un secondo momento. Verifica che le esecuzioni di throttling e buffering siano progettate in modo che i client ricevano una risposta nel tempo richiesto.
Livello di rischio associato alla mancata adozione di questa best practice: medio
Guida all'implementazione
L'implementazione di un buffer o di una limitazione della larghezza di banda della rete è fondamentale nel cloud computing per gestire la domanda e ridurre la capacità allocata richiesta per il carico di lavoro. Per ottenere prestazioni ottimali, è essenziale valutare la domanda totale, compresi i picchi, la velocità con cui variano le richieste e il tempo di risposta necessario. Quando i client hanno la possibilità di inviare nuovamente le proprie richieste, conviene applicare la limitazione della larghezza di banda della rete. Al contrario, per i client che non dispongono della funzionalità di esecuzione di nuovi tentativi, l'approccio ideale è implementare una soluzione buffer. Tali buffer semplificano l'afflusso di richieste e ottimizzano l'interazione delle applicazioni con diverse velocità operative.
![Demand curve with two distinct peaks that require high provisioned capacity](images/provisioned-capacity-1.png)
Curva della domanda con due picchi distinti che richiedono una capacità elevata
Supponiamo che un carico di lavoro sia caratterizzato dalla curva della domanda illustrata nella figura precedente. Questo carico di lavoro presenta due picchi e per gestire tali picchi viene eseguito il provisioning della capacità di risorse mostrata dalla linea arancione. Le risorse e l'energia utilizzate per questo carico di lavoro non sono indicate nell'area sotto la curva della domanda, ma nell'area sotto la linea della capacità allocata, poiché per gestire questi due picchi è necessario eseguire il provisioning di tale capacità. Diminuire la curva della domanda del carico di lavoro può aiutarti a ridurre la capacità fornita tramite provisioning di un carico di lavoro, oltre al suo impatto sull'ambiente. Per attenuare il picco, valuta la possibilità di implementare una soluzione basata sulla limitazione della larghezza di banda della rete o sul buffering.
Per comprendere meglio queste due soluzioni, proviamo ad analizzarle.
Limitazione della larghezza di banda della rete: se l'origine della richiesta dispone di funzionalità di ripetizione dei tentativi, è possibile implementare la limitazione della larghezza di banda della rete. La limitazione della larghezza di banda della rete indica all'origine che, se non è in grado di soddisfare la richiesta all'ora corrente, dovrebbe riprovare più tardi. L'origine attende un periodo di tempo, quindi riprova a eseguire la richiesta. L'implementazione del throttling ha il vantaggio di limitare la quantità massima di risorse e i costi del carico di lavoro. In AWS, puoi usare Amazon API Gateway
Basato sul buffering: un approccio basato sul buffering utilizza produttori (componenti che inviano messaggi alla coda), consumatori (componenti che ricevono messaggi dalla coda) e una coda (che contiene i messaggi) per archiviare i messaggi. I messaggi vengono letti ed elaborati dai consumatori e ciò consente ai messaggi di essere eseguiti alla velocità che soddisfa i requisiti aziendali del consumatore stesso. Utilizzando una metodologia basata sul buffering, i messaggi dei produttori sono ospitati in code o flussi, dove i produttori possono accedervi a un ritmo in linea con le rispettive esigenze operative.
In AWS, puoi scegliere tra più servizi per implementare un approccio basato sul buffering. Amazon Simple Queue Service(Amazon SQS)
Il buffering e la limitazione della larghezza di banda della rete possono attenuare eventuali picchi modificando la domanda sul carico di lavoro. Usa la limitazione della larghezza di banda della rete quando i client riprovano le azioni e usa il buffering per bloccare la richiesta ed elaborarla in un secondo momento. Durante l'utilizzo dell'approccio basato sul buffering, assicurati di progettare il carico di lavoro per soddisfare la richiesta nel tempo richiesto e verifica di essere in grado di gestire le richieste duplicate. Analizza la domanda complessiva, la velocità di modifica e il tempo di risposta richiesto per determinare le dimensioni del throttling o del buffer richiesto.
Passaggi dell'implementazione
-
Analisi dei requisiti del client: analizza le richieste del client per determinare se sono in grado di eseguire nuovi tentativi. Per i client che non possono eseguire nuovi tentativi, è necessario implementare i buffer. Analizza la domanda complessiva, la velocità di modifica e il tempo di risposta richiesto per determinare le dimensioni del throttling o del buffer richiesto.
-
Implementazione di un buffer o della limitazione della larghezza di banda della rete: implementa un buffer o la limitazione della larghezza di banda della rete nel carico di lavoro. Una coda come Amazon Simple Queue Service (Amazon SQS) può offrire un buffer ai componenti del carico di lavoro. Amazon API Gateway può fornire una funzionalità di throttling ai componenti del carico di lavoro.
Risorse
Best practice correlate:
Documenti correlati:
Video correlati:
Esempi correlati: