基于华为云GES的九洲平台确定性运维实践
作者:华为云GES团队 华为云SRE九洲团队
1 制约运维自动化的三大挑战
传统的云资源运维存在诸多问题:对风险的管控仍然依赖人工而不是工具系统,风火水电基础设施在遇到问题时因无法定位影响只能全局管控,使影响面无故扩大。由于缺乏云资源的拓扑信息,部分资源依赖获取不到会导致许多问题的搁置……提升云资源的自动化运维能力,面临诸多挑战:
缺乏拓扑信息,依赖分析难
不同的云资源(如租户信息、云服务信息、机柜机房信息)来源于不同的系统中,从软件层面的云服务,到硬件层面的机房机柜等,都可能出现各种各样的问题,并且不同的云服务之间存在着一些依赖关系,一个云服务出问题可能影响其他云服务。
自动化程度低,问题定位依赖人工
即使拥有这些依赖关系并存储在配置管理数据库中,传统运维手段也只能定位问题节点,对于问题的爆炸半径(如问题节点依赖的机柜机房信息、或依赖的其他云服务)往往要依赖手工定位。
运维诉求杂,查询类型多
此外运维例行维护、故障定位需要进行类型繁多的查询,既需要有实时性要求的单点深度链路查询支撑运维,也需要全局类链路统计等偏离线任务的查询支撑下游任务。
2 华为云图引擎GES助力CloudMap高效检索图数据
从数据入库到计算查询,华为云图引擎GES为九洲平台CloudMap的存储、查询和分析提供了一站式解决方案。
2.1 高效数据导入,保证数据时效
· 在复杂、庞大数据量的背景下很难使用传统的结构化数据库进行数据建模,图引擎帮助快速构建点到点、点到边之间的数据建模;
· 从基础设施到云服务,使用图引擎构建全栈元数据,创建了过亿的点边关系,同时这些点、边支持增加属性机制,让每个点、边都能存储对应的属性;
· 数亿带索引的属性数据小时级数据导入,保证了数据的时效性。
图 1 简化后的元数据截选
2.2 全程一套查询API,降低开发成本
华为云图引擎GES提供了丰富的API接口查询能力。图引擎团队支撑CloudMap团队了解和学习相关查询接口和Cypher语法,实现接口化的查询逻辑。CloudMap的查询请求通过GES的Cypher、PipelineQuery、PathQuery等接口完成,这些请求响应和返回格式统一,便于处理,简化了CloudMap的处理逻辑,降低了运维诉求杂,查询类型多带来的业务开发成本。查询请求的高效响应,让长链路的空间关系数据得以快速查询并消费。
2.3 同时支持离线/在线任务,“一份数据做两件事情”
· 秒级响应能力:在图引擎的强大算力支持下,九洲平台CloudMap实现了多点、多跳查询的能力,在复杂的空间关系中快速、准确的找到需要的数据及关系。其中利用业界领先的技术,图引擎将大量6-8跳查询的响应控制在秒级,使得CloudMap进行实时故障影响面分析、设备依赖关系查询成为可能;
· 离线计算能力:在对于需要庞大计算量、大量数据的分析型任务中,图引擎提供了异步任务能力,通过提前执行离线查询/算法任务并缓存结果,保证了结果获取的效率,支撑了CloudMap向下游应用提供数据;
· 强大索引机制:图引擎支持像关系型数据库一样的索引构建能力,可以基于label、属性等进行索引创建,实现全图属性过滤任务的快速响应;
· 稳定可靠的查询能力:由于数据量大、查询链路长的原因,在查询过程中往往会使用大量内存,图引擎通过内存管理技术控制总内存使用量,让查询稳定可靠。
图 2 CloudMap空间数据3D拓扑示例
3 九洲平台CloudMap解决方案
图 3 CloudMap数据概览
华为云图引擎GES团队支持九洲平台CloudMap完成了亿级空间数据构建,数十个查询API落地九洲平台支撑每天的业务查询。九洲平台通过租户资源拓扑构建、网络流量路径分析、服务动态依赖发现打造全链路可视能力,构筑基于站点视角的数字化平台,实现分钟级问题定界。
图 4 CloudMap云上资源拓扑示意图
3.1 构建租户资源拓扑,使得依赖分析成为可能
租户资源拓扑是将实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”。CloudMap通过整合各类系统中的数据信息,将华为云的租户与其相关租赁的物理机、虚拟机进行关系的构建并存储到华为云图引擎GES中,构建租户资源拓扑,使得依赖分析成为可能。配合GES提供的查询语句和API,在租户出现问题时第一时间能够通过“线”溯源回对应的租赁机器,并快速定位和解决其中的问题。
图 5 CloudMap租户资源拓扑示意图
3.2 绘制流量路径,截断问题蔓延
华为云作为国内TOP云服务厂商,每日网络流量数据是比较庞大的,对于网络流量路径的管理和可视就如地图之于道路交通一样重要。而在运维场景下,掌握了网络流量路径可以进一步的补充由基础设施、基础服务到高阶服务之间的链路关系。CloudMap通过将请求流量进行监控,绘制出一个整体、清晰的物理和虚拟网络路径,可以准确截断问题的蔓延,提高自动化运维水平。
图 6 CloudMap高阶资源关联的物理网络拓扑示意图
3.3 服务依赖动态发现,爆炸半径自动呈现
服务依赖发现是发现分布式软件系统中各组件依赖关系的过程,随着华为云的规模扩张,服务往往会被拆分为多个子服务。分布式软件系统通过不同子服务之间的组合,提供了稳定多样化的服务。与此同时,由于这些错综复杂的依赖关系,也伴随着很多连锁反应。其中最经典的案例就是由于单个服务的故障导致其在分布式软件系统中快速传播,导致大量的服务失效。在华为云的日常运维中,掌握各个服务的动态依赖是让云稳定可靠不可或缺的一项技术,它关系到了能否快速的找到保障服务的各个关联服务,避免其他服务引火烧身。使用GES的多跳查询能力,CloudMap及时定位单服务问题的影响范围,避免大量服务失效,解决爆炸半径求解难的问题。
图 7 CloudMap云服务资源拓扑示例
4 九洲平台CloudMap的应用
作为站点数字化平台,九洲平台CloudMap在图引擎GES上搭建运维图模型,建立站点空间数据关系。通过叠加空间数据和运维作业数据,从而打破数据孤岛、消除数据断裂点、沉淀专家经验,形成运维知识图谱,释放数据价值,助力故障快速定位定界。
图 8 九洲数据流
截止目前,CloudMap在GES上存储的空间关系数据已覆盖52+云服务,在分布式缓存服务DCS、云数据库服务RDS、文档数据库服务DDS和大数据服务MRS等高阶服务故障快恢场景应用落地。除此之外,CloudMap还为站点风控、变更风控、故障快恢、站点工作台等多个运维场景提供了数据底座和计算能力,极大提升了现网运维效率。
GES在此过程中也为CloudMap提供了数据底座,助力其挖掘关联数据,释放数据的潜在价值。目前,GES图引擎已经在智能运维、数据血缘、制造业物料管理、金融反欺诈、社交推荐、企业关联关系等多个业务场景支撑客户达成客户业务目标,未来GES会探索更多业务场景,帮助更多客户和开发者使用图,用好图,并取得业务成功。
- 点赞
- 收藏
- 关注作者
评论(0)