Skip to content

ASoC Idea List

Eric Zhao edited this page May 27, 2020 · 4 revisions

ASoC 2020 idea list

Feel free to discuss your favorite idea in the corresponding issue, or open a new issue regarding your cool new ideas!

Adaptive flow control

自适应流控策略探索,借助统计学、排队论、控制论、机器学习的思想,结合 Sentinel 实时和历史的指标数据,来设计并实现自适应的流控和熔断降级策略并在各种应用场景进行验证。

It would be perfect if we can introduce intelligent mechanisms that do adaptive flow control automatically based on real-time metrics. Thus the services can react to burst traffic timely and become more resilient. Users might not need to configure rules anymore.

Related issue: https://github.com/alibaba/Sentinel/issues/748

Knowledge prerequisite: Java; some notion of queueing theory, control theory or machine learning is better

Skill level: Intermediate, Experienced

Cloud-native ecosystem evolution

围绕 Sentinel Go 版本,与云原生生态进行一系列的整合和演进,如 Istio 插件、K8s HPA 弹性、Rule Operator、block event pumper 等。

Cloud-native ecosystem evolution with Sentinel Go. Some ideas:

  • Sentinel Go WASM plugin for Istio
  • Sentinel Rule K8s CRD handler
  • Sentinel HPA (Horizontal Pod Autoscaler) metrics adapter
  • Event pumper (when rule triggered or system became unstable)
  • Any other cool ideas regarding cloud-native infrastructure (Kubernetes, service mesh, OpenTracing, Prometheus, etc.)

Knowledge prerequisite: Go; some notion of Kubernetes, Istio and WASM is better

Skill level: Intermediate

Distributed concurrency control

支持高可用的分布式并发控制能力,从而可以扩充 Sentinel 集群流量控制的场景。同时提供一套扩展机制可以让用户实现自己的并发控制逻辑。

Add distributed concurrency control feature in Sentinel. Issue: https://github.com/alibaba/Sentinel/issues/1477

Knowledge prerequisite: Java; some notion of distributed system is better

Skill level: Intermediate

Sentinel polyglot implementation (C++/Go/Rust/Node.js)

Sentinel 多语言版本功能完善(C++/Go)或新增语言实现(Node.js/Rust)。多语言版本期望包括基础的监控统计、流控、熔断降级、系统保护、热点参数流控等特性。

Bring nouveau features to existing Sentinel polyglot implementations (C++/Go), or bring new polyglot version (like Rust or Node.js). The polyglot implementation may support basic real-time metric and monitoring, flow control, circuit breaking, frequent parameter flow control and system adaptive protection.

Knowledge prerequisite: familiar with at least one of C++/Go/Rust/Node.js

Skill level: Intermediate, Experienced

Circuit breaking and fail-over for unhealthy clusters

通过适配模块、字节码增强等方式在服务发现和负载均衡模块中集成 Sentinel 高可用防护的能力,为 Spring Cloud/Dubbo 等提供节点/集群维度的熔断和 failover 的能力,扩展 Sentinel 在服务治理中的场景。比如实现一套 Spring Cloud 服务发现和负载均衡的插件,可以自动剔除不稳定的机器,或改变对应的流量比例。

Knowledge prerequisite: Java, Spring Cloud; some notion of distributed system and service mesh is better

Skill level: Intermediate

Clone this wiki locally