-
Resolving inconsistencies of runtime configuration changes through change propagation and adjustments
Authors:
Azadeh Jahanbanifar,
Ferhat Khendek,
Maria Toeroe
Abstract:
A system configuration may be modified at runtime to adapt the system to changes in its environment or for fine-tuning. For instance, a system administrator may change a few entities/attributes in the configuration to improve error recovery and system availability. However, these changes focusing on fine-tuning availability may violate some global system constraints captured in the configuration a…
▽ More
A system configuration may be modified at runtime to adapt the system to changes in its environment or for fine-tuning. For instance, a system administrator may change a few entities/attributes in the configuration to improve error recovery and system availability. However, these changes focusing on fine-tuning availability may violate some global system constraints captured in the configuration and therefore break configuration consistency, system properties and operations. This is generally due to the partialness of the changes performed by the administrator who is not aware of all the entities/attributes being in relations with the modified entities/attributes. In this paper, we propose an approach for completing such partial sets of changes at runtime to resolve inconsistencies arising from those partial changes. This adjustment approach consists of the characterization of related entities/attributes and their modification to re-establish the configuration consistency. We achieve this by propagating the changes in the configuration according to the system constraints following the possible impacts of the configuration entities on each other. We aim at minimizing the complementary modifications to control the side-effects of the change propagation as we target the domain of highly available systems.
△ Less
Submitted 29 August, 2022;
originally announced August 2022.
-
An Approach for the Automation of IaaS Cloud Upgrade
Authors:
Mina Nabi,
Ferhat Khendek,
Maria Toeroe
Abstract:
An Infrastructure as a Service (IaaS) cloud provider is committed to each tenant by a service level agreement (SLA) which indicates the terms of commitment, e.g. the level of availability of the IaaS cloud service.The different resources providing this IaaS cloud service may need to be upgraded several times throughout their life-cycle; and these upgrades may affect the service delivered by the Ia…
▽ More
An Infrastructure as a Service (IaaS) cloud provider is committed to each tenant by a service level agreement (SLA) which indicates the terms of commitment, e.g. the level of availability of the IaaS cloud service.The different resources providing this IaaS cloud service may need to be upgraded several times throughout their life-cycle; and these upgrades may affect the service delivered by the IaaS layer. This may violate the SLAs towards the tenants and result in penalty as they impact the tenant services relying on the IaaS.Therefore, it is important to handle upgrades properly with respect to the SLAs.The upgrade of IaaS cloud systems inherits all the challenges of clustered systems and faces other, cloud specific challenges, such as size and dynamicity due to elasticity.In this paper, we propose a novel approach to automatically upgrade an IaaS cloud system under SLA constraints such as availability and elasticity.In this approach, the upgrade methods and actions appropriate for each upgrade request are identified, scheduled, and applied automatically in an iterative manner based on the vendors descriptions of the infrastructure components, the tenant SLAs, and the status of the system. The proposed approach allows new upgrade requests during ongoing upgrades, which makes it suitable for continuous delivery.In addition, it also handles failures of upgrade actions through localized retry and undo operations automatically.
△ Less
Submitted 23 March, 2021;
originally announced March 2021.
-
A Kubernetes Controller for Managing the Availability of Elastic Microservice Based Stateful Applications
Authors:
Leila Abdollahi Vayghan,
Mohamed Aymen Saied,
Maria Toeroe,
Ferhat Khendek
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 independently to compose cloud-native applications. Carrier-grade service providers are migrating their legacy applications to a microservice based architecture running on Kubernetes which is an open source platform for orchest…
▽ More
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 independently to compose cloud-native applications. Carrier-grade service providers are migrating their legacy applications to a microservice based architecture running on Kubernetes which is an open source platform for orchestrating containerized microservice based applications. However, in this migration, service availability remains a concern. Service availability is measured as the percentage of time the service is provisioned. High Availability (HA) is achieved when the service is available at least 99.999% of the time. In this paper, we identify possible architectures for deploying stateful microservice based applications with Kubernetes and evaluate Kubernetes from the perspective of availability it provides for its managed applications. The results of our experiments show that the repair actions of Kubernetes cannot satisfy HA requirements, and in some cases cannot guarantee service recovery. Therefore, we propose an HA State Controller which integrates with Kubernetes and allows for application state replication and automatic service redirection to the healthy microservice instances by enabling service recovery in addition to the repair actions of Kubernetes. Based on experiments we evaluate our solution and compare the different architectures from the perspective of availability and scaling overhead. The results of our investigations show that our solution can improve the recovery time of stateful microservice based applications by 50%.
△ Less
Submitted 27 December, 2020;
originally announced December 2020.
-
Model-Driven Process Enactment for NFV Systems with MAPLE
Authors:
Sadaf Mustafiz,
Omar Hassane,
Guillaume Dupont,
Ferhat Khendek,
Maria Toeroe
Abstract:
The Network Functions Virtualization (NFV) advent is making way for the rapid deployment of network services (NS) for telecoms. Automation of network service management is one of the main challenges currently faced by the NFV community. Explicitly defining a process for the design, deployment, and management of network services and automating it is therefore highly desirable and beneficial for NFV…
▽ More
The Network Functions Virtualization (NFV) advent is making way for the rapid deployment of network services (NS) for telecoms. Automation of network service management is one of the main challenges currently faced by the NFV community. Explicitly defining a process for the design, deployment, and management of network services and automating it is therefore highly desirable and beneficial for NFV systems. The use of model-driven orchestration means has been advocated in this context. As part of this effort to support automated process execution, we propose a process enactment approach with NFV systems as the target application domain. Our process enactment approach is megamodel-based. An integrated process modelling and enactment environment, MAPLE, has been built into Papyrus for this purpose. Process modelling is carried out with UML activity diagrams. The enactment environment transforms the process model to a model transformation chain, and then orchestrates it with the use of megamodels. In this paper we present our approach and environment MAPLE, its recent extension with new features as well as application to an enriched case study consisting of NS design and onboarding process.
△ Less
Submitted 25 October, 2019;
originally announced October 2019.
-
Kubernetes as an Availability Manager for Microservice Applications
Authors:
Leila Abdollahi Vayghan,
Mohamed Aymen Saied,
Maria Toeroe,
Ferhat Khendek
Abstract:
The move towards the microservice based architecture is well underway. In this architectural style, small and loosely coupled modules are developed, deployed, and scaled independently to compose cloud-native applications. However, for carrier-grade service providers to migrate to the microservices architectural style, availability remains a concern. Kubernetes is an open source platform that defin…
▽ More
The move towards the microservice based architecture is well underway. In this architectural style, small and loosely coupled modules are developed, deployed, and scaled independently to compose cloud-native applications. However, for carrier-grade service providers to migrate to the microservices architectural style, availability remains a concern. Kubernetes is an open source platform that defines a set of building blocks which collectively provide mechanisms for deploying, maintaining, scaling, and healing containerized microservices. Thus, Kubernetes hides the complexity of microservice orchestration while managing their availability. In a preliminary work we evaluated Kubernetes, using its default configuration, from the availability perspective in a private cloud settings. In this paper, we investigate more architectures and conduct more experiments to evaluate the availability that Kubernetes delivers for its managed microservices. We present different architectures for public and private clouds. We evaluate the availability achievable through the healing capability of Kubernetes. We investigate the impact of adding redundancy on the availability of microservice based applications. We conduct experiments under the default configuration of Kubernetes as well as under its most responsive one. We also perform a comparative evaluation with the Availability Management Framework (AMF), which is a proven solution as a middleware service for managing high-availability. The results of our investigations show that in certain cases, the service outage for applications managed with Kubernetes is significantly high.
△ Less
Submitted 15 January, 2019;
originally announced January 2019.