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

相关文章
|
26天前
|
监控 安全 测试技术
深入理解并实践微服务架构中的服务治理
深入理解并实践微服务架构中的服务治理
24 1
|
5月前
|
运维 Prometheus 监控
微服务架构下的服务治理实践
【7月更文挑战第27天】在微服务架构的浪潮中,服务治理作为确保系统稳定性和高可用性的关键手段,其重要性日益凸显。本文将探讨微服务架构下服务治理的核心要素,包括服务发现、配置管理、流量控制等,并结合实例分析如何有效实施服务治理策略,以提升系统的弹性、监控能力和安全性。通过本文,读者将获得一套实用的服务治理框架,以及面对复杂服务交互时保持清晰治理视野的方法。
|
4月前
|
存储 监控 负载均衡
微服务架构中的服务治理与监控技术
【8月更文挑战第3天】微服务架构中的服务治理与监控是确保系统稳定、高效运行的重要手段。通过构建注册中心实现服务的自动注册和发现,通过部署监控工具实现对服务的全面监控,可以有效地提高系统的可靠性和可用性。未来,随着技术的不断发展,服务治理与监控技术也将不断完善和优化,为微服务架构的广泛应用提供更加坚实的支撑。
|
7月前
|
负载均衡 算法 NoSQL
探索微服务架构下的服务发现与治理
【5月更文挑战第9天】 在当今的软件开发领域,微服务架构已成为构建可伸缩、灵活且容错的系统的首选模式。随着服务的增多,如何有效地进行服务发现与治理成为了关键的挑战。本文将深入探讨微服务环境中服务发现的机制和治理策略,分析不同服务发现工具的优缺点,并提出一种基于一致性哈希和健康检查相结合的服务治理方案,旨在提高系统的可用性和性能。
|
7月前
|
运维 负载均衡 监控
探索微服务架构下的服务治理实践
【2月更文挑战第24天】 在当前软件开发领域,微服务架构已成为构建复杂系统的主流选择。它通过将大型单一应用程序分解为一组小的、松耦合的服务来提供灵活性和可维护性。然而,随之而来的是服务治理的挑战,包括服务发现、配置管理、负载均衡、熔断机制等。本文将深入探讨在微服务架构中实现有效服务治理的策略与技术实践,分享个人在这一过程中的感悟和经验教训。
|
Dubbo 安全 应用服务中间件
OpenSergo & Dubbo 微服务治理最佳实践
本文分享通过 OpenSergo 及 Dubbo 体系化落地微服务治理,保障微服务稳定性。
43120 9
|
架构师 安全 Cloud Native
OpenSergo 正式开源,多家厂商共建微服务治理规范和实现
OpenSergo,Open 是开放的意思,Sergo 则是取了服务治理两个英文单词 Service Governance 的前部分字母 Ser 和 Go,合起来即是一个开放的服务治理项目。 该项目由阿里云、bilibili、字节跳动,以及 Spring Cloud Alibaba、Nacos、Apache Dubbo 社区共同维护,旨在构建一个和语言无关、和技术形态无关,但贴近业务的统一服务治理规范和实现,欢迎大家加入共建。
2274 1
OpenSergo 正式开源,多家厂商共建微服务治理规范和实现
|
Kubernetes 网络协议 Java
Istio入门——了解什么是服务网格以及如何在微服务体系中使用
Istio入门——了解什么是服务网格以及如何在微服务体系中使用
402 1
|
自然语言处理 监控 Java
对于服务治理概念的一些总结和理解,我们应该如何实践服务治理
对于服务治理概念的一些总结和理解,我们应该如何实践服务治理
262 0
|
运维 监控 前端开发
基于网关服务治理的研究与实践(二)服务治理
接上篇,本篇原创系列是对服务治理的相关背景说明,主要介绍了服务治理相关概念、技术及演进历程。
1426 1
基于网关服务治理的研究与实践(二)服务治理