/DeFog

DeFog: Dynamic Micro-Service Placement in Hybrid Cloud-Fog-Edge Infrastructures

Primary LanguagePythonMIT LicenseMIT

DeFog

DeFog: Dynamic Micro-Service Placement in Hybrid Cloud-Fog-Edge Infrastructures

This application was created for my Thesis, at School of Electrical and Computer Engineering of Technical University of Crete.

Abstract

This thesis delves into the problem of microservice placement and load balancing in distributed multicluster Fog-Cloud systems. Minimization of both application response times and utilization of resources is the primary objective of the proposed method. In this study, the systems under investigation are formulated as a three-layered hierarchical model. The top layer represents the Cloud, which encompasses the centralized computing infrastructure and resources. The middle layer represents the Fog, which consists of intermediate computing nodes located closer to the edge devices and data sources. Finally, the bottom layer represents the Edge, which includes the edge devices and sensors that generate and consume data while also providing a small computing capacity. Application users connect to the Edge. Applications are modeled as Service Oriented Architectures which comprise multiple (micro)services. Placing microservices closer to the Edge is deemed to reduce the response time of an application, as opposed to services placed at the upper layers. As many applications can be running on the same infrastructure and as the resources of the Edge and the Fog are limited, choosing services to run on the Edge or the Fog is the problem this work is dealing with. The top layer (the Cloud) exhibits virtually unlimited resources, but running the application on the cloud might not be optimal in terms of response time. Each layer consists of multiple clusters of machines, with resource constraints increasing, as we move towards lower layers, primarily in terms of CPU and RAM resources. The proposed system, DeFog, focuses on decentralized service placement within each cluster, eliminating the need for coordination between clusters. To gather essential data and monitor applications, Service Mesh technologies, such as Linkerd are utilized. DeFog utilizes this data to apply the proposed strategies and achieve efficient load balancing within the system. To evaluate the effectiveness of the strategies, two realistic microservices-based applications, Google's Online Boutique and iXen for processing IoT information, are deployed in a heterogeneous multicluster environment on the Google Cloud Platform. Through extensive experimentation and performance evaluation, the latencies of each strategy are measured and compared under various loads and for various placement policies. The experimental results demonstrate that the proposed strategies successfully reduce response latencies and achieve load balancing, preventing any single service from being overwhelmed and ensuring a smooth user experience. The utilization of realistic applications in a heterogeneous multicluster environment adds practicality and relevance to the evaluation, validating the effectiveness of the proposed strategies in real-world scenarios.