您的位置  > 互联网

阿里云:构建一个微服务治理规范项目

近年来,由于企业规模不断扩大,IT系统规模迅速扩大,加上市场环境日趋快速变化,原有的IT系统单体架构已经不能满足业务需求。 为了更高效、灵活地支持业务发展,企业从单体架构转向微服务架构。

微服务架构与公司自身的技术积累和业务特点密切相关。 很多互联网公司在实际实施时都会根据自身特点创建自己的框架和组织形式。 同时,微服务离不开支撑治理能力,如服务可观测、全链路压测与跟踪、注册发现、配置中心、服务网格等。

在这些技术的发展过程中,业界逐渐形成百花齐放的局面,导致开发语言、框架各异,给企业带来了沉重的维护负担。 而且不同框架之间的互操作也存在损耗多样、复杂度高等问题。

面对这些痛点,2022年1月,阿里云开始与阿里云、字节跳动等企业以及Nacos、Cloud、Dubbo等社区共同探讨协同服务治理的标准化和规范化,并联合立项。 该项目目前通过2.0协议开源。 InfoQ 采访了阿里云和阿里云,了解如何构建微服务治理规范项目。

采访嘉宾:

张虎星,阿里云高级技术专家; 陆彦波,阿里云高级研发工程师; 陈志辉,基础设施团队研发工程师。

InfoQ:微服务架构下,服务治理体系经历了怎样的演进?

阿里云:在阿里内部,服务治理体系经历了从SDK方式,到Fat-SDK方式,再到Java Agent/。 具体来说,阿里巴巴于2008年开始微服务转型,诞生了服务框架HSF并支撑服务治理能力; 2012年,Dubbo框架开源,提供了非常优秀的服务治理能力。 此阶段的服务治理以SDK和服务框架的形式进行能力的集成和演进; 从2013年开始,为了解决SDK升级成本高的问题,中间件团队推出了轻量级隔离容器,通过Fat-SDK集成来自业务的服务治理能力。 与系统分离,大大提高升级效率。

但这种方法仍然面临着高昂的升级成本。 为了将服务治理体系与业务彻底解耦,阿里巴巴在2019年实现了服务治理能力,实现了业务不做任何修改就接入服务治理的能力。 后来我们把这个技术方案商业化,通过阿里云微服务引擎MSE产品在云端服务企业客户。

同期,随着业务多元化发展,多语言业务在集团内部逐渐流行。 阿里巴巴内部开始探索多语言治理解决方案,采用基于 Istio + Envoy 的方式,为异构语言服务提供基础。 服务治理能力。

在这个过程中,我们逐渐发现异构微服务框架的体系和认知不同,很多概念无法完全一致。 使用标准的服务治理解决方案来管理各种微服务系统变得越来越困难。 。 因此,我们迫切需要一个与语言、技术形态无关,而是贴近业务的统一的服务治理规范,使得异构微服务系统能够进行统一的互联和管理。

综上所述,阿里巴巴内部服务治理经历了基础数据面建设、治理能力探索、能力标准化建设三个阶段。

:从2016年开始,我们经历了从单体架构到微服务的彻底转型。 在整个过程中,我们也面临了很多服务治理的问题。 整个部署和管理模型开始从单体向微服务转变。 为了提高研发效率和稳定性,我们对不同粒度的服务进行了拆分,所以2017年我们开始思考如何管理微服务,从而开始通过容器进行部署和隔离。 ,极大的解决了我们管理方面的问题。 同时还构建了统一的注册中心和配置中心基础中间件。 整个微服务也围绕这两个基础中间件做了很多服务治理相关的工作。

早期我们的语言比较统一,基本上以Go语言为主要语言,有统一的框架,所以SDK的方式是服务治理的首选。 随着这几年业务的快速发展,内部出现了一些Java、C++等语言。 我们尝试了Mesh管理。 在这个过程中,我们逐渐发现,整个维护成本其实并不小,而且性能损失在减少。 在这个提效的大环境下,也存在着比较大的挑战。 因此,我们也期待有一套可以用于框架、Java Agent、Istio等系统的服务治理标准。

InfoQ:微服务治理框架现在成熟了吗? 包括阿里巴巴在内的行业服务治理现状和痛点是什么?

阿里云:服务治理是微服务转型到一定阶段后的必由之路。

随着越来越多的企业完成微服务转型,服务治理的话题逐渐热门,越来越多的架构师和开发人员开始意识到服务治理的必要性。 目前,服务治理在国内市场正处于快速发展时期。

一方面,经过十几年的微服务发展,阿里巴巴的微服务实例规模已经达到百万级别。 Dubbo 3.0与HSF已经成功融合,即将完成三位一体的重大历史使命。 他们的服务治理能力也非常成熟,已经具备商业服务能力,并且在一些领先的互联网公司有非常深入的实施实践。

另一方面,除了一些领先的互联网企业正在实施服务治理外,其他已经完成服务化转型的企业也对服务治理有着强烈的诉求。 然而,他们缺乏完整的方法论、最佳实践和开源标准化解决方案,导致企业引入服务治理变得困难。

综合来看,目前最大的痛点主要是:

业界对于服务治理的能力和边界还没有清晰的认识。 各个企业定义的服务治理理念不一致,导致理解和沟通成本较高。 开源微服务框架有很多,但缺乏一些服务治理的标准化约定。 例如,Cloud中定义的微服务接口和Dubbo中定义的接口无法相互通信,也无法实现通过Dubbo和Istio管理的微服务的统一管理。 缺乏真正面向业务且可以减轻认知负担的抽象和标准。 开发者真正想要的可能只是简单地指定服务之间的调用关系和配置规则。 但对于业务来说,不仅需要了解不同微服务框架的部署架构,还需要了解不同服务治理方式的概念和区别。

:目前我们基本都采用了微服务。 随着新业务的快速增长,服务治理的标准化变得越来越重要。 因为当我们的业务发展起来的时候,一般很难进行改造或者升级,或者会带来巨大的改造费用。 因此,在企业发展过程中,建议统一框架、统一治理,标准制定成为重要环节。 对于微服务之间的通信,我们选择了gRPC作为统一协议,并做了统一的BAPIs仓库管理接口定义,方便各个微服务的开发和调用。

总的来说,我们的主要痛点是:

服务治理主要侧重于实施和问题解决。 标准和标准化尚未形成,研发会有一定的理解成本。 业务框架主要是Go和Java。 对于主流框架,我们倾向于通过方法来提供业务使用。 我们缺乏开源统一的SDK和治理标准来实现治理能力。

InfoQ:为什么企业要推动建立服务治理规范项目? 该项目有什么形式的开源许可?

阿里云:随着阿里巴巴内部异构微服务业务不断增加,越来越多的企业将微服务迁移到云端,我们发现由于异构语言、异构框架导致的微服务治理成本有所增加。 呈指数级增长。 每个开源框架和协议对于微服务治理的定义和能力不一致,导致开源实现和云服务实现无法完全一致。 使用开源解决方案的企业无法顺利迁移到云厂商提供的与服务管理相关的PaaS服务。 尤其是多云成为趋势,企业在选择不同的云厂商时,无法享受到标准的PaaS级别的服务治理能力。

对于用户来说,不同的框架和协议代表需要选择不同的治理模型和治理规则,这给他们带来了额外的认知负担。 现有的微服务治理框架极大地限制了新语言、新框架的采用,导致企业技术迭代受到非常严格的限制。

考虑到这些点,2022年1月,我们开始与、Byte、Cloud、Nacos、Dubbo等社区等企业共同探讨协同服务治理的规范化和规范化,并共同建立了项目。 这个项目将主要针对开源用户以及其他云厂商对于开源2.0开源协议非常友好。

,Open是开放的意思,Sergo取自服务管理这两个英文单词的字母Ser和Go的前一部分。 总之,它是一个开放的服务管理项目。

:这两年我们的海外业务发展很快,业务上基本没有太多历史包袱。 因此,为了跑得更快,我们倾向于直接向云原生方向开发这部分业务。 基本上我们都是选择社区生态比较好的开源软件和标准,比如gRPC、K8S等,同时也融入到我们的开源框架中。 但在这个过程中,我们发现社区缺乏更好的服务治理标准,我们自己造轮子并不划算。 因此我们也和阿里巴巴进行了很多技术分享和交流,发现各有各的出发点,所以我们共同探讨了业界成熟的服务治理标准体系。 我们计划通过开源社区孵化服务治理相关实践,解决遇到的服务治理问题。

InfoQ:在多语言、多框架、异构基础设施的条件下,服务接口标准化需要解决的主要问题有哪些?

阿里云:我们需要解决的是微服务治理中概念碎片化以及无法与不同框架和语言互操作的问题。 致力于不同微服务框架和通信协议之间达成共识,形成云原生服务治理规范,让框架的使用者不会因为语言和框架的不同而碎片化,让架构师能够用统一的规范来描述自己的内部微服务架构。 这里要解决的主要问题包括:

得益于阿里巴巴内部的实践和微服务引擎MSE,天然支持Cloud、Dubbo等主流Java微服务框架; 同时,字节跳动、Dubbo社区、云社区也是共同发起者,所以初期会支持-Kitex、Cloud、Dubbo、Dubbo-go等框架。 我们欢迎更多的微服务框架开源方加入我们,提供丰富的支持,帮助微服务框架在企业落地。

InfoQ:其中包含哪些功能以及为什么?

阿里云:主要由三部分组成:

对于控制面来说,治理规则已经统一,用户不再需要绑定某个开源解决方案或者某个云厂商提供的服务。 不同的数据面和控制面只要接入Spec,就可以无缝接入现有的服务治理体系。

对于数据平面,提供了不同的访问方式:

InfoQ:项目中的“统一标准”是怎样的形式? 如何保证中立性?

阿里云:与其他首先提供实现方法的开源项目不同,阿里云从一开始就坚持标准优先的理念。 首先以标准的形式商定了服务治理的基本概念,定义了服务治理的配置和相应的语义。

它自诞生以来一直是一个社区项目,并通过2.0协议开源。 在后续微服务规范的制定和制定中,将以公开、透明、民主的方式制定和实施标准。 未来还将通过Issue、邮件列表、双周社区会议等机制,确保相关规范通过社区协作确定。 同时也向其他云厂商开放,欢迎大家共同构建。

InfoQ:该项目的未来计划是什么?

阿里云:异构微服务的统一管理、更多微服务的互联互通是阿里云自成立以来就确立的长期发展目标。

未来,社区将进一步完善服务注册与发现、服务治理能力,提供统一的服务治理控制面,吸纳更多企业和微服务框架加入社区。 同时我们看到控制面标准化、数据面多样化的趋势。 Dubbo-go-pixiu等网关作为数据面的流量入口,可以与SDK、Java Agent等方式的数据面进行能力全面对接。 为更多用户带来简单、一致、更加云原生的服务管理体验。

项目地址://-