Skip to content

如何设计Nepxion Discovery应用界面

HaojunRen edited this page Apr 15, 2023 · 25 revisions

全链路蓝绿灰度发布界面

推送蓝绿灰度发布策略到组和应用

① 【组】下拉框的数据,通过查询服务组名列表接口获取到全部的组列表

【刷新】按钮点击,即通过该接口重置【组】下拉框的数据

② 【应用】包括网关或者服务,如果选择网关,即蓝绿灰度发布策略推送到网关,如果选择服务,即蓝绿灰度发布策略推送到服务。【应用】下拉框的数据,根据上面选中的【组】,【服务类型】为[ "service", "gateway"],通过根据组名和服务类型查询服务名列表接口获取到所属组下所有网关和服务

【刷新】按钮点击,即通过该接口重置【应用】下拉框的数据,以及下面【参与蓝绿灰度发布的服务列表】

参与蓝绿灰度发布的服务列表

① 列表中【参与蓝绿灰度发布的服务列表】,根据上面选中的【组】,服务类型为[ "service"],通过根据组名和服务类型查询服务名列表接口获取到所属组下所有服务

② 列表中多个选中的服务不能包含【应用】下拉列表选择的服务,需要弹出对话框提示。例如,在【应用】下拉列表中选择了discovery-guide-service-a,那么【参与蓝绿灰度发布的服务列表】中就不能包含discovery-guide-service-a

注意:【应用】的下拉框和【参与蓝绿灰度发布的服务列表】的列表需要跟【组】的下拉框进行联动

建议:在存在多个【组】的情况下了,可以实现基于组的权限控制,一般来说,组的地位等同于部门,例如,有A组(部门)和B组(部门),等于用户张三属于A部门,那他无权对B部门的服务实施灰度蓝绿发布

配置中心蓝绿灰度发布结果

该区域显示目前配置中心正在生效的蓝绿灰度发布的规则策略,通过Xml格式显示。如果用拓扑图来展现,就更直观

蓝绿灰度发布条件

支持蓝绿发布、灰度发布和蓝绿灰度混合发布,支持内置参数。需要通过勾选启动对应的功能,未勾选的功能项默认灰掉

① 版本模式支持【动态(可排序)】和【静态(不可排序)】,分别对应到Yaml中的sort: versionsort: time字段,默认选中【动态(可排序)】

② 蓝绿发布支持【绿条件】和【蓝条件】两种条件,分别指旧版本链路和新版本链路的驱动条件,输入格式为SPEL表达式。【绿条件】和【蓝条件】的文本框不能留空,且两者不能相同

③ 灰度发布可以支持无限个【灰度条件】,输入格式为SPEL表达式,通过右侧的【+】和【-】进行增减。【灰度权重】指新版本链路所占的权重百分比(只允许输入0<=灰度权重<=100的整数值),例如,输入10,表示新版本链路所占的权重百分比为10%,旧版本链路所占的权重百分比为90%

所有灰度条件不能相同,跟蓝绿发布不同之处,灰度条件可以允许空(但只允许一个灰度条件为空)

④ 内置条件,需要首尾判断是否有空格

蓝绿灰度发布执行

① 【执行兜底】。点击之前,需要判断上面的条件是否设置正确,如果不正确,弹出对话框提示。点击之后,把界面元素拼装成Yaml格式,并弹出对话框做二次确认,以免策略不符合预期而引起生产环境流量异常

预览项中,Yaml格式需要自行拼装,Xml格式通过校验Yaml格式版本蓝绿灰度发布接口从Yaml转化成Xml

二次确认后,通过根据Yaml格式创建版本蓝绿灰度发布接口把规则策略由控制台从Yaml转化成Xml保存到配置中心

保存到配置中心后,再通过查询规则配置接口向配置中心查询Xml格式的规则策略,并在文本区域显示给用户

执行兜底结果:
Xml规则...

② 【执行发布】。操作同执行兜底

执行发布结果:
Xml规则...

③ 【执行回滚】。操作同执行兜底

回滚到上一次状态

④ 【结束发布】。操作同执行兜底

结束发布结果:
Xml规则...

⑤ 【查看策略】。操作同执行兜底,但不需要判断设置的条件,只是简单的查看配置中心的规则策略

查看策略结果:
Xml规则...

注意:每次执行完,最好把界面相关字段值保存到数据库中或者解析配置中心的Xml规则策略得到,使得下次发布可以重用,不需要手工再输入一遍

全链路自动化流量侦测测试

侦测策略

用户手工填入Yaml格式的侦测策略,具体内容参考mock-inspector.yaml

流量侦测测试结果

该区域显示流量侦测测试结果,内容来自于日志采集器。如果用拓扑图来展现,就更直观

侦测条件

用户手工选择或者输入侦测条件,具体内容参考application.properties

侦测执行

【执行侦测】,调用发起自动化流量侦测测试任务接口,启动自动化流量侦测测试任务,返回测试任务的全局唯一ID(group@@serviceId格式),根据该ID查询日志采集器,结果通过【流量侦测测试结果】显示

注意:每次执行完,最好把界面相关字段值保存到数据库中,使得下次发布可以重用,不需要手工再输入一遍

全链路自动化模拟流程测试

推送蓝绿灰度发布策略到组和应用

全链路蓝绿灰度发布界面操作一致

发布策略

用户手工填入Yaml格式的发布策略,三个策略具体内容,分别参考mock-version-release-basic.yamlmock-version-release-1.yamlmock-version-release-2.yaml

模拟流程测试结果

该区域显示模拟流程测试结果,内容来自于日志采集器。如果用拓扑图来展现,就更直观

模拟条件

用户手工选择或者输入模拟条件,具体内容参考application.properties

模拟执行

【执行模拟】,调用发起自动化模拟流程测试任务接口,启动自动化模拟流程测试任务,返回测试任务的全局唯一ID(group@@serviceId格式),根据该ID查询日志采集器,结果通过【模拟流程测试结果】显示

由于group@@serviceId名称的任务同一时间只允许运行一个,启动自动化模拟流程测试任务之前,通过获取当前正在运行的自动化模拟流程测试任务列表接口预先判断任务是否已经在执行,如果是,需要弹出对话框提示阻止用户启动

注意:每次执行完,最好把界面相关字段值保存到数据库中,使得下次发布可以重用,不需要手工再输入一遍




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally