This work focuses on the support of the development of multi-cloud enabled applications with Quality of Service (QoS) guarantees. It embraces the model driven engineering principles and aims at providing development teams with methodologies and tools to assess the expected QoS of their applications early in the design stages. To do so we adopt and enrich different component based and UML-like modeling technologies like the Palladio Component Model and MODACloudML extending them in order to determine an optimized deployment in multi-cloud environments by introducing a new cloud specific meta-model. The integration of the new meta-model into state of the art modeling tools like Palladio Bench or Modelio allows software architects to use well known modeling approaches and specify a cloud specific deployment for their applications. In order to ease the portability of both the model and the application the meta-model uses three abstraction levels. The Cloud enabled Computation Independent Model (CCIM) allows to describe the application without any reference to specific cloud technologies or providers; the Cloud Provider Independent Model (CPIM) adds the specificity of some cloud technologies introducing concepts like Infrastructure and Platform as a Service (IaaS/PaaS) but still abstracts away the specificity of each particular provider; the Cloud Provider Specific Model (CPSM) adds all the details related to a particular cloud provider and the services offered allowing to automatize the deployment of the application and generate performance models that can be analyzed to assess the expected QoS of the application. High level architectural models of the application are then transformed into a Layered Queuing Network performance model that is analyzed with state of the art solvers like LQNS or LINE in order to derive performance metrics. The result of the evaluation can be used bysoftware architects to refine their design choices. Furthermore, the approach automates the exploration of deployment configurations in order to minimize operational costs of the cloud infrastructure and guarantee application QoS, in terms of availability and response time. In the IaaS context, as an example, the deployment choices analyzed by the tool are the size of instances (e.g. Amazon EC2 m3.xlarge) used to host each application tier and the number of replicas for each hour of the day. The problem of finding the optimal deployment configuration has been analyzed from a mathematical point of view and has been shown to be NP-hard. For this reason a heuristic approach has been proposed to effectively explore the space of possible deployment configurations. The heuristic approach uses a relaxed formulation based on M/G/1 queuing models to derive a promising initial solution that is then refined by means of a two level hybrid heuristic and validated against the LQN performance model. The proposed methodology has been validated by two industrial case study in the context of the MODAClouds project. A scalability and robustness analysis has also been performed and shows that our heuristic approach allows reductions in the cost of the solution ranging from 39% to 78% with respect to current best practice policies implemented by cloud vendors. The scalability analysis shows that the approach is applicable also to complex scenarios, with the optimized solution of the most complex instance analyzed being found in 16 minutes for a single cloud deployment and in 40 minutes for a multicloud scenario.

Il presente lavoro di tesi affronta il problema dello sviluppo di applicazioni web ospitate su una piattaforma multi-cloud. Tali applicazioni devono fornire ai loro utenti garanzie sul livello di qualità (Quality of Service - QoS), definito in base al tempo di risposta e al livello di disponibilità dell'applicazione. L'approccio qui presentato segue le linee guida dettate dall' approccio Model Driven Engineering (MDE) e si propone di fornire al team di sviluppo software metodologie e strumenti atti a stimare la qualità di servizio di una applicazione fin dalle fasi iniziali del processo di sviluppo. A tal fine, abbiamo fatto uso di diverse tecnologie di modellazione basate su simili ad UML, come il Palladio Component Model o il linguaggio di modellazione MODACloudML. Tali strumenti sono stati estesi, dove necessario, per mezzo di un meta-modello al fine di modellare le caratteristiche dell'applicazione utili ad una analisi della qualità di servizio. Il meta-modello sviluppato nel corso di questa tesi può essere utilizzato per specificare quali risorse e servizi, offerti da un cloud provider, verranno utilizzati per ospitare l'applicazione. L'integrazione del meta-modello all'interno di strumenti di modellazione allo stato dell'arte, come Palladio Bench o Modelio, permetto a gli sviluppatori di usare approcci di modellazione a loro già noti senza la necessità di imparare un nuovo linguaggio o interagire con nuovi strumenti. Il meta-modello qui proposto utilizza tre livelli di astrazione al fine di aumentare la portabilità sia del modello stesso, sia dell'applicazione. Il Cloud enabled Computation Independent Model (CCIM) permette di descrivere l'applicazione senza fornire alcun riferimento specifico alle tecnologie o ai provider che la ospiteranno. Il Cloud Provider Independent Model (CPIM) aggiunge al CCIM informazioni inerenti alle tecnologie cloud utilizzate introducendo concetti quali Infrastructure e Platform as a Service (IaaS/PaaS). Questo livello di astrazione nasconde qualsiasi riferimento alle specificità del singolo cloud provider. In fine, il Cloud Provider Specific Model (CPSM) fornisce tutti i dettagli relativi a un particolare cloud provider e ai singoli servizi utilizzati dall'applicazione; questo livello di dettaglio permette di automatizzare il rilascio dell'applicazione e di generare modelli di prestazioni accurati. I modelli architetturali di alto livello dell'applicazione, specificati dal team di sviluppo, vengono trasformati in modelli di performance basati su Layered Queuing Network (LQN). Questi modelli sono quindi analizzati per mezzo di strumenti come LQNS o LINE al fine di stimare la qualità di servizio dell'applicazione. Il risultato della valutazione può essere utilizzato dal team di sviluppo per migliorare le scelte architetturali. L'approccio qui presentato automatizza inoltre l'esplorazione delle configurazioni di deploy al fine di minimizzare il costo generato dall'utilizzo dei servizi offerti dai cloud provider e, allo stesso tempo, garantire all'utente finale un determinato livello di qualità del servizio. Rilasciando l'applicazione su servizio di tipo infrastrutturale (IaaS) le scelte di deploy analizzate comprendono il numero e il tipo di istanze (ad esempio Amazon EC2 m3.xlarge) utilizzate da ogni tier applicativo. Tale analisi e ottimizzazione è ripetuta per ogni ora del giorno. Abbiamo analizzato dal punto di vista matematico il problema di trovare la configurazione di deployment ottima e abbiamo dimostrato che rientra nella classe di problemi NP-hard. Per questo motivo abbiamo deciso di sviluppare un approccio euristico, al fine di esplorare in maniera efficiente lo spazio delle possibili configurazioni di deployment. L'approccio euristico utilizza una formulazione del problema basata su modelli a reti di code di tipo M/G/1 al fine di trovare una soluzione iniziale promettente. Questa soluzione è quindi raffinata da un processo di ottimizzazione che si sviluppa su due livelli e validata mediante un modello di prestazioni basato su LQN. Al fine di validare l'utilità dell'approccio qui proposto presentiamo due casi di studio industriali sviluppati all'interno del progetto MODAClouds. Abbiamo inoltre eseguito una analisi di scalabilità e di robustezza che mostra come l'utilizzo di soluzioni generate mediante il nostro approccio possa portare a una riduzione del costo dell'infrastruttura cloud compres0 tra il 39\% e il 78\%, rispetto alle pratiche correntemente in uso. L'analisi di scalabilità mostra anche che l'approccio può essere applicato a scenari complessi. Il caso più complesso analizzato è stato risolto in 16 minuti, per un problema a singolo cloud, e in 40 minuti per una applicazione ospitata su più cloud provider.

A methodology and a tool for QoS-oriented design of multi-cloud applications

GIBILISCO, GIOVANNI PAOLO

Abstract

This work focuses on the support of the development of multi-cloud enabled applications with Quality of Service (QoS) guarantees. It embraces the model driven engineering principles and aims at providing development teams with methodologies and tools to assess the expected QoS of their applications early in the design stages. To do so we adopt and enrich different component based and UML-like modeling technologies like the Palladio Component Model and MODACloudML extending them in order to determine an optimized deployment in multi-cloud environments by introducing a new cloud specific meta-model. The integration of the new meta-model into state of the art modeling tools like Palladio Bench or Modelio allows software architects to use well known modeling approaches and specify a cloud specific deployment for their applications. In order to ease the portability of both the model and the application the meta-model uses three abstraction levels. The Cloud enabled Computation Independent Model (CCIM) allows to describe the application without any reference to specific cloud technologies or providers; the Cloud Provider Independent Model (CPIM) adds the specificity of some cloud technologies introducing concepts like Infrastructure and Platform as a Service (IaaS/PaaS) but still abstracts away the specificity of each particular provider; the Cloud Provider Specific Model (CPSM) adds all the details related to a particular cloud provider and the services offered allowing to automatize the deployment of the application and generate performance models that can be analyzed to assess the expected QoS of the application. High level architectural models of the application are then transformed into a Layered Queuing Network performance model that is analyzed with state of the art solvers like LQNS or LINE in order to derive performance metrics. The result of the evaluation can be used bysoftware architects to refine their design choices. Furthermore, the approach automates the exploration of deployment configurations in order to minimize operational costs of the cloud infrastructure and guarantee application QoS, in terms of availability and response time. In the IaaS context, as an example, the deployment choices analyzed by the tool are the size of instances (e.g. Amazon EC2 m3.xlarge) used to host each application tier and the number of replicas for each hour of the day. The problem of finding the optimal deployment configuration has been analyzed from a mathematical point of view and has been shown to be NP-hard. For this reason a heuristic approach has been proposed to effectively explore the space of possible deployment configurations. The heuristic approach uses a relaxed formulation based on M/G/1 queuing models to derive a promising initial solution that is then refined by means of a two level hybrid heuristic and validated against the LQN performance model. The proposed methodology has been validated by two industrial case study in the context of the MODAClouds project. A scalability and robustness analysis has also been performed and shows that our heuristic approach allows reductions in the cost of the solution ranging from 39% to 78% with respect to current best practice policies implemented by cloud vendors. The scalability analysis shows that the approach is applicable also to complex scenarios, with the optimized solution of the most complex instance analyzed being found in 16 minutes for a single cloud deployment and in 40 minutes for a multicloud scenario.
BONARINI, ANDREA
GHEZZI, CARLO
5-feb-2016
Il presente lavoro di tesi affronta il problema dello sviluppo di applicazioni web ospitate su una piattaforma multi-cloud. Tali applicazioni devono fornire ai loro utenti garanzie sul livello di qualità (Quality of Service - QoS), definito in base al tempo di risposta e al livello di disponibilità dell'applicazione. L'approccio qui presentato segue le linee guida dettate dall' approccio Model Driven Engineering (MDE) e si propone di fornire al team di sviluppo software metodologie e strumenti atti a stimare la qualità di servizio di una applicazione fin dalle fasi iniziali del processo di sviluppo. A tal fine, abbiamo fatto uso di diverse tecnologie di modellazione basate su simili ad UML, come il Palladio Component Model o il linguaggio di modellazione MODACloudML. Tali strumenti sono stati estesi, dove necessario, per mezzo di un meta-modello al fine di modellare le caratteristiche dell'applicazione utili ad una analisi della qualità di servizio. Il meta-modello sviluppato nel corso di questa tesi può essere utilizzato per specificare quali risorse e servizi, offerti da un cloud provider, verranno utilizzati per ospitare l'applicazione. L'integrazione del meta-modello all'interno di strumenti di modellazione allo stato dell'arte, come Palladio Bench o Modelio, permetto a gli sviluppatori di usare approcci di modellazione a loro già noti senza la necessità di imparare un nuovo linguaggio o interagire con nuovi strumenti. Il meta-modello qui proposto utilizza tre livelli di astrazione al fine di aumentare la portabilità sia del modello stesso, sia dell'applicazione. Il Cloud enabled Computation Independent Model (CCIM) permette di descrivere l'applicazione senza fornire alcun riferimento specifico alle tecnologie o ai provider che la ospiteranno. Il Cloud Provider Independent Model (CPIM) aggiunge al CCIM informazioni inerenti alle tecnologie cloud utilizzate introducendo concetti quali Infrastructure e Platform as a Service (IaaS/PaaS). Questo livello di astrazione nasconde qualsiasi riferimento alle specificità del singolo cloud provider. In fine, il Cloud Provider Specific Model (CPSM) fornisce tutti i dettagli relativi a un particolare cloud provider e ai singoli servizi utilizzati dall'applicazione; questo livello di dettaglio permette di automatizzare il rilascio dell'applicazione e di generare modelli di prestazioni accurati. I modelli architetturali di alto livello dell'applicazione, specificati dal team di sviluppo, vengono trasformati in modelli di performance basati su Layered Queuing Network (LQN). Questi modelli sono quindi analizzati per mezzo di strumenti come LQNS o LINE al fine di stimare la qualità di servizio dell'applicazione. Il risultato della valutazione può essere utilizzato dal team di sviluppo per migliorare le scelte architetturali. L'approccio qui presentato automatizza inoltre l'esplorazione delle configurazioni di deploy al fine di minimizzare il costo generato dall'utilizzo dei servizi offerti dai cloud provider e, allo stesso tempo, garantire all'utente finale un determinato livello di qualità del servizio. Rilasciando l'applicazione su servizio di tipo infrastrutturale (IaaS) le scelte di deploy analizzate comprendono il numero e il tipo di istanze (ad esempio Amazon EC2 m3.xlarge) utilizzate da ogni tier applicativo. Tale analisi e ottimizzazione è ripetuta per ogni ora del giorno. Abbiamo analizzato dal punto di vista matematico il problema di trovare la configurazione di deployment ottima e abbiamo dimostrato che rientra nella classe di problemi NP-hard. Per questo motivo abbiamo deciso di sviluppare un approccio euristico, al fine di esplorare in maniera efficiente lo spazio delle possibili configurazioni di deployment. L'approccio euristico utilizza una formulazione del problema basata su modelli a reti di code di tipo M/G/1 al fine di trovare una soluzione iniziale promettente. Questa soluzione è quindi raffinata da un processo di ottimizzazione che si sviluppa su due livelli e validata mediante un modello di prestazioni basato su LQN. Al fine di validare l'utilità dell'approccio qui proposto presentiamo due casi di studio industriali sviluppati all'interno del progetto MODAClouds. Abbiamo inoltre eseguito una analisi di scalabilità e di robustezza che mostra come l'utilizzo di soluzioni generate mediante il nostro approccio possa portare a una riduzione del costo dell'infrastruttura cloud compres0 tra il 39\% e il 78\%, rispetto alle pratiche correntemente in uso. L'analisi di scalabilità mostra anche che l'approccio può essere applicato a scenari complessi. Il caso più complesso analizzato è stato risolto in 16 minuti, per un problema a singolo cloud, e in 40 minuti per una applicazione ospitata su più cloud provider.
Tesi di dottorato
File allegati
File Dimensione Formato  
thesis.pdf

Open Access dal 14/01/2019

Descrizione: Testo della Tesi
Dimensione 6.48 MB
Formato Adobe PDF
6.48 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/117562