一种可视化微服务灰度发布的方法与流程

未命名 10-16 阅读:92 评论:0


1.本发明属于计算机技术领域,特别涉及一种可视化微服务灰度发布的方法。


背景技术:

2.微服务是一个新兴的软件架构,即把一个大型的单个应用程序和服务拆分为数十个支持微服务,一个微服务的策略可以让工作变得更为简便,它可以扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
3.基于微服务的上述优点,微服务逐渐成为当前的热门话题,并且被越来越多的企业推广。在微服务架构中,灰度发布为快速迭代的微服务不停机平稳升级提供有效的保障。灰度发布是一种服务平滑过渡升级的发布方式。现有灰度发布通过编写properties、yaml等文件配置,或通过配置中心,使用文本编辑框通过xml、json、yaml进行编辑修改配置项,从而来达到服务的发布。这种配置方式极度考验运维人员对系统配置项的掌握情况,运维人员对线上的服务无法一目了然,极其容易配错而导致配置无效等,且操作复杂、效率低。


技术实现要素:

4.本发明的目的在于提供一种可视化微服务灰度发布的方法,以框图或图标的形式在可视化界面上展示微服务实例、及各个服务元数据信息,解决现有灰度发布的配置方式无法一目了然,操作复杂、效率低的问题。
5.为达成上述目的,本发明的解决方案为:一种可视化微服务灰度发布的方法,包括以下步骤:s1、将分布式系统中的服务网关、服务集群、服务实例、发布策略和生产调用关系通过不同颜色、不同形状的框图或图标显示,通过拖拽图框或图标的方式在可视化系统中建立服务网关和服务之间、服务和服务之间的生产调用关系,形成服务拓扑图;s2、通过元数据框图服务器将表示服务信息的所有元数据用框图和文字描述表示,右键点击服务集群的框图或图标以打开配置中心,在配置中心中,根据元数据信息,通过拖拉图框或图标进行路由规则的配置,从而生成路由策略;s3、灰度用户请求服务,服务网关接收用户信息并匹配对应的路由策略,运维人员通过左键点击服务集群的框图来打开服务实例详情弹框,所述服务实例详情弹框显示所有在服务集群的服务实例信息以及流量权重占比,通过拖拽调整指定服务实例的流量权重,使指定服务实例灰度上线,然后逐渐调大新版本服务实例的流量权重以及逐渐调小旧版本服务实例的流量权重,最终将所有的流量从旧版本服务实例迁移到新版本服务实例上,实现无损下线旧版本服务实例。
6.进一步,步骤s3的路由策略生成后,创建多个测试用例,测试用例根据路由规则自动化完成路由策略测试,通过预设定的预估值和收集到的采样信息,自动生成测试结果文档,通过校验侦测分析路由策略是否符合预期并最终生成报告,若路由策略符合预期,则调整流量权重,将所有流量从旧版本服务实例迁移到新版本服务实例上;若路由策略不符合
预期,则调整路由策略直至路由策略符合预期。
7.进一步,在步骤s1和s2中,所述服务网关通过带网关图标的方形框图显示,所述服务集群通过方形框图显示,所述服务实例通过圆形图显示,所述发布策略通过菱形图显示,所述生产调用关系通过箭头显示,所述元数据通过椭圆框图表示。
8.进一步,在步骤s2中,所述元数据包括基础元数据和请求信息元数据,所述基础元数据包括版本号和服务名,所述请求信息元数据包括客户端ip、请求头部、请求cookie、请求参数和请求地址。
9.进一步,在步骤s2中,路由规则的配置根据流量权重、客户端ip、请求地址、请求参数、请求头部、版本号和服务名的元数据信息进行配置一种或多种路由策略,在路由策略生效后且服务实例特征命中路由策略的情况下,流量就会迁移到新版本服务实例上。
10.进一步,在步骤s3中,一次数据请求通过服务网关在流经多个不同服务集群的分支情况下产生一条链路,数据流量在流经每个服务实例都会进行颜色标记,未调用到的服务实例的颜色为灰色,正常请求的服务实例为绿色,异常请求的服务实例使用红色来标记。
11.进一步,一个服务集群内具有一个或多个服务实例,每个服务实例通过标志性的元数据版本号进行区分不同的版本。
12.进一步,在步骤s1中,所述可视化系统包括基于spring cloud微服务框架上的nacos组件、自定义负载调度器、通过react前端框架使用的d3.js或echarts图表组件,通过nacos组件构建云原生应用的动态服务发现、配置管理和服务管理可视化平台,在可视化平台上进行服务管理、路由配置和监控;所述自定义负载调度器根据获取服务的元数据信息以及流量权重,匹配对应设置的服务实例;通过d3.js或echarts图表组件,开发一个基于b/s可视化框图配置界面,通过不同形状的框图和图标形式,显示各个服务元数据信息、流量、服务网关和服务集群。
13.采用上述方案后,本发明的有益效果在于:本发明将分布式系统中的服务网关、服务集群、服务实例、发布策略和生产调用关系通过不同颜色、不同形状的框图或图标显示,所有元数据用框图和文字描述表示,网关和服务集群之间以及不同服务集群之间的生产调用关系通过拓扑图方式呈现,运维人员对线上的服务一目了然,运维人员只需要打开可视化系统,通过可视化界面实时监测服务拓扑图,使用鼠标点击、拖拽、下拉即可完成服务实例的上下线、编排、监控、流量切换等操作,简化运维人员的工作,提升效率,既简单又安全且高效。
附图说明
14.图1为本发明微服务灰度发布方法的流程框图;图2为本发明系统的构架框图;图3为本发明框图或图标对应的表示关系图;图4为本发明元数据框图服务器的页面示意图;图5为本发明服务集群b的显示框图;图6为本发明实施例的服务拓扑图;图7为本发明路由策略配置的页面示意图;图8为本发明链路日志的页面示意图;
图9为本发明服务集群a的服务实例详情弹框示意图;图10为本发明服务集群b的服务实例详情弹框示意图。
具体实施方式
15.以下结合附图及具体实施例对本发明做详细的说明。
16.如图1-10所示,本发明提供一种可视化微服务灰度发布的方法,包括以下步骤:s1、将分布式系统中的服务网关、服务集群、服务实例、发布策略和生产调用关系通过不同颜色、不同形状的框图或图标显示,通过拖拽图框或图标的方式在可视化系统中建立服务网关和服务之间、服务和服务之间的生产调用关系,形成服务拓扑图,如图6所示;具体如图3所示,所述服务网关可通过带网关图标的方形框图显示,所述服务集群可通过方形框图显示,所述服务实例可通过圆形图显示,所述发布策略可通过菱形图显示,所述生产调用关系可通过箭头显示,服务网关和服务集群之间以及不同服务集群之间的发布策略通过箭头连接;s2、如图4所示,通过元数据框图服务器将表示服务信息的所有元数据用框图和文字描述表示,所述元数据包括基础元数据和请求信息元数据,所述基础元数据包括版本号和服务名,所述请求信息元数据包括客户端ip、请求头部、请求cookie、请求参数和请求地址等,均通过椭圆框图以及椭圆框图内的文字表示;右键点击服务集群的框图或图标以打开配置中心,如图7所示,所述配置中心也为一可视化弹窗界面,在配置中心中,通过拖拉图框或图标就可根据元数据进行路由规则的配置,从而生成路由策略;s3、灰度用户请求服务,服务网关接收用户信息并匹配对应的路由策略,重点参照图6,一个用户请求服务往往需要同时调用多个服务,例如当一个用户请求a服务的时候,可能需要调用到b服务和c服务,那么这时候的b服务和c服务就是生产者,a服务是消费者,他们由多个单个服务集群关联成多服务集群的链路关系,这时的一个服务集群可能同时存在一个或多个的实例,每个实例通过标志性的元数据版本号进行区分不同的版本,例如服务集群b中,如图5所示,具有新版本的服务实例:[v1.1]10.83.3.1、[v1.1]10.83.3.2、[v1.1]10.83.3.3,和旧版本服务实例:[v1.0]10.83.3.4、[v1.0]10.83.3.5、[v1.0]10.83.3.6,新版本服务实例对应新版本灰度测试用户策略,旧版本服务实例对应原策略;一次数据请求通过服务网关在流经多个不同服务集群的分支情况下产生一条链路,数据流量在流经每个服务实例都会采用颜色或其他的方式进行标记,在一实施例中,不同情况的服务实例采用颜色标记,未调用到的服务实例的颜色为灰色,即未上线的服务实例为灰色的圆形图显示,正常请求的服务实例为绿色,即正常的服务实例为绿色的圆形图显示,异常请求的服务实例使用红色来标记,即故障的服务实例由红色的圆形图显示;如图3所示,在另一实施例中,用实线空心圆标记正常请求的服务实例,用虚线空心圆标记未上线的服务实例,用实心圆标记故障的服务实例;因此,如图6所示,服务集群a中,服务实例[v1.0]10.83.3.4、[v1.0]10.83.3.5、[v1.0]10.83.3.6为正常请求服务实例,[v1.1]10.83.3.1为未上线的服务实例,[v1.0]10.83.3.3为故障服务实例,本发明不仅通过图形来表示服务实例,还通过颜色或其他方式标记服务实例,使每个服务实例的状态和深度一目了然;服务实例在启动之后并不会马上有请求流量,服务实例刚启动会在对应的服务集
群框图中呈现灰色,此时运维人员需通过左键点击服务集群的框图来打开服务实例详情弹框,如图9和图10所示,该服务实例详情弹框也为一可视化界面,所述服务实例详情弹框显示所有在服务集群的服务实例信息以及流量权重占比,所述流量权重以进度条的形式显示,通过左右拖拽可调节流量权重,向左拖拽可使指定服务实例的具有流量权重,使指定的服务实例灰度上线,该指定的服务实例可包括新版本服务实例和旧版本服务实例,然后逐渐调大新版本服务实例的流量权重以及逐渐调小旧版本服务实例的流量权重,旧版本服务实例在没有流量的情况下进行下线,最终将所有的流量从旧版本迁移实例到新版本服务实例上,实现无损下线旧版本服务实例,完成灰度发布。
[0017]
此外,本发明在服务实例启动后,没有只将新版本服务实例上线,新版本服务实例和旧版本服务实例都上线,可同时使用,然后再逐步调大新版本服务实例的流量权重以及逐步调小旧版本服务实例的流量权重,从而没有损耗地将旧版本服务实例的流量迁移到新版服务实例上,实现无损下线旧版服务实例。
[0018]
重点参照图7,所述配置中心的弹框上有策略名称、策略下拉选择框、插入生产服务按键和插入条件按键;路由规则的配置可根据流量权重、客户端ip、请求地址、请求参数、请求头部以及用户登录信息,即版本号和服务名等元数据进行配置一种或多种策略,以图7所示的配置策略为例,路由策略名称为:10.83开头网段可访问服务b新增功能1,即上线服务集群b的新版本服务实例,拖拽插入服务集群a,点击插入条件元数据,打开元数据框图服务器,拖入用户的ip,并设置包含10.83的ip地址的条件,点击插入生产服务,搜索服务集群b,勾选新版本服务实例,将新版本服务实例布署到服务器,设置每个新版本服务实例的流量权重,点击策略下拉选择框选择权重,生成路由策略;在灰度用户请求a服务后,服务网关根据路由策略匹配用户的ip地址是否符合10.83开头,若符合,则使用上面创建的路由策略模式服务网关将路由策略逐级下传,网关请求服务集群a,服务集群a在调用服务集群b的时候会根据路由策略去请求服务b新增功能1的实例,流量从服务集群a到服务集权b的过程中,调节流量权重使新版本服务实例的流量权重达到路由策略设置的值,路由策略生效,服务实例特征命中路由策略的情况,流量迁移到新版本服务实例上,实现新版本服务实例的上线。
[0019]
重点参照图8,点击一条链路可展示该链路所有服务的日志信息,所述日志信息包括请求时间、请求状态、客户端信息、请求内容和服务拓扑图等,可通过分页表格的形式展示。
[0020]
作为优选方案,步骤s3的路由策略生成后,可进行测试用例管理,创建多个测试用例,即模拟灰度用户请求服务,测试用例根据路由规则自动化完成路由策略测试,通过预设定的预估值和收集到的采样信息,自动生成测试结果文档,通过校验侦测分析路由策略是否符合预期并最终生成报告,若路由策略符合预期,则进行灰度发布,调整流量权重,将所有流量从旧版本服务实例迁移到新版本服务实例上;若路由策略不符合预期,则调整路由策略直至路由策略符合预期。
[0021]
本发明所用的可视化系统包括基于spring cloud微服务框架上的nacos组件、自定义负载调度器、通过react前端框架使用的d3.js或echarts图表组件,通过nacos组件可构建云原生应用的动态服务发现、配置管理和服务管理可视化平台,在可视化平台上进行服务管理,即建立服务拓扑图,以及进行路由配置和监控;所述自定义负载调度器为对负载
调度器(loadbalancer、ribbon)的拓展,可根据获取服务的元数据信息以及流量权重,匹配对应设置的服务实例,从而可在配置中心调整路由规则以及在服务实例详情弹框调整流量权重;通过d3.js或echarts图表组件,可开发一个基于b/s可视化框图配置界面,通过不同形状的框图和图标等形式,显示各个服务元数据信息、流量、服务网关和服务集群。
[0022]
以上所述仅为本发明的较佳实施例,并非对本案设计的限制,凡依本案的设计关键所做的等同变化,均落入本案的保护范围。

技术特征:
1.一种可视化微服务灰度发布的方法,其特征在于:包括以下步骤:s1、将分布式系统中的服务网关、服务集群、服务实例、发布策略和生产调用关系通过不同颜色、不同形状的框图或图标显示,通过拖拽图框或图标的方式在可视化系统中建立服务网关和服务之间、服务和服务之间的生产调用关系,形成服务拓扑图;s2、通过元数据框图服务器将表示服务信息的所有元数据用框图和文字描述表示,右键点击服务集群的框图或图标以打开配置中心,在配置中心中,根据元数据信息,通过拖拉图框或图标进行路由规则的配置,从而生成路由策略;s3、灰度用户请求服务,服务网关接收用户信息并匹配对应的路由策略,运维人员通过左键点击服务集群的框图来打开服务实例详情弹框,所述服务实例详情弹框显示所有在服务集群的服务实例信息以及流量权重占比,通过拖拽调整指定服务实例的流量权重,使指定服务实例灰度上线,然后逐渐调大新版本服务实例的流量权重以及逐渐调小旧版本服务实例的流量权重,最终将所有的流量从旧版本服务实例迁移到新版本服务实例上,实现无损下线旧版本服务实例。2.如权利要求1所述的一种可视化微服务灰度发布的方法,其特征在于:步骤s3的路由策略生成后,创建多个测试用例,测试用例根据路由规则自动化完成路由策略测试,通过预设定的预估值和收集到的采样信息,自动生成测试结果文档,通过校验侦测分析路由策略是否符合预期并最终生成报告,若路由策略符合预期,则调整流量权重,将所有流量从旧版本服务实例迁移到新版本服务实例上;若路由策略不符合预期,则调整路由策略直至路由策略符合预期。3.如权利要求1所述的一种可视化微服务灰度发布的方法,其特征在于:在步骤s1和s2中,所述服务网关通过带网关图标的方形框图显示,所述服务集群通过方形框图显示,所述服务实例通过圆形图显示,所述发布策略通过菱形图显示,所述生产调用关系通过箭头显示,所述元数据通过椭圆框图表示。4.如权利要求1所述的一种可视化微服务灰度发布的方法,其特征在于:在步骤s2中,所述元数据包括基础元数据和请求信息元数据,所述基础元数据包括版本号和服务名,所述请求信息元数据包括客户端ip、请求头部、请求cookie、请求参数和请求地址。5.如权利要求4所述的一种可视化微服务灰度发布的方法,其特征在于:在步骤s2中,路由规则的配置根据流量权重、客户端ip、请求地址、请求参数、请求头部、版本号和服务名的元数据信息进行配置一种或多种路由策略,在路由策略生效后且服务实例特征命中路由策略的情况下,流量就会迁移到新版本服务实例上。6.如权利要求1所述的一种可视化微服务灰度发布的方法,其特征在于:在步骤s3中,一次数据请求通过服务网关在流经多个不同服务集群的分支情况下产生一条链路,数据流量在流经每个服务实例都会进行颜色标记,未调用到的服务实例的颜色为灰色,正常请求的服务实例为绿色,异常请求的服务实例使用红色来标记。7.如权利要求1所述的一种可视化微服务灰度发布的方法,其特征在于:一个服务集群内具有一个或多个服务实例,每个服务实例通过标志性的元数据版本号进行区分不同的版本。8.如权利要求1所述的一种可视化微服务灰度发布的方法,其特征在于:在步骤s1中,所述可视化系统包括基于spring cloud微服务框架上的nacos组件、自定义负载调度器、通
过react前端框架使用的d3.js或echarts图表组件,通过nacos组件构建云原生应用的动态服务发现、配置管理和服务管理可视化平台,在可视化平台上进行服务管理、路由配置和监控;所述自定义负载调度器根据获取服务的元数据信息以及流量权重,匹配对应设置的服务实例;通过d3.js或echarts图表组件,开发一个基于b/s可视化框图配置界面,通过不同形状的框图和图标形式,显示各个服务元数据信息、流量、服务网关和服务集群。

技术总结
本发明公开一种可视化微服务灰度发布的方法,先将服务网关、服务集群、服务实例、发布策略和生产调用关系通过框图或图标显示,通过拖拽的方式在可视化系统中建立服务拓扑图;再将所有元数据用框图和文字描述表示,右键点击服务集群的框图或图标以打开配置中心,在配置中心中下拉元数据进行路由规则的配置,生成路由策略;灰度用户请求服务后,服务网关接收用户信息并匹配对应的路由策略,左键点击服务集群的框图打开服务实例详情弹框,通过拖拽调整指定服务实例的流量权重,使其上线,然后逐渐调大新版本服务实例的流量权重,将所有的流量迁移到新版本服务实例上,本发明解决了现有灰度发布的配置方式无法一目了然,操作复杂、效率低的问题。率低的问题。率低的问题。


技术研发人员:陈艺顺 王春凯 肖文金 林建昌 王勇 阿黎明 郑广域 谢志鹏 廖福辉
受保护的技术使用者:厦门民航凯亚有限公司
技术研发日:2023.09.04
技术公布日:2023/10/11
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐