GithubHelp home page GithubHelp logo

yunwang / crane Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gocrane/crane

0.0 1.0 0.0 5.96 MB

Crane (FinOps Crane) is an opensource project which manages cloud resource on Kubernetes stack, it is inspired by FinOps concepts. Goal of Crane is to provide an one-stop shop project to help Kubernetes users to save cloud resource usage with a rich set of functionalities.

License: Apache License 2.0

Dockerfile 0.35% Makefile 3.30% Go 95.94% Shell 0.41%

crane's Introduction

Crane: Cloud Resource Analytics and Economics


Architecture

Crane (FinOps Crane) is an opensource project which manages cloud resource on Kubernetes stack, it is inspired by FinOps concepts. Goal of Crane is to provide an one-stop shop project to help Kubernetes users to save cloud resource usage with a rich set of functionalities:

  • Resource Metrics Prediction based on monitoring data
  • Cost visibility including:
    • Cost allocation, cost and usage virtualization
    • Waste identification
    • Idle resource collection and reallocation
  • Usage & Cost Optimization including:
    • Enhanced scheduling which optimized for better resource utilization
    • Intelligent Scaling based on prediction result
    • Cost Optimization based on better billing rate
  • QoS Ensurance based on Pod PriorityClass

crane-architecture

Components

Predictor


Knowing the future makes things easier for us.


Many businesses are naturally cyclical in time series, especially for those that directly or indirectly serve "people". This periodicity is determined by the regularity of people’s daily activities. For example, people are accustomed to ordering take-out at noon and in the evenings; there are always traffic peaks in the morning and evening; even for services that don't have such obvious patterns, such as searching, the amount of requests at night is much lower than that during business hours. For applications related to this kind of business, it is a natural idea to infer the next day's metrics from the history data of the past few days, or to infer the coming Monday's access traffic from the data of last Monday. With predicted metrics or traffic patterns in the next 24 hours, we can better manage our application instances, stabilize our system, and meanwhile, reduce the cost.

Crane predictor fetches historical metric data for the monitoring system, such as Prometheus, and identifies the time series that are predictable, for example, system cpu load, memory footprint, application's user traffic, etc. Then it outputs the prediction results, which can be consumed by other crane components, like Effective Horizontal Pod Autoscaler and Analysis. It's also straightforward to apply the prediction results in user's applications.

Effective Horizontal Pod Autoscaler

EHPA is an application that is built on Predictor. It takes advantage of the native HPA mechanism, but it is based on prediction and scales applications in advance actively rather than reacting to monitoring metrics passively. Comparing with native HPA, advanced-horizontal-pod-autoscaler eliminates manual configuration and autoscaling lag and so it enhances HPA in terms of

  • Reliability -- Guarantee both scalability and availability
  • Responsiveness -- Scale up fast enough to successfully handle the increase in workload
  • Efficiency -- Reduce the cost

Please see this document to learn how to use EHPA.

Analysis

Ensurance

crane's People

Contributors

kitianfresh avatar leeweir avatar mfanjie avatar qmhu avatar yan234280533 avatar yufeiyu 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.