OpenSergo微服务治理项目
微服务治理是把微服务做稳做好的关键一环。但是,业界微服务治理存在概念不统一、配置形式不统一、能力不统一、多框架统一管控较为复杂等问题。比如我们希望配置流量灰度规则,在 Spring Cloud Alibaba 中可能需要通过 YAML 方式配置,在 Dubbo 中需要通过另一种配置格式进行配置,在 Istio 体系内中可能又需要通过 Istio CRD 的方式进行配置。不同框架治理配置方式的不一致使得微服务统一治理管控的复杂度相当高。另外,业界的各种框架支持的服务治理能力都不统一,且通常比较基础,很多时候无法覆盖生产级的场景。
基于以上背景,OpenSergo 应运而生。OpenSergo 是开放通用的,覆盖微服务及上下游关联组件的微服务治理项目。OpenSergo 从微服务的角度出发,涵盖流量治理、服务容错、服务元信息治理、安全治理等关键治理领域,提供一系列的治理能力与标准、生态适配与最佳实践,支持 Java, Go, Rust 等多语言生态。OpenSergo 项目由阿里巴巴、bilibili、中国移动、SphereEx 等企业,以及 Kratos、CloudWeGo、ShardingSphere、Database Mesh、Sentinel、Spring Cloud Alibaba、Apache Dubbo 等社区联合发起,共同主导治理标准建设与能力演进。
OpenSergo 的最大特点就是以统一的一套配置/DSL/协议定义服务治理规则,面向多语言异构化架构,覆盖微服务框架及上下游关联组件。无论微服务的语言是 Java, Go, Rust, Node.js 还是其它语言,无论是标准微服务还是 Mesh 接入,从网关到微服务框架,再到微服务视角的数据库/缓存访问、消息投递/消费,开发者都可以通过同一套 OpenSergo CRD 标准配置进行统一的治理管控,而无需关注各框架、语言的差异点,降低异构化、全链路微服务治理管控的复杂度。
OpenSergo 提供 Java、Go 等多语言的 SDK,各个框架生态可以非常方便地通过 OpenSergo SDK 来对接 OpenSergo 微服务治理标准,接入到 OpenSergo 生态中,通过 OpenSergo 控制平面 (Control Plane) 统一管理服务治理规则。
Sentinel 2.0 将作为 OpenSergo 流量治理能力(流量路由、染色、流控降级、服务容错与自愈)的标准实现,同时原生支持 OpenSergo 流量治理标准。开源组件均可通过对接 Sentinel 来接入 OpenSergo 流量治理能力与标准。