Skip to content

Commit

Permalink
Merge pull request #529 from qmhu/maininfo-update
Browse files Browse the repository at this point in the history
update README.md
  • Loading branch information
mfanjie authored Aug 29, 2022
2 parents 3c9a289 + 60455f3 commit 0412dba
Show file tree
Hide file tree
Showing 5 changed files with 171 additions and 74 deletions.
75 changes: 62 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,69 @@

---

Crane (FinOps Crane) is a cloud native open source project which manages cloud resources on Kubernetes stack, it is inspired by FinOps concepts.
## What is Crane

## Introduction
> English | [中文](README_zh.md)
The goal of Crane is to provide a one-stop-shop project to help Kubernetes users to save cloud resource usage with a rich set of functionalities:
Crane is a FinOps Platform for Cloud Resource Analytics and Economics in Kubernetes clusters. The goal is not only help user to manage cloud cost easier but also ensure the quality of applications.

- **Time Series Prediction** based on monitoring data
- **Usage and Cost visibility**
- **Usage & Cost Optimization** including:
- R2 (Resource Re-allocation)
- R3 (Request & Replicas Recommendation)
- Effective Pod Autoscaling (Effective Horizontal & Vertical Pod Autoscaling)
- Cost Optimization
- **Enhanced QoS** based on Pod PriorityClass
- **Load-aware Scheduling**
**How to start a Cost-Saving journey on Crane?**

<img alt="Crane Overview" height="550" src="docs/images/crane-overview.png" width="800"/>
1. **Understanding**: Cost insight for cloud assets and kubernetes resources(Deployments, StatefulSets).
2. **Analytics**: Periodically analytics the states in cluster and provide optimization recommendations.
3. **Optimization**: Rich set of functionalities to operate and reduce your cost.

https://user-images.githubusercontent.com/35299017/186680122-d7756b47-06be-44cb-8553-1957eaa3ed45.mp4

**Live Demo** for Crane Dashboard: http://dashboard.gocrane.io/

## Main Features

<img alt="Crane Overview" height="330" src="docs/images/crane-overview.png" width="900"/>

**Cost Visualization and Optimization Evaluation**

- Provides a collection of exporters which collect cloud resource pricing and billing data and ship to your monitoring system like Prometheus.
- Multi-dimensional cost insight, optimization evaluates are supported. Support Multi-cloud Pricing through `Cloud Provider`

**Recommendation Framework**

Provide a pluggable framework for analytics and give recommendation for cloud resources, support out-of-box recommenders: Workload Resources/Replicas, Idle Resources.

**Prediction-driven Horizontal Autoscaling**

EffectiveHorizontalPodAutoscaler supports prediction-driven autoscaling. With this capability, user can forecast the incoming peak flow and scale up their application ahead, also user can know when the peak flow will end and scale down their application gracefully. [learn more](docs/tutorials/using-effective-hpa-to-scaling-with-effectiveness.md).

**Load-Aware Scheduling**

Provide a simple but efficient scheduler that schedule pods based on actual node utilization data,and filters out those nodes with high load to balance the cluster. [learn more](docs/tutorials/scheduling-pods-based-on-actual-node-load.md).

**Colocation with Enhanced QoS**


## Architecture

The overall architecture of Crane is shown as below:

<img alt="Crane Overview" height="550" src="docs/images/crane-arch.png"/>

**Craned**

Craned is the core component which manage the lifecycle of CRDs and APIs. It's deployed by a `Deployment` which consists of two container:
- Craned: Operators for management CRDs, WebApi for Dashboard, Predictors that provide query TimeSeries API.
- Dashboard: Web component that built from TDesign's Starter, provide an easy-to-use UI for crane users.

**Fadvisor**

Fadvisor provides a collection of exporters which collect cloud resource pricing and billing data and ship to your monitoring system like Prometheus. Fadvisor support Multi-Cloud Pricing API by `Cloud Provider`.

**Metric Adapter**

Metric Adapter implements a `Custom Metric Apiserver`. Metric Adapter consume Crane CRDs and provide HPA Metrics by `Custom/External Metric API`.

**Crane Agent**

Crane Agent is a `DaemonSet` that runs in each node.

## Getting Started

Expand Down Expand Up @@ -58,6 +104,9 @@ Please see [this document](./docs/roadmaps/roadmap-2022.md) to learn more.

Contributors are welcomed to join Crane project. Please check [CONTRIBUTING](./CONTRIBUTING.md) about how to contribute to this project.

For how to start develop for Crane, you can check [developer's documentation](./docs/developer-guide.md).

## Code of Conduct

Crane adopts [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).

61 changes: 0 additions & 61 deletions README_ch.md

This file was deleted.

109 changes: 109 additions & 0 deletions README_zh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# Crane: Cloud Resource Analytics and Economics

[![Go Report Card](https://goreportcard.com/badge/github.com/gocrane/crane)](https://goreportcard.com/report/github.com/gocrane/crane)
[![GoDoc](https://godoc.org/github.com/gocrane/crane?status.svg)](https://godoc.org/github.com/gocrane/crane)
[![License](https://img.shields.io/github/license/gocrane/crane)](https://www.apache.org/licenses/LICENSE-2.0.html)
![GoVersion](https://img.shields.io/github/go-mod/go-version/gocrane/crane)

<img alt="Crane logo" height="100" src="docs/images/crane.svg" title="Crane" width="200"/>

---

## Crane 是什么

> [English](README.md) | 中文
Crane 是一个基于 FinOps 的云资源分析与成本优化平台。它的愿景是在保证客户应用运行质量的前提下实现极致的降本。

**如何在 Crane 中开启成本优化之旅?**

1. **成本展示**: Kubernetes 资源( Deployments, StatefulSets )的多维度聚合与展示。
2. **成本分析**: 周期性的分析集群资源的状态并提供优化建议。
3. **成本优化**: 通过丰富的优化工具更新配置达成降本的目标。

https://user-images.githubusercontent.com/35299017/186680122-d7756b47-06be-44cb-8553-1957eaa3ed45.mp4

## Main Features

<img alt="Crane Overview" height="330" src="docs/images/crane-overview.png" width="900"/>

**成本可视化和优化评估**

- 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。
- 多维度的成本洞察,优化评估。通过 `Cloud Provider` 支持多云计费。

**推荐框架**

提供了一个可扩展的推荐框架以支持多种云资源的分析,内置了多种推荐器:资源推荐,副本推荐,闲置资源推荐。

**基于预测的水平弹性器**

EffectiveHorizontalPodAutoscaler 支持了预测驱动的弹性。它基于社区 HPA 做底层的弹性控制,支持更丰富的弹性触发策略(预测,观测,周期),让弹性更加高效,并保障了服务的质量。[了解更多](docs/tutorials/using-effective-hpa-to-scaling-with-effectiveness.zh.md)

**负载感知的调度器**

动态调度器根据实际的节点利用率构建了一个简单但高效的模型,并过滤掉那些负载高的节点来平衡集群。[了解更多](docs/tutorials/scheduling-pods-based-on-actual-node-load.zh.md)

**基于 QoS 的混部**


## 架构

Crane 的整体架构如下:

<img alt="Crane Overview" height="550" src="docs/images/crane-arch.png"/>

**Craned**

Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。Craned 通过 `Deployment` 方式部署且由两个容器组成:
- Craned: 运行了 Operators 用来管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
- Dashboard: 基于 TDesign's Starter 脚手架研发的前端项目,提供了易于上手的产品功能

**Fadvisor**

Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。Fadvisor 通过 `Cloud Provider` 支持了多云计费的 API。

**Metric Adapter**

Metric Adapter 实现了一个 `Custom Metric Apiserver`. Metric Adapter 读取 CRDs 信息并提供基于 `Custom/External Metric API` 的 HPA Metric 的数据。

**Crane Agent**

Crane Agent 通过 `DaemonSet` 部署在集群的节点上。

## 快速开始

- [介绍](https://docs.gocrane.io)
- [安装](https://docs.gocrane.io/dev/installation/)
- [教程](https://docs.gocrane.io/dev/tutorials/using-effective-hpa-to-scaling-with-effectiveness/)

## 文档

完整的文档请[查看](https://docs.gocrane.io)

## 社区

- Slack(English): [https://gocrane.slack.com](https://join.slack.com/t/gocrane/shared_invite/zt-1ehm9871y-Zgs5pXxSIhYg5hGSc5XZgQ)

- 微信群: 添加微信后回复 "Crane",小助手会定期将您加入微信群。

<img alt="Wechat" src="docs/images/wechat.jpeg" title="Wechat" width="200"/>

- 社区双周会(APAC, Chinese)
- [Meeting Link](https://meeting.tencent.com/dm/SjY20wCJHy5F)
- [Meeting Notes](https://doc.weixin.qq.com/doc/w3_AHMAlwa_AFU7PT58rVhTFKXV0maR6?scode=AJEAIQdfAAo0gvbrCIAHMAlwa_AFU)
- [Video Records](https://www.wolai.com/33xC4HB1JXCCH1x8umfioS)

## RoadMap

[了解更多](./docs/roadmaps/roadmap-2022.md)

## 如何贡献

欢迎参与贡献 Crane 项目。请参考 [CONTRIBUTING](./CONTRIBUTING.md) 了解如何参与贡献。

关于如何参与 Crane 的开发,你可以参考 [开发文档](./docs/developer-guide.md)

## 行为准则

Crane 采用了 [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
Binary file added docs/images/crane-arch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/crane-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 0412dba

Please sign in to comment.