231 research outputs found

    Developing Self-Adaptive Microservice Systems: Challenges and Directions

    Full text link
    A self-adaptive system can dynamically monitor and adapt its behavior to preserve or enhance its quality attributes under uncertain operating conditions. This article identifies key challenges for the development of microservice applications as self-adaptive systems, using a cloud-based intelligent video surveillance application as a motivating example. It also suggests potential new directions for addressing most of the identified challenges by leveraging existing microservice practices and technologies.Comment: 8 pages, 1 figur

    Reinforcement learning multi-agent system for faults diagnosis of mircoservices in industrial settings

    Get PDF
    This paper develops a new framework called MASAD (Multi-Agents System for Anomaly Detection), a hybrid combination of reinforcement learning, and a multi-agents system to identify abnormal behaviors of microservices in industrial environment settings. A multi-agent system is implemented using reinforcement learning, where each agent learns from the given microservice. Intelligent communication among the different agents is then established to enhance the learning of each agent by considering the experience of the agents of the other microservices of the system. The above setting not only allows to identify local anomalies but global ones from the whole microservices architecture. To show the effectiveness of the framework as proposed, we have gone through a thorough experimental analysis on two microservice architectures (NETFLIX, and LAMP). Results showed that our proposed framework can understand the behavior of microservices, and accurately simulate different interactions in the microservices. Besides, our approach outperforms baseline methods in identifying both local and global outliers.submittedVersio

    Developing self-adaptive microservices

    Get PDF
    The modern development approaches are establishing microservices and cloud computing as major trends to benefit the technological community. However, these technologies are often prone to multiple issues regarding parallel development by numerous parties, delivery strategies and resource allocation. This paper proposes a novel architecture for developing self-adaptive microservices, using Kubernetes through the Azure Container Apps, including a strategy that will complement the architecture to enhance the development of microservices and aiming to achieve a solution that allows the readers to deliver software faster, with more resilience, more scalable, and more cost-effective, depending as low as possible from human intervention to maintain and scale. The author will apply the acquired knowledge to propose and test an architecture for a real use case scenario, building a notifications service integrated with a complex cloud-based web application system.As abordagens de desenvolvimento mais recentes estão a estabelecer os microsserviços e a computação em nuvem como tendências importantes para benefício da comunidade tecnológica. No entanto, estas tecnologias são frequentemente propensas a vários problemas relacionados com o desenvolvimento paralelo por várias partes, estratégias de entrega de software desenvolvido e afetação de recursos. Este artigo propõe uma nova arquitetura para o desenvolvimento de microsserviços autoadaptativos, utilizando Kubernetes através do Azure Container Apps, incluindo uma estratégia que complementará a arquitetura para melhorar o seu desenvolvimento, visando alcançar uma solução que permita aos leitores entregar software mais rapidamente, com mais resiliência, mais escalável e mais económico, dependendo o menos possível da intervenção humana para manter e escalar. O autor irá aplicar os conhecimentos adquiridos para propor e testar uma arquitetura para um caso de uso real, construindo um serviço de notificações integrado com um sistema complexo de aplicações web hospedado na nuvem

    Secure FaaS orchestration in the fog: how far are we?

    Get PDF
    AbstractFunction-as-a-Service (FaaS) allows developers to define, orchestrate and run modular event-based pieces of code on virtualised resources, without the burden of managing the underlying infrastructure nor the life-cycle of such pieces of code. Indeed, FaaS providers offer resource auto-provisioning, auto-scaling and pay-per-use billing at no costs for idle time. This makes it easy to scale running code and it represents an effective and increasingly adopted way to deliver software. This article aims at offering an overview of the existing literature in the field of next-gen FaaS from three different perspectives: (i) the definition of FaaS orchestrations, (ii) the execution of FaaS orchestrations in Fog computing environments, and (iii) the security of FaaS orchestrations. Our analysis identify trends and gaps in the literature, paving the way to further research on securing FaaS orchestrations in Fog computing landscapes

    Machine Learning Interference Modelling for Cloud-native Applications

    Get PDF
    Modern cloud-native applications use microservice architecture patterns, where fine granular software components are deployed in lightweight containers that run inside cloud virtual machines. To utilize resources more efficiently, containers belonging to different applications are often co-located on the same virtual machine. Co-location can result in software performance degradation due to interference among components competing for resources. In this thesis, we propose techniques to detect and model performance interference. To detect interference at runtime, we train Machine Learning (ML) models prior to deployment using interfering benchmarks and show that the model can be generalized to detect runtime interference from different types of applications. Experimental results in public clouds show that our approach outperforms existing interference detection techniques by 1.35%-66.69%. To quantify the intereference impact, we further propose a ML interference quantification technique. The technique constructs ML models for response time prediction and can dynamically account for changing runtime conditions through the use of a sliding window method. Our technique outperforms baseline and competing techniques by 1.45%-92.04%. These contributions can be beneficial to software architects and software operators when designing, deploying, and operating cloud-native applications

    Dynamical Modeling of Cloud Applications for Runtime Performance Management

    Get PDF
    Cloud computing has quickly grown to become an essential component in many modern-day software applications. It allows consumers, such as a provider of some web service, to quickly and on demand obtain the necessary computational resources to run their applications. It is desirable for these service providers to keep the running cost of their cloud application low while adhering to various performance constraints. This is made difficult due to the dynamics imposed by, e.g., resource contentions or changing arrival rate of users, and the fact that there exist multiple ways of influencing the performance of a running cloud application. To facilitate decision making in this environment, performance models can be introduced that relate the workload and different actions to important performance metrics.In this thesis, such performance models of cloud applications are studied. In particular, we focus on modeling using queueing theory and on the fluid model for approximating the often intractable dynamics of the queue lengths. First, existing results on how the fluid model can be obtained from the mean-field approximation of a closed queueing network are simplified and extended to allow for mixed networks. The queues are allowed to follow the processor sharing or delay disciplines, and can have multiple classes with phase-type service times. An improvement to this fluid model is then presented to increase accuracy when the \emph{system size}, i.e., number of servers, initial population, and arrival rate, is small. Furthermore, a closed-form approximation of the response time CDF is presented. The methods are tested in a series of simulation experiments and shown to be accurate. This mean-field fluid model is then used to derive a general fluid model for microservices with interservice delays. The model is shown to be completely extractable at runtime in a distributed fashion. It is further evaluated on a simple microservice application and found to accurately predict important performance metrics in most cases. Furthermore, a method is devised to reduce the cost of a running application by tuning load balancing parameters between replicas. The method is built on gradient stepping by applying automatic differentiation to the fluid model. This allows for arbitrarily defined cost functions and constraints, most notably including different response time percentiles. The method is tested on a simple application distributed over multiple computing clusters and is shown to reduce costs while adhering to percentile constraints. Finally, modeling of request cloning is studied using the novel concept of synchronized service. This allows certain forms of cloning over servers, each modeled with a single queue, to be equivalently expressed as one single queue. The concept is very general regarding the involved queueing discipline and distributions, but instead introduces new, less realistic assumptions. How the equivalent queue model is affected by relaxing these assumptions is studied considering the processor sharing discipline, and an extension to enable modeling of speculative execution is made. In a simulation campaign, it is shown that these relaxations only has a minor effect in certain cases
    corecore