Model-Driven Engineering and Container Orchestration for Self-Adaptive Cloud-Native Applications

Loading...
Thumbnail Image

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Modern software systems function in intricate, uncertain, and highly dynamic environments, characterized by evolving user requirements and operational conditions. Managing such systems is a significant challenge. Developing self-managing autonomic systems serves to reduce development and maintenance efforts. Model-Driven Engineering (MDE) is a software development methodology that promotes the use of models as the primary artifacts and promises higher-quality software at a lower cost through abstraction, automation, and analyses. Cloud computing often relies on technology that allows the management or orchestration of containers. Containers are self-contained units of code that can be efficiently executed in various computing environments. Container orchestration tools assist in deploying, scaling, and managing containers, permitting alterations to the execution platform (environment) at runtime. Orchestration tools such as Kubernetes have become indispensable for large-scale, industrial distributed applications. Container orchestration and MDE both offer concepts, techniques, and tools that facilitate the realization of self-adaptation capabilities. Yet, their joint use for the design, implementation, and maintenance of adaptive cloud applications appears to be underexplored. In this thesis, we present an approach to facilitate the design and implementation of self-adaptive, containerized cloud-native applications through MDE, Component and Connector (C&C) architectures, the actor model, the Monitor-Analyse-Plan-Execute with Knowledge (MAPE-K) reference architecture, and the effective use of model- and platform-level adaptation capabilities. We present an approach and toolchain for automatically generating and deploying a fully containerized distributed application from a C&C model. It leverages both model- and platform-level dynamic adaptation capabilities to enable the application to respond to changes in requirements through runtime modifications to the model or the cloud-native platform.

Description

Keywords

Model-Driven Engineering, Container Orchestration, Self-Adaptation, Cloud Computing, Software Engineering, Autonomic Computing, Distributed Systems

Citation

Endorsement

Review

Supplemented By

Referenced By