OpenSergo 正式开源( 二 )


微服务治理的发展趋势微服务治理的发展趋势,是让业务迭代更加高效、业务和治理更加透明和解耦:

  • 服务治理数据面透明化、多元化:微服务数据面会逐渐下沉为基础设施,业务开发者会将数据面当作一个标准组件来使用 。同时,服务治理也会通过多种形态来支持不同的数据面,对齐服务治理数据面能力 。
  • 服务治理数据面标准化:微服务框架会直接对接标准的服务治理标准,减轻微服务框架的对接负担;业务开发者也只需要理解标准的服务治理数据面标准,不需要了解底层能力,降低认知负担 。
  • 数据面实现互操作性:各个微服务框架、各个通信协议提供的能力会标准化,能够让用户用统一的模式来认知和治理 。
OpenSergo 的使命和愿景基于此,阿里巴巴在2022年1月开始和 bilibili、字节跳动等厂商讨论服务治理如何规范化和更加普及,从而共同发起了 OpenSergo 项目 。
目前,不同框架、不同语言在微服务治理上的概念碎片化、无法互通 。所以,OpenSergo 致力于在不同的微服务框架、通信协议之间达成共识,形成服务治理规范 。
  • 让业务开发者,不会因为不同的语言、不同的框架而产生割裂 。
  • 让架构师,能够用统一的规范来描述自己内部的微服务架构 。
  • 让中间件开发者,能够和现有微服务框架对齐,增强微服务框架之间的互操作能力,促进微服务框架在企业落地 。
OpenSergo 总览
OpenSergo 主要包含三大部分:
  • 控制面:用户可以通过 CRD 或者 Dashboard 的方式查看、修改服务治理配置,并将这些管控信息下发到数据面 。
  • 数据面:JavaAgent、Servcie Mesh、各个接入 OpenSergo 的微服务框架都能够接收到服务治理配置,并应用到当前的业务流量中 。各个数据面都能够认可OpenSergo规定的服务治理配置、流量标签等信息,确保降低开发者理解成本 。
  • OpenSergo Spec:Spec 规定了控制面和数据面的通信约定,确保用户使用一种 Spec 即可描述不同框架、不同协议、不同语言的微服务架构,让开发者不再需要关注底层差异 。

OpenSergo 正式开源

文章插图
 
对于控制面,OpenSergo 统一了治理规则,用户不必再绑定到某个开源方案、某个云厂商提供的服务上 。不同的数据面、控制面只要对接 OpenSergo 规范,即可无缝对接现有的服务治理体系 。
对于数据面,OpenSergo 提供了不同的接入方式:
  • Spec/SDK 接入:微服务框架可以通过 OpenSergo 规范实现自助接入 。各个框架也可以通过 SDK 简单接入到 OpenSergo 中,这种接入方式能够获取到更多的框架内部信息,也能够省去 Sidecar 带来的额外性能、资源开销 。
  • Sidecar 方式接入:对于多语言服务,OpenSergo 可以将服务治理规则下发到 Sidecar 中,以 Sidecar 方式治理现有的微服务应用 。
  • Java Agent 接入:对于 Java 应用,Java Agent 可以用无侵入的方式将服务治理能力增强到现有的微服务应用中,能够很好地将存量 Java 应用带入到统一的微服务治理体系中来 。

OpenSergo 正式开源

文章插图
 
从阿里巴巴集团内部和阿里云提供的服务治理经验来看,结合各个开源微服务框架、各公司内部的治理经验,从服务治理功能层面来说,目前业界认可的主要分为上图中的开发态、测试态、发布态、高可用、安全态五个部分: