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 协议描述自己的微服务架构,各个数据面的框架即会遵从它的规则来做对应的流量分发、路由等功能。

相关文章
|
3月前
|
Kubernetes 负载均衡 微服务
Kubernetes 生态系统中的微服务治理
【8月更文第29天】随着微服务架构的普及,管理分布式系统的复杂性也随之增加。Kubernetes 作为容器编排的事实标准,为微服务架构提供了强大的支持。结合像 Istio 这样的服务网格工具,Kubernetes 能够有效地解决微服务治理中的诸多挑战,如服务发现、负载均衡、流量管理和安全策略等。
56 1
|
4天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
18 5
|
3月前
|
Prometheus 负载均衡 算法
如何让gRPC具备微服务治理能力
如何让gRPC具备微服务治理能力
|
6月前
|
负载均衡 算法 NoSQL
探索微服务架构下的服务发现与治理
【5月更文挑战第9天】 在当今的软件开发领域,微服务架构已成为构建可伸缩、灵活且容错的系统的首选模式。随着服务的增多,如何有效地进行服务发现与治理成为了关键的挑战。本文将深入探讨微服务环境中服务发现的机制和治理策略,分析不同服务发现工具的优缺点,并提出一种基于一致性哈希和健康检查相结合的服务治理方案,旨在提高系统的可用性和性能。
|
6月前
|
运维 Kubernetes Cloud Native
构建未来:云原生架构下的微服务治理
【4月更文挑战第30天】 在数字化转型的浪潮中,云原生技术以其灵活性、可扩展性和容错性成为企业IT战略的核心。本文深入探讨了如何通过云原生架构实现微服务的高效治理,包括服务发现、配置管理、流量控制和故障处理等关键方面。我们将展示一系列最佳实践和工具选择,以帮助企业构建一个既可靠又灵活的服务网格,确保业务连续性并加速创新步伐。
|
Dubbo 安全 应用服务中间件
OpenSergo & Dubbo 微服务治理最佳实践
本文分享通过 OpenSergo 及 Dubbo 体系化落地微服务治理,保障微服务稳定性。
43112 9
|
架构师 安全 Cloud Native
OpenSergo 正式开源,多家厂商共建微服务治理规范和实现
OpenSergo,Open 是开放的意思,Sergo 则是取了服务治理两个英文单词 Service Governance 的前部分字母 Ser 和 Go,合起来即是一个开放的服务治理项目。 该项目由阿里云、bilibili、字节跳动,以及 Spring Cloud Alibaba、Nacos、Apache Dubbo 社区共同维护,旨在构建一个和语言无关、和技术形态无关,但贴近业务的统一服务治理规范和实现,欢迎大家加入共建。
2243 1
OpenSergo 正式开源,多家厂商共建微服务治理规范和实现
|
Kubernetes 网络协议 Java
Istio入门——了解什么是服务网格以及如何在微服务体系中使用
Istio入门——了解什么是服务网格以及如何在微服务体系中使用
383 1
|
运维 Kubernetes Dubbo
基于开源体系的云原生微服务治理实践与探索
2020 年,公司正式开始探索落地 Service Mesh 项目。目前,相关产品已经在生产环节正式落地,正在进行接入推广工作。
基于开源体系的云原生微服务治理实践与探索
|
运维 监控 前端开发
基于网关服务治理的研究与实践(二)服务治理
接上篇,本篇原创系列是对服务治理的相关背景说明,主要介绍了服务治理相关概念、技术及演进历程。
1413 1
基于网关服务治理的研究与实践(二)服务治理