Allocazione ottima delle risorse per applicazioni Web in sistemi multi-tier in sistemi di Autonomic Computing

Proponente: Ing. D. Ardagna.

Per ridurre i costi dell'infrastruttura informatica le aziende molto spesso effettuano l'outsourcing dei loro sistemi IT a terze parti. I moderni Service center devono così offrire i loro servizi a molti clienti che condividono l'infrastruttura IT. Ciò richiede un uso efficiente delle risorse da parte dei Service Provider. L'obiettivo del progetto è quello di realizzare un sistema di allocazione delle risorse (RA) per l'infrastruttura informatica dei moderni Service center nell'ambito di sistemi di Autonomic Computing. La principale problematica in quest'ambito è legata all'alta variabilità del carico delle applicazioni, per cui non è possibile effettuare un'allocazione delle risorse in modo statico ma le risorse devono essere ri-assegnate tra le varie applicazioni periodicamente (ad es. ogni 10-30 minuti) sulla base di predizioni di carico di breve periodo. L'obiettivo dell'RA è quello di massimizzare i profitti derivanti dai contratti di Service Level Agreement (SLA). Il modello di costo considera i revenue e le penalty che vengono ottenuti o devono essere sostenute a seconda che i vincoli di qualità del servizio vengano soddisfatti o violati. L'RA stabilisce il load-balancing delle richieste sui vari server e la frazione della capacità dei server che dovrà essere dedicata ad ogni applicazione. L'RA può anche spegnere alcuni server in condizioni di basso carico, oppure effettuare lo scaling delle fequenze di funzionamento delle CPU.

Il progetto prevede lo sviluppo di un programma Java che, ricevendo in ingresso alcuni parametri relativi alle caratteristiche delle applicazioni e dei server fisici da gestire, determini configurazioni ottima del sistema (quanti server allocare ad un Tier fisico, come effettuare il placing delle applicazioni sui server, come effettuare il load balancing delle richieste in ingresso, ecc.).

In particolare si dovrà realizzare un algoritmo di ottimizzazione euristico che si integri con un modulo software per l'analisi di modelli a reti di code. L'euristica implementerà un algoritmo iterativo (una ricerca locale) che andrà a modificare, secondo opportuni criteri, la configurazione corrente del sistema e ne valuterà le prestazioni in modo da spostarsi ad ogni passo su una soluzione migliorante fino a trovare un ottimo locale.

teaching/projects/allocazione_ottima_delle_risorse_per_applicazioni_web_in_sistemi_multi-tier_in_sistemi_di_autonomic_computing.txt · Last modified: 2007/10/16 19:09 by agosta
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki