混合云环境运维手段治理方案

网友投稿 1053 2022-10-03

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

混合云环境运维手段治理方案

混合云架构下的运维困难来源于对于异构云的分别运维管理。无论是系统问题的定位,还是发现问题后的运维保障手段,都比运维单纯一套云平台要更加复杂,其中异构云的运维手段的割裂也是限制了运维效率提升的重要原因。

为了保证核心系统能尽量平稳无中断迁移和运行在混合云架构上,保障业务系统在部署、监控、故障处理等方面的运维支撑效率,我们将混合云运维能力建设要达到的目标明确为:异常事件快速发现,影响范围快速分析,业务快速恢复。

如何实现这个目标呢?

发生异常要能在1分钟内发现。这个主要依靠对多种云环境内的各类运维数据实时采集,通过实时计算能力进行数据的格式化处理、建立多维数据之间的关联,并基于事件识别判断能力进行监控和告警输出。这个能力将通过建设统一的运维数据管理和运维数据分析能力来实现。

5分钟内分析确定事件的影响范围。分析重点是定界,而不是定位。

以往在发生故障时,我们都是要定位到问题原因后才能做相应的故障恢复操作,但这个定位往往是最难,也是最耗时的。用户在等待系统恢复的过程中焦虑是在指数级增长的。并且在混合云的架构下,发生异常时定位问题的难度更大,因此我们的目标不是要在在最短时间内定位到发生异常的问题点,而是要快速分析出问题的影响范围。

我们将影响范围以平面来进行定义。以往我们建立的主备策略、灾备环境或者双中心环境往往是最大平面的维度,难以支撑小范围的故障。毕竟切换的面越大,整体业务中断的风险也越大,评估下来因为单个业务无法使用或者单个模块无法使用切换整个中心或启用灾备环境是不现实的,也是得不偿失的。

我们根据实际经验得到的方案是将业务系统划分为更微小平面维度,例如业务维度、应用维度、模块维度、网络维度等等。

当发生异常时,通过分析快速确定问题影响的最小粒度平面。我们将这些不同维度平面的高可用方案以策略的形式进行定义,并纳入智能切换策略管理。

智能切换策略管理针对各维度平面的保障方案,包括负载流量的分流、灰度平面切换、业务的限流、熔断策略等等,这些策略的执行可能包含一个或多个自动化运维流程的序列执行,而这些自动化的运维流程需要在运维流程管理中进行预置。

以上的运维事件发生和处置过程,都应该在演练及应急保障管理中制定演练计划,通过反复的日常演练来推动运维过程和运维操作能力的优化。当生产系统真实出现异常事件时,基于上述平台的全流程自动化能力,将异常恢复时间压缩到10分钟以内。

通过建立这样一个以快速恢复系统为目标的混合云智慧运维能力平台,来保障部署在混合云上的各业务系统模块能维持正常运行,提供业务支撑。

根据上述的建设思路,我们整理出该统一的运维能力平台的功能架构和技术架构如下所示:

1. 功能架构

在实现对多个异构云的运维能力原子化的基础上,构建运维数据管理、运维流程管理来对接异构云的运维数据纳管能力和运维操作能力;以及通过运维数据分析模块来实现对混合云的各类运维事件的统一分析管理;为了支撑对各种不同类型运维事件的快速响应能力,增加智能切换策略管理和演练及应急保障管理来形成与运维操作的对接。

同时,在云化迁移的过程中,运维场景将面临目标部署环境经常变动的难题,为了满足对异构云上不同运维场景建设的时效性,还将引入低代码运维场景构建管理能力,通过低代码开发方式快速支撑运维场景建设。

2. 技术架构

其中针对混合云产生的运维数据量巨大的难点问题,考虑以Redis、MySQL、Elasticsearch、HBASE多种存储组件协同的方式来实现运维数据的分级分类存储。

运维数据从采集到最终入库存放的处理流程如下所示:

1. 运维能力原子化

能力原子化包括对异构云的运维操作和运维数据获取能力做接口化,形成统一的可调用的能力接口。

通过云上提供的大数据组件对接(例如将数据吐到kafka-topic的方式),或通过容器内部署的agent、脚本、或远程jdbc连接等方式来获取。

运维操作能力主要通过对k8s容器管理、组件管理等接口进行封装,实现对容器及容器内应用组件的运维操作管理。

在云平台能力不满足需求的情况下,还将引入其他开源的采集组件、执行组件,结合本地运维开发脚本,共同形成原子能力层。

运维数据包括:

集团XXX云:租户内的资源数据、业务模块部署组件性能指标数据、业务模块应用日志数据、业务链路数据、业务数据存储组件数据等,通过对接平台大数据组件、业务应用吐出到Kafka-topic管道、日志文件采集等方式输出到本平台。本地XXX云:包括本地云和裸金属部署环境的资源数据、主机或容器内组件性能指标数据、业务应用日志数据、业务链路数据等,通过在原有运维数据采集获取通道上将运维数据做转发,实现输出到本平台。

运维操作包括:

集团XXX云:包括对云平台的命令操作、任务管理、启停服务管理、软件操作管理、配置库管理、文件管理等。将这些云平台能力统一封装为可调用接口,通过本平台的调用传参来实现运维操作管理。本地XXX云:包括对省内的云平台的自动化运维场景程序、自动化脚本、CMDB资源管理、文件管理、应用发布管理等能力封装为可调用接口,通过本平台的调用传参来实现对本地云环境的运维操作管理。

2. 运维数据管理

支持对任意运维数据的接入纳管,实现对异构云的可观测性能力建设。

支持对性能指标类的时序数据、日志类非结构化数据、还有业务链路数据的统一汇聚纳管到同一平台,并构建基于流批一体计算框架的数据加工处理以及数据关联能力,实现对海量数据的秒级指标生成以及多条件规则判断能力。

资源数据是运维数据的关联基础,运维数据管理模块实现从异构云平台定时同步,将资源数据统一接入平台的资源池。

支持对海量数据按不同的使用场景的分类存储管理,制定不同数据类型的存储周期管理,并按规则进行数据备份和清理。

数据检索工具支持对关系型数据、时序数据、key-value数据的检索展现,能在不同类型的数据对象之间实现关联检索。例如根据数据库中查询到的业务订单数据,自动按此作为关键字查询日志数据、链路数据返回报错信息或链路数据。

在该模块的实时计算框架中需要实现以下类型的数据加工处理规则或逻辑判断规则:

数据处理类日志类数据分词;结构化数据的二次加工、属性项新增、数值转换等;非结构化数据提取生成结构化数据。指标计算类简单指标计算(最值计算、均值计算、分类统计等);复合指标计算(对已生成指标或告警的二次统计计算);关联指标计算(实现对两个或两个以上指标做关联生成新的指标);加工指标计算(对指标的二次加工,如数值转换,key值转换,key值新增等)。判断规则类阈值规则(固定阈值比对判断);同比环比规则(与历史同期数据或时序前列数据的比对判断);动态基线比对规则(以历史数据根据配置规则生成动态基线);指标未生成规则(有基线数据,无实时数据时产生)。

3. 运维数据分析

运维数据的分析的对象不光是系统故障,还包括网络攻击、内外部用户的行为异常、应用发布动作带来的系统变化(例如业务影响、性能影响等等)、还有网络上的异常(比如闪断、连接风暴、负载不均衡、数据不同步等),另外还有长期的业务容量发展趋势变化,都属于事件分析的范畴。

这也对数据分析管理功能模块提出了很高的建设要求,要能对实时的各类运维数据做分析,也要能对运维数据的长期变化趋势做分析,对各类事件建立判断规则模型。

运维数据分析包括前台的事件管理及后台的事件分析过程。

1)前台事件管理包含以下几个子模块

事件样本库:存放历史事件发生时各类运维数据的样本,用于提取事件判定规则(指标阈值规则、动态基线规则、时间范围规则、特定业务环境规则等)。事件模型管理:支持对各类运维事件的定义及分类管理。包含了对事件的历史样本、事件判断的识别规则、事件触发的执行策略的管理。识别规则管理:包含对事件发生时的一个或多个指标阈值的定义,或定义事件多个指标项的动态基线,并建立基于动态基线的事件识别判断规则。事件策略管理:定义事件发生时的触发动作,包括但不限于对配置派单接口、告警短信接口、事件接收角色等策略的管理。

2)后台的事件分析包括三个处理步骤

第一步是数据接入,建立事件分析需要接入的数据源(数据流)。第二步是模型匹配,将需要判断的数据流与已建立的事件分析规则模型进行匹配,满足条件则触发事件。第三步是策略执行,根据事件定义的策略执行告警输出、工单派发等动作。

4. 运维流程管理

在将异构云平台、自定义脚本、开源工具的能力进行接口化纳管后,应用运维流程管理的能力管理、脚本管理、工具管理实现注册管理。

该模块中的后台流程引擎实现对配置的静态运维操作流程加载,支持通过前台界面配置定时任务、手工触发,或通过后台的接口调用,来触发运维流程的启停操作。

在运维流程执行过程中,引擎支持对节点的串行执行或并行执行,支持带条件判断的多分支执行,也支持对多个执行分支的并流判断。

流程引擎支持人工节点。由人工通过表单输入参数来执行后续节点,也支持人工审核节点来触发高风险运维操作自动执行。

流程引擎可通过调用接口节点执行异构云或其它开源工具的运维操作能力,也支持通过执行配置的自定义脚本来执行更加灵活的运维操作动作。

运维流程执行过程中每个节点的执行日志数据、执行结果数据、执行耗时数据都通过采集并统一存储,为后续追溯运维现场提供数据支持,也为运维操作的优化提供分析依据。

模块前台提供流程管理,支持对流程的增删查改等操作,并可通过复制、导出、导入等功能实现运维流程的快速构建。

流程编辑器支持对运维自动化流程的可视化编排。编辑器中包含各类能力接口组件、自定义脚本组件、人工审核组件、条件判断组件、分流组件、并流组件,可通过托拉拽方式编排运维动作的执行过程。

5. 智能切换策略管理

该管理模块纳管业务系统各模块在各个维度的平面级运维保障动作,包括快速切换、限流、降级、熔断等等。是对多个运维操作流程面向事件场景的封装。

以各维度平面为单元对应用架构梳理,实现更小粒度的管理单元,并明确管理单元的高可用方案。通过构建多维度平面级保障策略中心,在应用发布、应急切换、故障自愈等场景中,提供不影响业务的的自动化处置方案。

这个能力需要依赖对于应用系统在各个平面维度的梳理,制定当某个网络节点出现异常时的切换策略。在这个过程中就涉及到引流,切换负载,自动扩容,动态修改参数等处置动作,以及处理时序,这都属于平面切换策略的范畴。

该功能模块包含切换场景管理、切换策略制定、切换执行管理、运维流程对接等前后台功能子模块。

切换场景管理确定不同类型主题的场景分类,分别纳管业务故障、系统故障、环境故障、应用发布、环境割接、网络攻击等实际可能影响业务的场景。制定各维度的平面在场景中的高可用切换方案。切换策略制定面向切换场景管理中的各方案,通过可视化拖拉拽的方式提供对多个运维流程的时序编排和依赖控制。切换执行管理实现对切换动作的前台白屏化操作能力。并建立平面切换过程的可观测性和质量、效率管理。运维流程对接是切换执行管理的后台模块,将前台配置的策略及执行动作与运维流程管理模块中配置的流程动作对接,并获取流程的执行过程数据和反馈结果信息。

6. 演练及应急保障管理

通过建设日常演练及应急保障管理模块,在该模块中构建运维大脑,实现运维数据分析管理与平面切换策略管理的对接能力,建立运维事件与切换场景的关联,完成运维场景全流程的闭环。并通过定期演练,对演练结果进行评估并做出相应的优化改进,以确保各类事件或故障发生时,系统恢复计划持续可用。

应急预案管理模块支持配置各类运维分析结果事件与切换场景策略的执行关系。不同类型的事件,如果造成同样的业务影响,其所对应的平面切换策略也会是相同的。通过该子模块建立运维数据分析模块的事件策略管理与平面切换策略管理模块的切换场景管理的关联。

运维大脑作为后台应用部署。它接收实时运维数据分析输出的事件信息,在运维大脑中根据在应急预案管理中关联的切换场景,执行对切换执行管理接口的调用,触发运维流程开始。

过程跟踪管理实现对事件产生到切换场景执行的全过程跟踪管理。支持对事件自动触发切换场景的手动重新执行或修改当次执行策略触发。支持对历史运维切换动作实例的查看和追溯,为优化运维执行流程提供历史数据依据。

演练计划管理支持制定运维场景的演练计划,并在计划时间实现对模拟事件的数据触发,以此来验证运维流程方案的可靠性和平面切换动作的快速准确性。演练计划管理支持与外部审批流程系统对接,形成自动化运维管理中日常应急演练的闭环管理。

7. 低代码运维场景构建管理

该模块主要是解决运维场景定制化的效率问题。在面临同时运维多个云环境的情况下,运维场景开发构建时效性要求高,特别是和特定业务时段相关的,例如特定的促销时期的运维场景,如果按正常定制化开发的流程周期太长,难以满足运维工作的需要。还有一些比较灵活的报表、仪表盘或其他可视化场景,如果应用低代码的方式快速构建,能更快更好的满足使用方面的需求。

应用低代码运维场景构建能力,实现数据分析的场景固化。对日常运维中的数据获取、数据加工、指标计算、数据分析、数据判断等数据应用流程固化,将日常分析需要使用的运维数据以仪表盘、报表、拓扑图等形式做可视化展现。这些场景的固化也是知识沉淀的过程,可以提升我们分析问题时的效率,避免在多种异构云的运维管理平台界面之间跳转的时间损耗。

运维场景构建管理作为低代码运维场景的管理入口,实现对运维场景实例的统一管理功能。支持对运维场景的增删查改及发布、下线、复制、导入、导出等操作,满足对构建运维场景过程的管理需求。

运维场景设计器:提供拖拽式应用交互场景构建,借助所见即所得设计能力,应对灵活多变的应用场景需求,缩短运维场景定制开发周期,提升运维类应用的开发质量。

可视化组件库提供对运维场景设计器的组件支撑,满足运维所需的各类可视化场景以拖拉拽组件的形式进行构建。组件库包括但不限于:

柱状图曲线图散点图面积图饼图漏斗图雷达图文字云数值面板富文本面板excel表格普通表格内联窗口搜索框提交输入框按钮等各类组件

组件支持配置可视化样式及绑定数据源,并支持通过变量参数来实现对复杂运维场景的构建需求。另外组件之间支持通过变量传参方式形成联动或自动刷新。

图片来源于网络

运维能力库提供对运维场景设计器的能力支撑。在低代码运维场景构建过程中,涉及到需要对多个异构云进行操作的动作,或对开源工具、自定义脚本的使用,都将在对运维能力做原子化改造后以运维能力库的形式统一管理,并提供给设计器选择使用。在运维流程管理中定义的运维流程也将以接口调用形式提供给低代码平台来构建人工分析+自动化操作执行的完整运维场景。

通过低代码或定制化方式开发实现的运维场景,最终以运维应用市场的形式向其他运维人员、管理人员、业务人员提供运维支撑服务。运维应用市场中的应用支持权限划分管理,可对不同使用角色赋权,也将通过对接资源权限管控来限制不同使用者的操作范围,避免误操作风险。

通过该运维能力平台的构建,拉通多云环境的运维管理,统一构建包含异构云的PaaS平台运维能力,实现混合云架构下的1分钟发现、5分钟定位、10分钟恢复的系统高可用保障目标。

在平台中引入基于流批一体的通用计算框架,实现对多云环境产生的各类日志数据、指标数据、链路数据的统一采集接入、统一处理平台、统一数据存储,并建立多维度类型的数据关联,面向运维事件构建数据分析能力。做到对运维事件的1分钟内快速发现。

在运维事件分析方面,除了建立事件规则与策略规则的对应关系,还通过低代码平台构建一系列辅助运维分析场景,在事件发生的5分钟内,确定事件的影响范围及业务保障策略。

在将云环境的运维能力实现原子化改造的基础上,构建的统一运维编排调度能力,实现一套平台同时运维混合多云。运维操作通过平面切换策略,与运维团队的日常演练和应急保障形成对接,结合低代码构建的运维操作场景的应用,真正做到闲时练兵,战时杀敌,实现系统故障发生时的10分钟内快速恢复业务的目标。

本文作者:李秋霖(上海新炬王翦团队)

上一篇:Redis集群技术及Codis实践 | 高效运维最佳实践03
下一篇:【运维开发】windows下的自动化脚本语言autoit
相关文章

 发表评论

暂时没有评论,来抢沙发吧~