草庐IT

过亿云资源运维管控难?华为云CloudMap带你喝着咖啡做运维

华为云开发者社区 2023-03-31 原文
摘要:华为云站点数字化平台CloudMap携手华为云图引擎GES打造云服务全栈拓扑,网络流量路径和云服务动态依赖等空间关系数据,支撑现网运行态风险识别和分钟级定位定界,构建业界领先的数字化能力。

本文分享自华为云社区《构建站点数字孪生,支撑确定性运维:华为云九洲云图CloudMap》,作者:HWCloudAI 。

随着云计算产业的蓬勃发展,站点数字化进程方兴未艾,如何管理云站点中数目众多的云资源和日益复杂的关系数据,通过数字化技术提前识别和发现现网风险,保证现网不出重大事故成为当前SRE面临的巨大挑战。面对海量业务和运维数据,如何构建站点级数字孪生平台,让数据发挥自身价值为SRE所用,是迈入DataOps的我们亟需解决的问题。为此,华为云站点数字化平台CloudMap(以下简称“九洲平台CloudMap”)携手华为云图引擎GES打造云服务全栈拓扑,网络流量路径和云服务动态依赖等空间关系数据,支撑现网运行态风险识别和分钟级定位定界,构建业界领先的数字化能力。

1、传统云资源运维面临的挑战

传统的云资源的运维存在诸多问题:对风险的管控仍然依赖人工而不是工具系统,风火水电基础设施在遇到问题时因无法定位影响只能全局管控,使影响面无故扩大。由于缺乏云资源的拓扑信息,部分资源依赖获取不到会导致许多问题的搁置……提升云资源的自动化运维能力,面临诸多挑战:

缺乏拓扑信息,依赖分析难

不同的云资源(如租户信息、云服务信息、机柜机房信息)来源于不同的系统中,从软件层面的云服务,到硬件层面的机房机柜等,都可能出现各种各样的问题,并且不同的云服务之间存在着一些依赖关系,一个云服务出问题可能影响其他云服务。

自动化程度低,问题定位依赖人工

即使拥有这些依赖关系并存储在配置管理数据库中,传统运维手段也只能定位问题节点,对于问题的爆炸半径(如问题节点依赖的机柜机房信息、或者受到其依赖的其他云服务)往往要依赖手工定位。

运维诉求杂,查询类型多

此外运维例行维护、故障定位需要进行类型繁多的查询,既需要有实时性要求的单点深度链路查询支撑运维,也需要全局类链路统计等偏离线任务的查询支撑下游任务。

2、九洲平台CloudMap的解决方案

图 1 九洲平台CloudMap数据概览

九洲平台CloudMap携手华为云图引擎GES完成了亿级空间数据构建,通过租户资源拓扑构建、网络流量路径分析、服务动态依赖发现打造全链路可视能力,构筑基于站点视角的数字化平台,实现分钟级问题定界。

图 2 云上资源拓扑关系示意图

2.1 租户资源拓扑构建

租户资源拓扑是将实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”。CloudMap通过整合各类系统中的数据信息,将华为云的租户与其相关租赁的物理机、虚拟机进行关系的构建并存储到华为云图引擎GES中,构建租户资源拓扑,使得依赖分析成为可能。在租户出现问题时第一时间能够通过“线”溯源回对应的租赁机器,并快速定位和解决其中的问题。

2.2 网络流量路径分析

华为云作为国内TOP云服务厂商,每日网络流量数据是比较庞大的,对于网络流量路径的管理和可视就如百度地图之于道路交通一样重要。而在运维场景下,掌握了网络流量路径可以进一步的补充由基础设施、基础服务到高阶服务之间的链路关系。CloudMap通过将请求流量进行监控,绘制出一个整体、清晰的物理和虚拟网络路径,可以准确截断问题的蔓延,提高自动化运维水平。

2.3 服务动态依赖发现

服务依赖发现是发现分布式软件系统中各组件依赖关系的过程,随着华为云的规模扩张,服务往往会被拆分为多个子服务。分布式软件系统通过不同子服务之间的组合,提供了稳定多样化的服务。与此同时,由于这些错综复杂的依赖关系,也伴随着很多连锁反应。其中最经典的案例就是由于单个服务的故障导致其在分布式软件系统中快速传播,导致大量的服务失效。在华为云的日常运维中,掌握各个服务的动态依赖是让云稳定可靠不可或缺的一项技术,它关系到了能否快速的找到保障服务的各个关联服务,避免其他服务引火烧身。CloudMap通过对服务间依赖的动态探测,构造全链路微服务依赖关系;同时借助GES的多跳查询能力,及时定位单服务问题的影响范围,避免大量服务失效,解决爆炸半径求解难的问题。

图 3 服务资源视图查询示例

3、华为云图引擎GES助力CloudMap高效检索图数据

从数据入库到计算查询,华为云图引擎GES为九洲平台CloudMap的存储、查询和分析提供了一站式解决方案。

3.1 图数据建模

  1. 在复杂、庞大数据量的背景下很难使用传统的结构化数据库进行数据建模,图引擎帮助快速构建点到点、点到边之间的数据建模;
  2. 从基础设施到云服务,使用图引擎构建全栈元数据,创建了过亿的点边关系,同时这些点、边支持增加属性机制,让每个点、边都能存储对应的属性;
  3. 数亿级属性数据实现小时级数据导入能力,保证了数据的时效性。

图 4 简化后的元数据截选

3.2 多样接口能力

华为云图引擎GES提供了丰富的API接口查询能力,CloudMap通过调用GES API,实现接口化的查询逻辑。目前CloudMap有数十个查询请求通过GES的Cypher、PipelineQuery、PathQuery等接口完成,这些请求响应和返回格式统一,便于处理,简化了CloudMap的处理逻辑,降低了运维诉求杂,查询类型多带来的业务开发成本。查询请求的高效响应,让长链路的空间关系数据得以快速查询并消费。

3.3 计算分析

  • 秒级响应能力:在图引擎的强大算力支持下,九洲平台CloudMap实现了多点、多跳查询的能力,在复杂的空间关系中快速、准确的找到需要的数据及关系。其中利用业界领先的技术,图引擎将大量6-8跳查询的响应控制在秒级,使得CloudMap进行实时故障影响面分析、设备依赖关系查询成为可能;
  • 离线计算能力:在对于需要庞大计算量、大量数据的分析型任务中,图引擎提供了异步任务能力,通过提前执行离线查询/算法任务并缓存结果,保证了结果获取的效率,支撑了CloudMap向下游应用提供数据;
  • 强大索引机制:图引擎支持像关系型数据库一样的索引构建能力,可以基于label、属性等进行索引创建,实现全图属性过滤任务的快速响应;
  • 稳定可靠的查询能力:由于数据量大、查询链路长的原因,在查询过程中往往会使用大量内存,图引擎通过内存管理技术控制总内存使用量,让查询稳定可靠。

图 5 CloudMap数据示例

4、九洲平台CloudMap的应用

作为站点数字化平台,九洲平台CloudMap在图引擎GES上搭建运维图谱图模型,建立站点空间数据关系。通过叠加空间数据和运维作业数据,从而打破数据孤岛、消除数据断裂点,形成运维知识图谱,释放数据价值,助力故障快速定位定界:

  • 空间数据:通过提供华为云站点三类空间数据(租户资源拓扑、网络流量路径与服务架构依赖),提供从租户资源实例、物理网络到基础设施风火水电等全局视野,支撑快速识别服务影响与租户影响范围;
  • 知识图谱:基于以上空间数据,结合告警、变更、监控与事件等核心运维数据,通过整合整理,再提取出故障线索,形成发现即定界能力,提升黑盒和自愈恢复触达效率。
  • 专家经验:在各个运维场景下不断固化专家经验并进行实践和沉淀,使得专家经验真正使能运维数据。

截止目前,CloudMap空间关系数据已覆盖30+云服务,在分布式缓存服务DCS、云数据库服务RDS、文档数据库服务DDS和大数据服务MRS等高阶服务故障快恢场景应用落地。除此之外,CloudMap还为站点风控、变更风控、故障快恢等多个运维场景提供了数据底座和计算能力,极大提升了现网运维效率,为华为云稳定可靠,为SRE确定性运维而持续努力。

 

点击关注,第一时间了解华为云新鲜技术~

有关过亿云资源运维管控难?华为云CloudMap带你喝着咖啡做运维的更多相关文章

  1. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  2. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  3. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  4. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  5. ruby - Chef LW 资源属性默认值如何引用另一个属性? - 2

    我正在尝试将一个资源属性的默认值设置为另一个属性的值。我正在为我正在构建的tomcat说明书定义一个资源,其中包含以下定义。我想要可以独立设置的“名称”和“服务名称”属性。当未设置服务名称时,我希望它默认为为“名称”提供的任何内容。以下不符合我的预期:attribute:name,:kind_of=>String,:required=>true,:name_attribute=>trueattribute:service_name,:kind_of=>String,:default=>:name注意第二行末尾的“:default=>:name”。当我在Recipe的新block中引用我

  6. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

  7. 西安华为OD面试体验 - 2

    西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,

  8. ruby - block 看不到方法( Chef 资源) - 2

    假设我们有两个资源:template'template1'doowner'root'group'root'endtemplate'template2'doowner'root'group'root'end我想在资源中重用代码。但是,如果我在配方中定义了一个过程,您会得到owner、group等的NoMethodError。为什么会这样?词法范围没有什么不同,是吗?因此,我必须使用self.instance_eval&common_cfg。common_cfg=Proc.new{owner'root'group'root'}template'template1'docommon_cfg.

  9. ruby - IO::EAGAINWaitReadable:资源暂时不可用 - 读取会阻塞 - 2

    当我尝试使用“套接字”库中的方法“read_nonblock”时出现以下错误IO::EAGAINWaitReadable:Resourcetemporarilyunavailable-readwouldblock但是当我通过终端上的IRB尝试时它工作正常如何让它读取缓冲区? 最佳答案 IgetthefollowingerrorwhenItrytousethemethod"read_nonblock"fromthe"socket"library当缓冲区中的数据未准备好时,这是预期的行为。由于异常IO::EAGAINWaitReadab

  10. ruby-on-rails - Ruby on Rails URL 中的资源映射(RESTful API) - 2

    我很难给出正确的答案,所以我会在这里征求我的问题。我正在研究RESTFulAPI。自然地,我有多种资源,其中一些由父子关系组成,一些是独立资源。我有点困难的地方是弄清楚如何让那些将根据我的API构建客户端的人更容易。情况是这样的。假设我有一个“街道”资源。每条街道都有多个住宅。SoStreet:has_manytoHomes和Homes:belongs_toStreet。如果用户想要在特定的home资源上请求HTTPGET,以下应该可行:http://mymap/streets/5/homes/10这允许用户获取ID为10的房屋的信息。直截了当。我的问题是,我授予用户访问权限是否违反了

随机推荐