查看原文
其他

当服务网格恋上云原生

超图集团 2022-07-17


云原生GIS是基于容器化技术、微服务架构和自动化编排技术搭建的高可用、高并发、高弹性的云GIS计算架构,它是集服务发布、门户定制、数据存储分析、运维管理为一体的GIS解决方案。云原生GIS不单单拥有全面的GIS能力,还能保证系统更稳定运行,实现细粒度的弹性伸缩与灵活部署。由于其架构的特殊性,单体应用被解耦,由多个小而专一的微服务组成,常常以多服务协作的方式提供应用能力。


云原生GIS架构上突破的同时,也带来了运维管理方面的变化,为了全面提升云原生GIS的运维管理能力,我们考虑从以下三方面入手:


1. 服务更新。直接更新服务往往会因测试不全面导致更新后用户体验不佳,特别是多个服务同时更新,难以把控产品质量。


2. 通信监测。服务通信会产生无数的请求,因为无法监测服务请求状态,当出现请求失败、请求超载等状况时,故障服务不能及时定位。


3. 流量监测。服务内部通信如同“暗箱”一样,无从得知流量的方向与顺序,难以运维。

要满足以上需求,就需要标准化的流量管理与监测工具,以强化运维管理手段,因此,经过层层筛选与预研,服务网格技术进入了我们视野。




服务网格的概念与作用


先一起了解一下服务网格技术。服务网格(Service Mesh)是用于控制微服务访问、监控服务流量的软件基础结构层,它加入了代理机制(称为“sidecar”),与微服务并行运行。sidecar取代了原微服务直接通信,由sidecar完成服务间的路由,并且全程跟踪记录。


服务网格在服务连接和流量控制方面有较大提升,它侧重于管理服务内部通信,能够可视化通信链路,让用户更好地观察服务动态,避免多服务环境下的通信冗余。


服务网格技术引入前(左)

服务网格技术引入后(右)


服务网格在云原生GIS中的应用


服务网格技术应用于云原生GIS中,主要实现了灰度发布、服务度量、服务追踪三个功能。


灰度发布——助力服务更新 ▶▶


能解释


灰度发布是实现服务新旧版本间平滑过渡的一种发布方法,利用灰度发布,管理员可以在新版本上线前收集用户反馈、修复版本漏洞、把控产品质量、提升用户体验。配合服务的局部升级能力,可只对单个服务进行灰度发布,实现微服务的滚动更新,完善上线流程,防止大批量服务更新带来的风险。


用户价值


当项目涉及定制服务或上线修复漏洞的新版本时,直接上线存在一定的风险,比如上线后影响其他功能正常使用,或因为测试不足导致用户体验不佳。基于此,SuperMap 云原生GIS推出局部升级结合灰度发布的方法,即对定制的服务或者修复了漏洞的某个微服务进行局部更新上线,通过灰度发布策略筛选出部分用户体验新版本,其余用户仍沿用当前稳定版本,确保服务稳定后再全面上线。


产品中的应用


云原生GIS支持两种灰度发布的策略,第一种是通过设置流量比例来控制使用新旧版本服务的用户比例。如下图所示,当管理员设置服务灰度发布的流量比例为25%时,会随机分配25%的用户试用新版本v2,剩下75%的用户仍使用现有版本v1;第二种策略是通过设置HTTP请求头与匹配值来区分用户、选取用户使用不同服务,例如,设置User-Agent请求头的匹配值,来识别高版本的浏览器,让使用高版本浏览器的用户先行体验新版本v2的功能。

 

灰度发布策略-设置流量比例示意图


服务度量——完善通信监测 ▶▶


功能解释


服务度量是指对服务通信进行统计分析,以数据的形式展现GIS站点与微服务的通信状态,帮助用户作出合理的预测、评估、控制和改善。


用户价值


服务通信质量在很大程度上影响系统的运行速度与稳定性,当您GIS站点的响应变得缓慢,检查后却发现服务均正常运行,系统资源也很充足,苦于没有其他手段监测服务的通信状态,通信出现问题时难以排查;有了服务度量,您可以监测每个服务的多项通信指标,做到精准的通信故障定位。


产品中的应用


GIS站点的度量指标包括全站点请求量、请求成功率、HTTP/HTTPS负载、gRPC负载、TCP负载等;微服务的度量指标包括发送请求量、响应请求量、客户端工作负载、服务工作负载等。通过这些指标,管理员能够更全面地掌握站点内服务的通信状态,在状态欠佳时及时发现并解决。例如,访问高峰期随着访问人数增多、负载增加,服务响应逐渐变慢,这时可通过查看服务的HTTP负载,找出请求量过大的服务,对服务节点进行横向扩展,解决高并发致使的响应缓慢。


GIS应用站点度量指标


服务追踪——流量监测可视化 ▶▶


功能解释


服务追踪是指通过监测GIS站点内部服务的请求与调用,可视化服务通信链路,让服务链路变得透明。服务追踪实现了分布式链路追踪,可跟进参与请求的服务和参与顺序,使每个请求的步骤清晰可见。


用户价值


由于微服务架构下的服务众多,内部服务调用复杂(一个请求需调用多个服务),相比传统单体应用,微服务架构下的通信问题更加难以定位,异常也更难追溯。服务追踪可以追溯所有发生过请求关系的服务,全局掌控系统内部实时服务请求,并将请求细化到每一个参与的微服务,从而理清微服务间的请求关系,在请求异常时能够准确、快速定位,让异常“有迹可循”。


产品中的应用


服务追踪分为GIS站点追踪与单个微服务追踪。GIS站点追踪记录了整个GIS站点一定时间内被调用过的服务,以及服务的请求关系,统计了被调用的服务数量、应用数量、链路数量等信息,支持查看服务流量的进出详情。例如,站点拓扑图中的红色链路表示该链路的服务请求失败率高于20%,用户可通过排查红色链路,找出参与请求的服务,并通过查看服务日志,查明失败原因,对故障服务进行修复。


云原生GIS站点的全站微服务追踪(部分)


单个微服务追踪记录了该微服务发生请求的时间点以及请求耗时,每一条请求均可查看追踪详情,即请求过程中参与请求的微服务以及它们的参与顺序。例如,使用搜索过滤功能,列出服务节点HTTP状态码为400的链路,在详情页面查看导致请求失败的微服务,并对该微服务一键重新部署,解决通信故障。


云原生GIS站点的单个微服务追踪(部分)


小结 ▶▶


综上所述,为了提升云原生GIS的运维管理能力,我们引入了服务网格技术。利用灰度发布结合局部升级的方法,让服务上线更加平滑、稳定。服务度量丰富了监测指标,让访问流量可观测。链路追踪可视化服务请求,让异常请求“有迹可循”。


文/云产品研发中心 周世杰 王伊湋




近期回顾

2021.4.22


第四届数字中国建设峰会,这些GIS创新展示不容错过!

GIS赋能数字孪生,超图携手伙伴助力天津数字化转型

2020年全球癌症统计,这些癌症信息你了解吗?

地图慧企业平台3.0版重磅来袭

超图率先获Huawei Validated认证 !全国首家完成华为鲲鹏技术全栈适配

GIS工程师认证开启!速来

2021 SuperMap杯高校GIS大赛(中国赛区)开赛啦!

央视春晚背后的AR技术,用在测图上是什么体验?


欢迎转载~

都点一下,天天好心情!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存