OpenSergo-服务治理标准化

简介: 企业用户云原生化进入深水区,企业微服务上云后,服务治理的问题逐步成为企业下一阶段的诉求。不管是从开源社区/ Github 上的反馈,还是从 workshop /线下活动的数据来看,服务治理都是容器用户最感兴趣的话题。


OpenSergo-服务治理标准化


鲁严波

微服务产品研发团队


image.png

企业用户云原生化进入深水区,企业微服务上云后,服务治理的问题逐步成为企业下一阶段的诉求。不管是从开源社区/ Github 上的反馈,还是从 workshop /线下活动的数据来看,服务治理都是容器用户最感兴趣的话题。


服务治理主要分为四个阶段:

  • 云上部署:首先用户从最开始的 ECS 基于虚拟的部署来实现云上部署。
  • 云原生部署:做一些容器化的改造,以容器为核心,部署业务。
  • 微服务化:进行微服务化改造,用户能够获得更敏捷、以应用为核心的开发能力。
  • 服务治理:希望在提效和稳定性上做出更新,并以业务为核心进行开发,因此需要越来越多的服务治理能力的支持。

image.png

目前开源领域服务并没有统一和标准的方案,比如在工作负载上,可以选择容器和 ECS 在语言上,可以选择 Java、Go、PHP 等;在框架上,可以选择 Spring Cloud 、Dubbo、gRPC 等;在接入服务治理的方式上,可以选择商业化更多的 Java Agent,也可以选择 Service Mesh 或各语言 SDK 的方式来做自己的服务治理标准。

对于企业而言,每一套方案都有不同的抽象和概念,服务治理的能力和方法也不同,最终会给业务开发人员造成很大的认知负担,服务治理在实践中难以落地。

另外,服务治理的现有框架极大限制了新的 RPC 框架和新的通信协议的在企业中的引入,从而极大限制了企业的技术革新。

image.png

基于以上种种问题,我们创办了 OpenSergo 这个开源项目。

OpenSergo Open Service Governance 的缩写,它致力于建立一套开放的、面向应用的、贴近业务语义的服务治理规范。

OpenSergo 的角度出发,希望通过微服务治理标准能够增强各个 RPC 框架之间的可交互性,能够用同样的一套标准去治理不同语言、不同协议的微服务框架和通信协议。

对于各个微服务框架而言,希望通过 OpenSergo 来增强微服务框架的能力,提升开源竞争力;同时也希望能够提升各个 RPC 框架协议的互操作性,比如 HTTP 服务、外部的私有协议服务、普通的 gRPC 服务等之间的互通和治理规则的互相认可;最后,希望通过 OpenSergo 项目帮助促进微服务框架在企业中的落地。

image.png

上图为 OpenSergo 项目的结构。


最中间的服务治理 Spec 是一套中立的标准,让用户使用这样一套规范来描述自己的微服务架构,即期望建立的核心规范。对于数据面,可以用无侵入的Java Agent的方式接入到治理规范中,也可以通过更接近业务语义的 SDK 方式接入 Spec 还支持通过 Service Mesh 这种目前比较流行的流量治理方式接入。


最上层为管控面,支持以 K8s CRD 为核心、用户自己编辑 yml 的方式来查看修改服务治理规则,也支持 web 界面, dashboard 用户能够通过 web 界面来查看修改自己的服务治理规则。

服务治理的功能主要分为开发态、测试态、发布态、高可用、安全态五个阶段。


开发态提供了服务契约能力,用户可以通过此功能查看应用提供了哪些接口、每个接口的业务语义是什么;提供了服务调试的能力,用户可以在界面上迅速方便地发起 RPC 调用,以此替代写很多代码来发起;提供了服务 Mock 能力,用户能够指定规则来 Mock 服务的行为;提供了开发环境隔离的能力,可以迅速建立起一套逻辑上隔离的开发环境,无须为每个服务都搭建一遍。


测试态提供了压测和回归的能力,发布态提供了发布时的效率保障,安全态的提供了服务鉴权、漏洞防护、零信任安全等基础能力。

image.png

上图为 Spec 架构图。

左侧是管控面,用户可以通过文本编辑器编辑服务治理规则。也提供了 OpenSergo Dashboard 控制台,用户在控制台上可以查看、修改服务治理规则。对于技术能力比较强,有自己内部要求的企业,也支持企业自建的 dashboard 只要对接了 OpenSergo 协议,就可以使用自己的 dashboard 来实现诸多功能。


中间是 OpenSergo 协议,本质上是 Spec 的规定,规定了服务元数据如何上报、服务治理的概念和能力、如何配置出二进制流,以及服务发现、可观测的能力。从本质上来看, OpenSergo 协议致力于实现一套能够描述用户微服务架构的语言。


右侧为数据面,除了常用的 Java Agent 服务治理和 Service Mesh 以外,也支持 SDK 接入不同的微服务框架,比如 Spring Cloud Alibaba、Bilibili 的 Kratos、字节跳动的 Kitex 目前都是正在接入的状态,将来也会支持 gRPC  Dubbo 的一些数据面。用户只需要用 OpenSergo 协议描述自己的微服务架构,各个数据面的框架即会遵从它的规则来做对应的流量分发、路由等功能。

目录
打赏
0
1
0
0
112
分享
相关文章
OpenSergo 即将发布 v1alpha1,丰富全链路异构架构的服务治理能力
OpenSergo 标准到底是什么样子的呢?我们可以利用 OpenSergo 标准来做哪些事情呢?下面我们来结合几个例子来进行介绍。
447 8
OpenSergo 即将发布 v1alpha1,丰富全链路异构架构的服务治理能力
OpenSergo & Dubbo 微服务治理最佳实践
本文分享通过 OpenSergo 及 Dubbo 体系化落地微服务治理,保障微服务稳定性。
43129 9
Istio入门——了解什么是服务网格以及如何在微服务体系中使用
Istio入门——了解什么是服务网格以及如何在微服务体系中使用
440 1
对于服务治理概念的一些总结和理解,我们应该如何实践服务治理
对于服务治理概念的一些总结和理解,我们应该如何实践服务治理
293 0
OpenSergo 流量路由:从场景到标准化的探索
本文从常见的微服务治理场景出发,从流量路由这个场景入手。先是根据流量路由的实践设计流量路由的 Spec,同时在 Spring Cloud Alibaba 中实践遵循 OpenSergo 标准的流量路由能力。
OpenSergo 流量路由:从场景到标准化的探索
【详解】为什么选择Kubernetes作为云平台的微服务治理框架
本文讲的是【详解】为什么选择Kubernetes作为云平台的微服务治理框架,很多同学在做技术选型的时候,往往过于关注技术/功能上的比较,陷入技术细节和功能特性上的争论。
2831 0
基于网关服务治理的研究与实践(二)服务治理
接上篇,本篇原创系列是对服务治理的相关背景说明,主要介绍了服务治理相关概念、技术及演进历程。
1440 1
基于网关服务治理的研究与实践(二)服务治理
深度解读服务治理 & ServiceMesh、xDS
以下内容属自我思考,如理解有偏差、理解不透彻、现状梳理不清楚的请大家多指教。
深度解读服务治理 & ServiceMesh、xDS
OpenSergo 正式开源,多家厂商共建微服务治理规范和实现
OpenSergo,Open 是开放的意思,Sergo 则是取了服务治理两个英文单词 Service Governance 的前部分字母 Ser 和 Go,合起来即是一个开放的服务治理项目。 该项目由阿里云、bilibili、字节跳动,以及 Spring Cloud Alibaba、Nacos、Apache Dubbo 社区共同维护,旨在构建一个和语言无关、和技术形态无关,但贴近业务的统一服务治理规范和实现,欢迎大家加入共建。
2315 1
OpenSergo 正式开源,多家厂商共建微服务治理规范和实现