Nowadays Modern Web applications are often deployed and executed on a Cloud infrastructure which provides a convenient on-demand approach for renting resources and easy-to-use horizontal scaling capabilities. The workload of Web applications is continuously changing over time and unexpected peaks of requests can happen, making the system unable to respond. For this reason the autonomic adaptation is an emerging solution to automatically adapt the resources allocated to the application according to the incoming traffic, cpu-utilization, and other metrics. Our ongoing autonomic initiative is based on the MAPE architecture (Monitor-Analyze-Plan-Execute). This thesis focuses on the Execute component. While the state of the art solutions focus on adjusting the number of Virtual Machines allocated to the application, the containerization, a novel kind of virtualization that takes place at the operating system level, is emerging and is becoming popular. Containers are linux processes that can run sandboxed on a shared host operating system. This means that each container does not contain an entire operating system making this technology more lightweight and faster to boot comparing to Virtual Machines. The contribution of this thesis is the implementation of the Execute component that exploits the usage of both Virtual Machines and containers enabling a faster and finer-grained adaptation and multi-layer adaptation. We consider not only the adaptation at the infrastructure layer, but we also adapt the middleware software that enables the execution of application specific code as application servers, DBMS and so on. We have implemented two approaches for the "Execute" component: the monolithic and the hierarchical one. The former consists of a centralized architecture where only monitoring sensors are distributed among the nodes, the latter consists in completely distributed architecture where all the MAPE components are replicated at each level of the hierarchy (container, VM, cluster of VMs, etc.). \ifx Modern Web applications are now often built on the Cloud infrastructure which provides the flexibility and the scalability for applications. Cloud solutions can be considered as environmentally friendly, as they can reduce the usage of the infrastructure resources, hence the electricity consumption and costs. The workload on the modern Web applications is continuously changing and we can exploit it to adapt applications by means of the resource allocation (Virtual Machines). The implementation of our adaptation solution is based on the MAPE approach (Monitor-Analyze-Plan-Execute). While the Monitor-Analyze-Plan parts are out of the focus of this thesis, the work focuses on the Execute part. The contributions of this thesis are to use the coarse-grained and fine-grained adaptations (Virtual Machines and containers) and also the multilayer adaptation. We consider not only the infrastructure, but also the middle-ware adaptations: application servers, DBMS and so on. We have implemented two approaches for the "Execute" component: the monolithic and the hierarchical one. The scope of this thesis is the implementation details of both these approaches.

Fine grained adaptation of Cloud applications with containers

STEBLIUK, DMITRII
2015/2016

Abstract

Nowadays Modern Web applications are often deployed and executed on a Cloud infrastructure which provides a convenient on-demand approach for renting resources and easy-to-use horizontal scaling capabilities. The workload of Web applications is continuously changing over time and unexpected peaks of requests can happen, making the system unable to respond. For this reason the autonomic adaptation is an emerging solution to automatically adapt the resources allocated to the application according to the incoming traffic, cpu-utilization, and other metrics. Our ongoing autonomic initiative is based on the MAPE architecture (Monitor-Analyze-Plan-Execute). This thesis focuses on the Execute component. While the state of the art solutions focus on adjusting the number of Virtual Machines allocated to the application, the containerization, a novel kind of virtualization that takes place at the operating system level, is emerging and is becoming popular. Containers are linux processes that can run sandboxed on a shared host operating system. This means that each container does not contain an entire operating system making this technology more lightweight and faster to boot comparing to Virtual Machines. The contribution of this thesis is the implementation of the Execute component that exploits the usage of both Virtual Machines and containers enabling a faster and finer-grained adaptation and multi-layer adaptation. We consider not only the adaptation at the infrastructure layer, but we also adapt the middleware software that enables the execution of application specific code as application servers, DBMS and so on. We have implemented two approaches for the "Execute" component: the monolithic and the hierarchical one. The former consists of a centralized architecture where only monitoring sensors are distributed among the nodes, the latter consists in completely distributed architecture where all the MAPE components are replicated at each level of the hierarchy (container, VM, cluster of VMs, etc.). \ifx Modern Web applications are now often built on the Cloud infrastructure which provides the flexibility and the scalability for applications. Cloud solutions can be considered as environmentally friendly, as they can reduce the usage of the infrastructure resources, hence the electricity consumption and costs. The workload on the modern Web applications is continuously changing and we can exploit it to adapt applications by means of the resource allocation (Virtual Machines). The implementation of our adaptation solution is based on the MAPE approach (Monitor-Analyze-Plan-Execute). While the Monitor-Analyze-Plan parts are out of the focus of this thesis, the work focuses on the Execute part. The contributions of this thesis are to use the coarse-grained and fine-grained adaptations (Virtual Machines and containers) and also the multilayer adaptation. We consider not only the infrastructure, but also the middle-ware adaptations: application servers, DBMS and so on. We have implemented two approaches for the "Execute" component: the monolithic and the hierarchical one. The scope of this thesis is the implementation details of both these approaches.
QUATTROCCHI, GIOVANNI
ING - Scuola di Ingegneria Industriale e dell'Informazione
27-apr-2016
2015/2016
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
DmitriiStebliukThesis.pdf

accessibile in internet per tutti

Descrizione: Thesis Dmitrii Stebliuk
Dimensione 851.98 kB
Formato Adobe PDF
851.98 kB 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/121470