10

Nov

Windows Azure Performance – Pattern Asincroni

Una peculiarità del cloud di cui spesso si parla è la possibilità di rendere la nostra applicazione globally-consumed e scalabile indefinitamente. Questo è sempre vero a livelli minimi garantiti, ma si può aiutare sviluppando “bene” le nostre applicazioni, utilizzando dei pattern ottimizzati per l’esecuzione web farm in contesti distribuiti a bassa latenza.

Cosa si intende per bassa latenza?

  • Nonostante l’utilizzo da parte di utenti geodistribuiti, i tempi di risposta devono sempre essere omogenei
  • Quando aumenta il carico l’aumento delle risorse dovrebbe essere quanto più lineare possibile
  • Sviluppare know-how relativo all’occupazione fisica della banda per ottimizzare i messaggi

I pattern asincroni vengono comunemente utilizzati in tutti gli ambienti on-premises ogni volta che si renda necessaria una interazione con l’utente. Se infatti un sistema non gestisse parallelamente le operazioni, avremmo tipicamente lo scenario descritto nelle immagini sotto:

image

image

image

Invece il comportamento in uno scenario asincrono, dovrebbe essere di questo tipo:

image

dove in qualunque momento le operazioni long-running vengano messe in una coda di esecuzione differita, mentre nel frattempo venga eventualmente notificata l’attesa al client, liberandolo però dalla situazione di stallo.

Il meccanismo di Windows Azure per gestire questo pattern sono le Azure Storage Queues, tecnologia simile ad un qualsiasi Message Queue in cui gli attori sono il/i sender, i receviers/subscribers e la coda coinvolta nell’operazione di scambio asincrono. Le code in Azure sono accessibili tramite REST e chiaramente tramite le API .NET incluse nell’SDK.

by Roberto Freato on 11/10/2011
Post archive