摘要:华为云站点数字化平台CloudMap携手华为云图引擎GES打造云服务全栈拓扑,网络流量路径和云服务动态依赖等空间关系数据,支撑现网运行态风险识别和分钟级定位定界,构建业界领先的数字化能力。
本文分享自华为云社区《构建站点数字孪生,支撑确定性运维:华为云九洲云图CloudMap》,作者:HWCloudAI 。
随着云计算产业的蓬勃发展,站点数字化进程方兴未艾,如何管理云站点中数目众多的云资源和日益复杂的关系数据,通过数字化技术提前识别和发现现网风险,保证现网不出重大事故成为当前SRE面临的巨大挑战。面对海量业务和运维数据,如何构建站点级数字孪生平台,让数据发挥自身价值为SRE所用,是迈入DataOps的我们亟需解决的问题。为此,华为云站点数字化平台CloudMap(以下简称“九洲平台CloudMap”)携手华为云图引擎GES打造云服务全栈拓扑,网络流量路径和云服务动态依赖等空间关系数据,支撑现网运行态风险识别和分钟级定位定界,构建业界领先的数字化能力。
传统的云资源的运维存在诸多问题:对风险的管控仍然依赖人工而不是工具系统,风火水电基础设施在遇到问题时因无法定位影响只能全局管控,使影响面无故扩大。由于缺乏云资源的拓扑信息,部分资源依赖获取不到会导致许多问题的搁置……提升云资源的自动化运维能力,面临诸多挑战:
不同的云资源(如租户信息、云服务信息、机柜机房信息)来源于不同的系统中,从软件层面的云服务,到硬件层面的机房机柜等,都可能出现各种各样的问题,并且不同的云服务之间存在着一些依赖关系,一个云服务出问题可能影响其他云服务。
即使拥有这些依赖关系并存储在配置管理数据库中,传统运维手段也只能定位问题节点,对于问题的爆炸半径(如问题节点依赖的机柜机房信息、或者受到其依赖的其他云服务)往往要依赖手工定位。
此外运维例行维护、故障定位需要进行类型繁多的查询,既需要有实时性要求的单点深度链路查询支撑运维,也需要全局类链路统计等偏离线任务的查询支撑下游任务。
图 1 九洲平台CloudMap数据概览
九洲平台CloudMap携手华为云图引擎GES完成了亿级空间数据构建,通过租户资源拓扑构建、网络流量路径分析、服务动态依赖发现打造全链路可视能力,构筑基于站点视角的数字化平台,实现分钟级问题定界。
图 2 云上资源拓扑关系示意图
租户资源拓扑是将实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”。CloudMap通过整合各类系统中的数据信息,将华为云的租户与其相关租赁的物理机、虚拟机进行关系的构建并存储到华为云图引擎GES中,构建租户资源拓扑,使得依赖分析成为可能。在租户出现问题时第一时间能够通过“线”溯源回对应的租赁机器,并快速定位和解决其中的问题。
华为云作为国内TOP云服务厂商,每日网络流量数据是比较庞大的,对于网络流量路径的管理和可视就如百度地图之于道路交通一样重要。而在运维场景下,掌握了网络流量路径可以进一步的补充由基础设施、基础服务到高阶服务之间的链路关系。CloudMap通过将请求流量进行监控,绘制出一个整体、清晰的物理和虚拟网络路径,可以准确截断问题的蔓延,提高自动化运维水平。
服务依赖发现是发现分布式软件系统中各组件依赖关系的过程,随着华为云的规模扩张,服务往往会被拆分为多个子服务。分布式软件系统通过不同子服务之间的组合,提供了稳定多样化的服务。与此同时,由于这些错综复杂的依赖关系,也伴随着很多连锁反应。其中最经典的案例就是由于单个服务的故障导致其在分布式软件系统中快速传播,导致大量的服务失效。在华为云的日常运维中,掌握各个服务的动态依赖是让云稳定可靠不可或缺的一项技术,它关系到了能否快速的找到保障服务的各个关联服务,避免其他服务引火烧身。CloudMap通过对服务间依赖的动态探测,构造全链路微服务依赖关系;同时借助GES的多跳查询能力,及时定位单服务问题的影响范围,避免大量服务失效,解决爆炸半径求解难的问题。
图 3 服务资源视图查询示例
从数据入库到计算查询,华为云图引擎GES为九洲平台CloudMap的存储、查询和分析提供了一站式解决方案。
图 4 简化后的元数据截选
华为云图引擎GES提供了丰富的API接口查询能力,CloudMap通过调用GES API,实现接口化的查询逻辑。目前CloudMap有数十个查询请求通过GES的Cypher、PipelineQuery、PathQuery等接口完成,这些请求响应和返回格式统一,便于处理,简化了CloudMap的处理逻辑,降低了运维诉求杂,查询类型多带来的业务开发成本。查询请求的高效响应,让长链路的空间关系数据得以快速查询并消费。
图 5 CloudMap数据示例
作为站点数字化平台,九洲平台CloudMap在图引擎GES上搭建运维图谱图模型,建立站点空间数据关系。通过叠加空间数据和运维作业数据,从而打破数据孤岛、消除数据断裂点,形成运维知识图谱,释放数据价值,助力故障快速定位定界:
截止目前,CloudMap空间关系数据已覆盖30+云服务,在分布式缓存服务DCS、云数据库服务RDS、文档数据库服务DDS和大数据服务MRS等高阶服务故障快恢场景应用落地。除此之外,CloudMap还为站点风控、变更风控、故障快恢等多个运维场景提供了数据底座和计算能力,极大提升了现网运维效率,为华为云稳定可靠,为SRE确定性运维而持续努力。
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
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
我正在尝试将一个资源属性的默认值设置为另一个属性的值。我正在为我正在构建的tomcat说明书定义一个资源,其中包含以下定义。我想要可以独立设置的“名称”和“服务名称”属性。当未设置服务名称时,我希望它默认为为“名称”提供的任何内容。以下不符合我的预期:attribute:name,:kind_of=>String,:required=>true,:name_attribute=>trueattribute:service_name,:kind_of=>String,:default=>:name注意第二行末尾的“:default=>:name”。当我在Recipe的新block中引用我
所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。
西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,
假设我们有两个资源: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.
当我尝试使用“套接字”库中的方法“read_nonblock”时出现以下错误IO::EAGAINWaitReadable:Resourcetemporarilyunavailable-readwouldblock但是当我通过终端上的IRB尝试时它工作正常如何让它读取缓冲区? 最佳答案 IgetthefollowingerrorwhenItrytousethemethod"read_nonblock"fromthe"socket"library当缓冲区中的数据未准备好时,这是预期的行为。由于异常IO::EAGAINWaitReadab
我很难给出正确的答案,所以我会在这里征求我的问题。我正在研究RESTFulAPI。自然地,我有多种资源,其中一些由父子关系组成,一些是独立资源。我有点困难的地方是弄清楚如何让那些将根据我的API构建客户端的人更容易。情况是这样的。假设我有一个“街道”资源。每条街道都有多个住宅。SoStreet:has_manytoHomes和Homes:belongs_toStreet。如果用户想要在特定的home资源上请求HTTPGET,以下应该可行:http://mymap/streets/5/homes/10这允许用户获取ID为10的房屋的信息。直截了当。我的问题是,我授予用户访问权限是否违反了