Abdollahi Vayghan, Leila (2019) Kubernetes as an Availability Manager for Microservice Based Applications. Masters thesis, Concordia University.
Preview |
Text (application/pdf)
3MBLeila Thesis - Complete Draft - final.pdf - Accepted Version Available under License Spectrum Terms of Access. |
Abstract
The architectural style of microservices has been gaining popularity in recent years. In this architectural style, small and loosely coupled modules are deployed and scaled inde-pendently to compose cloud-native applications. Microservices are maintained and tested easily and are faster at startup time. However, to fully leverage from the benefits of the archi-tectural style of microservices, it is necessary to use technologies such as containerization. Therefore, in practice, microservices are containerized in order to remain isolated and light-weight and are orchestrated by orchestration platforms such as Kubernetes. Kubernetes is an open-source platform that defines a set of building blocks which collectively provide mecha-nisms for orchestrating containerized microservices. The move towards the architectural style of microservices is well underway and carrier-grade service providers are migrating their lega-cy applications to a microservice based architecture running on Kubernetes. However, service availability remains a concern. Service availability is measured as the percentage of time the service is provisioned. High Availability (HA) is a non-functional requirement for service availability of at least 99.999%. Although the characteristics of microservice based architec-tures naturally contribute to improving the availability, Kubernetes as an orchestration plat-form for microservices needs to be evaluated in terms of availability. Therefore, in this thesis, we identify possible architectures for deploying stateless and stateful microservice based ap-plications with Kubernetes and evaluate Kubernetes from the perspective of availability it provides for its managed applications. Our experiment’s results show that the healing capabili-ties of Kubernetes are not sufficient for providing high availability, especially for stateful ap-plications. Therefore, we propose a State Controller which integrates with Kubernetes and allows for state replication and automatic service redirection to the healthy microservice instance. We conduct experiments to evaluate our solution and compare the different archi-tectures from an availability perspective and scaling overhead. The results of our investiga-tions show that our solution improves the recovery time of stateful microservice based appli-cations by 55% and even up to 99% in certain cases.
Divisions: | Concordia University > Gina Cody School of Engineering and Computer Science |
---|---|
Item Type: | Thesis (Masters) |
Authors: | Abdollahi Vayghan, Leila |
Institution: | Concordia University |
Degree Name: | M. Comp. Sc. |
Program: | Computer Science |
Date: | 15 August 2019 |
Thesis Supervisor(s): | Khendek, Ferhat and Toeroe, Maria |
ID Code: | 985906 |
Deposited By: | leila abdollahi vayghan |
Deposited On: | 06 Feb 2020 02:42 |
Last Modified: | 06 Feb 2020 02:42 |
Repository Staff Only: item control page