Giter Site home page Giter Site logo

ibm / deeprest Goto Github PK

View Code? Open in Web Editor NEW
11.0 6.0 5.0 1.44 GB

Also, check our recent DeepRest based hybrid-cloud migration advisor Atlas by clicking on the link below.

Home Page: https://github.com/IBM/DeepAtlas

License: Apache License 2.0

Python 2.21% Makefile 15.80% Go 41.86% Dockerfile 1.05% Lua 19.35% HTML 2.42% Shell 2.92% C 3.26% PowerShell 0.23% NSIS 0.14% SCSS 0.08% NASL 0.04% C++ 7.40% CSS 0.50% JavaScript 0.90% CMake 1.75% Thrift 0.11% Procfile 0.01%
kubernetes prediction-algorithm deep-neural-networks resource-management

deeprest's Introduction

DeepRest: Deep Resource Estimation for Interactive Microservices

Ka-Ho Chow, Umesh Deshpande, Sangeetha Seshadri, and Ling Liu, "DeepRest: Deep Resource Estimation for Interactive Microservices" ACM European Conference on Computer Systems (EuroSys), Rennes, France, Apr. 5-8, 2022.

Interactive microservices expose API endpoints to be invoked by users. For such applications, precisely estimating the resources required to serve specific API traffic is challenging. This is because an API request can interact with different components and consume different resources for each component. The notion of API traffic is vital to application owners since the API endpoints often reflect business logic, e.g., a customer transaction. The existing systems that simply rely on the historical resource utilization are not API-aware and thus cannot estimate the resource requirement accurately. This project develops DeepRest, a deep learning-driven resource estimation system. DeepRest formulates resource estimation as a function of API traffic and learns the causality between user interactions and resource utilization directly in a production environment. Our evaluation shows that DeepRest can estimate resource requirements with over 90% accuracy, even if the API traffic to be estimated has never been observed (e.g., 3x more users than ever or unseen traffic shape). We further apply resource estimation for application sanity checks. DeepRest identifies system anomalies by verifying whether the resource utilization is justifiable by how the application is being used. Our evaluation shows that DeepRest can successfully identify two major cybersecurity threats: ransomware and cryptojacking attacks. For more details, you can refer to our paper at EuroSys'22:

This repository contains the source code and documentation of this project, which are organized in the following directories. You can refer to the README.md file in each directory for instruction and details.

  • ./web-demo: The source code of the web UI demo
  • ./minikube-openebs: The source code for running OpenEBS on minikube through loop devices for experiment purposes
  • ./social-network: The source code of the social network application for deployment on the cloud
  • ./locust: The source code of the load generator
  • ./resource-estimation: The source code of the resource estimation

deeprest's People

Contributors

followumesh avatar khchow-gt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

deeprest's Issues

I get an error when running the code estimate.py

Traceback (most recent call last):
  File "api-tracing-app-management-deeprest/resource-estimation/estimate.py", line 35, in <module>
    input_size=step_size).fit_and_estimate(X, y[:, :, [idx]]))
IndexError: too many indices for array: array is 1-dimensional, but 3 were indexed

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.