Giter Site home page Giter Site logo

self-adaptive-scaling's Introduction

A Self-adaptive Auto-scaling on OpenShift

The Final Project of ECE 750 Self-Adaptive System, by Lucian Zhao and Guanjie Wang

Overview

This project presents an intelligent auto-scaling system designed for microservices performance optimization on IBM Cloud. Utilizing the Monitoring-Analysis-Planning-Execution-Knowledge (MAPE-K) self-adaptation loop model, the system dynamically adjusts to fluctuating workloads, ensuring efficient resource utilization and system responsiveness.

Features

  • MAPE-K Loop: The system utilizes the MAPE-K model for continuous adaptation. It incorporates a model-switching algorithm within the analysis phase, allowing the system to select the most appropriate predictive model based on current conditions, such as workload intensity and performance requirements.

  • Three-Layer Architecture: The system's architecture consists of:

    1. Goal Management Layer: Manages user and system requirements.
    2. Change Management Layer: Includes the MAPE-K loop and handles the dynamic model switching.
    3. Components Management Layer: Contains the functional components of the system.
  • LSTM-Based Workload Forecasting: Employs a Long Short-Term Memory (LSTM) network for accurate prediction of dynamic workloads.

  • OpenShift CLI for Execution: Uses OpenShift Command Line Interface for dynamic scaling of pods and resource adjustment.

LSTM

System Architecture

The system architecture is divided into three main components:

archNew

Implementation

  • Model Switching Algorithm: The system can switch between various predictive models, including statistical and machine learning (LSTM) methods, to optimize its forecasting accuracy and efficiency.
  • Workload Simulation: JMeter is used for simulating dynamic workloads, testing the system’s adaptability under various conditions.
  • Resource Management: Employs Docker containers for encapsulating services, orchestrated by OpenShift for real-time adaptations.
  • Performance Monitoring: Uses IBM Cloud monitoring tools, including Sysdig, for tracking performance metrics.

Metrics

Testing and Validation

  • Performance Testing: Conducted using a Python script integrated with JMeter.
  • Adaptation Efficiency: Validated through real-time adaptation to workload changes, ensuring optimal performance and resource utilization.

Utility Function Values

self-adaptive-scaling's People

Contributors

l32zhao avatar

Stargazers

 avatar Jasper Chen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.