ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从被动救火到主动治理:运维效率翻倍的实践路径

从被动救火到主动治理:运维效率翻倍的实践路径 服务器数量增多, 业务链路拉长, 变更频率提升了, 这些因素相互叠加, 致使依赖人力堆砌的传统运维方式难以维持下去, 而运维管理工作的核心矛盾, 正在于有限人力与持续增长起来的系统复杂度之间所存在的那种张力。提高运维效率, 实际上是再度分配人的注意力, 把它从能够被机器取代的重复性操作里解放出来, 集中投入到需要进行判断与决策的工作当中。这篇文章从自动化、监控预警、流程规范、知识沉淀这四个层次着手, 梳理提高运维实战效率的可行途径。一、自动化把重复操作从人的任务清单上划掉问题定位处于未经过全面、系统改造的运维团队里, 像进行批量部署, 配置同步, 账号开通, 服务重启, 日志清理等这些工作, 常常会花费掉大量的人力, 这些工作拥有的共同特点是, 流程存在固定性, 规则清晰明了, 不需要进行实时判断。倘若把它们交给脚本或者自动化工具去执行, 不但能够节省时间, 还可以消除由于人工操作而带来的不一致性。主要实践配置管理自动化, 它属于目前应用极为广泛的配置管理工具当中的一个, 它采用的是无代理架构, 借助 SSH 连接目标机器来执行任务它的学习曲线相对来说比较平缓, 适用于中小型团队开始起步去使用。它的核心优势在于其自身的可读性很强, 方便团队进行协作维护。它同样有着批量管理的能力, 在节点数量比较大多达数百台以上的场景里事件驱动模式的响应速度更加快。基础设施即代码IaC, 它支持用声明方式且以代码去描述云资源的目标状态, 在执行的时候会自动去计算变更差量然后进行应用。它所具有的“计划 - 执行”两步模式, 也就是从plan到apply, 能够在真正执行之前展示变更预览, 以此来降低误操作所带来的风险。主流云厂商, 像AWS、阿里云、腾讯云、华为云等等, 全部都已经对此予以支持。有着久已存在性质特征, 其表现为老牌的 CI/CD 平台, 具备插件种类颇为丰富的生态状况, 并且能够充分给予较多构建, 当然了、较多的构建以及部署场景也一并被满足CI/CD 此一事物, 它会把代码托管这种行为情况, 与流水线管理这种与之不同行为情况溶合成为整体形态, 呈现出来的表现乃是配置处于简单明了状态, 这种状态对于团队已然在使用的场景而言完全非常适配。自动化发布流程所拥有的核心价值体现于, 在人工进行发布之际那些由打开 SSH → 手工执行命令 → 人工确认构成的链条内容, 利用代码提交会自动触发的标准化流程予以对换取代, 从而能够将步骤遗漏以及版本混淆所存在的风险实现一番彻底消除的情况有绝对的保障。以下是脚本化日常任务, 和 Shell 还是运维脚本的主流选择, 它配合系统级的定时任务调度Linux cron、任务计划程序, 能够把巡检、报表生成、资源清理等定期工作纳入自动执行里。提出这一实施建议, 首先要优先去自动化那种每周执行次数超过5次并且流程是固定不变的操作。在初期的时候, 并不需要去追求有一个涵盖全部功能的完整自动化平台, 因为往往一个经过良好维护的脚本库所能发挥的价值, 要比萨那种没人去维护并且体量很大的重型平台, 更具价值意义。二、监控预警让问题在影响用户之前被发现问题定位“用户打来电话才知道服务挂了”, 这是运维团队被动响应模式的典型写照。监控体系不健全, 问题发现滞后, 后续的一切处置成本都会被放大。监控体系建设有这么个目标, 就是让运维团队能在问题影响用户之前主动去感知, 然后介入。主要实践基础指标监控, 它属于成熟的开源企业级监控台, 能够支持服务器、网络设备、数据库、应用服务等多种类对象的指标采集, 其内部设置了告警规则配置以及通知机制, 部署和维护所需成本相对较低, 适合那种对云原生依赖程度不高的传统运维环境。它采用拉取也就是Pull的方式来采集时序指标, 配合相关操作实现图形化展示, 在容器以及特定场景下生态较为完善, 是云原生监控的事实标准之一。对于日志进行集中管理, 以 ELK Stack 作为主流的日志管理方案, 它其中一部分负责存储以及检索, 一部分负责采集以及处理, 还有一部分负责可视化, 它能够支持多台服务器的日志汇聚, 能够进行全文检索, 还能够开展异常模式分析。Loki 则提供了更为轻量的替代方案, 它不会针对日志内容去建立全文索引, 它的资源占用更低, 适合那种日志量处于适中的情况, 而且主要是依赖标签过滤的相应场景。实现集中化日志管理所带来的最直接收益乃是, 在排查问题的时候, 不再会需要逐台登录到服务器上面去翻看日志。告警质量管理方面, 告警体系普遍存在的失败情形并非是“告警的数量过少”, 而是呈现出“告警数量过多”的状况, 即众多低价值的告警纷纷持续不断地干扰, 致使运维的相关人员产生了告警疲劳困扰, 进而使得真正具备关键意义的异常状况反倒就此被掩盖。合理情形下的告警设计应该涵盖, 分级的策略, 也就是要区分出需要即刻进行响应的严重程度较高的告警以及可以延迟处理的一般性告警这两种情况, 还有收敛机制, 意思是相同类型的告警在特定时间段范围内合并变成单一的一条通知, 另外还有静默体制, 就是在计划安排之内的维护时间段当中屏蔽掉预期会出现的告警。监控所覆盖的范围, 仅仅只是监控CPU、内存、磁盘等基础指标, 这是远远不充足的。业务层面存在着关键指标, 像核心接口的响应时延、请求成功率、消息队列积压量这类指标, 往往能够更加早地反映出真实的用户影响, 所以应当将其纳入到监控范围之中。三、流程规范把经验固化成制度减少重复决策问题定位没有规范的运维团队, 大量时间被耗费在反复去确认、进行口头协商以及事后补救方面。对于同一个问题, 不同的人有着不一样的处理方式, 同一类变更, 每次操作步骤都存在些许差异, 这些不一致性, 是事故的滋生地, 也是效率的破坏者。流程规范所具备的价值, 是把最佳实践转化为能够执行的标准, 以此降低每次操作时的认知负担。主要实践生产环境的变更管理方面, 代码发布、配置修改、网络调整、权限更变等每次变更, 都得历经“评估 → 审批 → 执行 → 验证”的标准流程方可进行, 然后, 并要在执行开始以前把回滚方案给准备妥善。ITIL也就是IT基础设施库, 它为变更管理给出了完整的框架参照, 不过其完整实施所需成本较高, 中小型团队能够依据自身规模有针对性地去借鉴核心原则, 而不是全部采纳。至关重要的原则实际就只有一条: 任何生产变更都不可以在没有回滚预案的情形下被执行。标准操作手册, 也就是SOP , 其质量标准这般规定: 对于具备基础技能, 然而却不熟悉该系统的工程师而言, 能够依照手册独立自主地完成操作。SOP的维护跟编写同样重要, 要知道未及时更新的文档会给执行者造成错误引导, 其危害在某些时候比没有文档更为严重。建议在每次系统产生变更或者流程出现调整之后, 将SOP更新列为变更完成的验收条件中的一项。工单系统有统一的工单入口, 这能避免需求经即时通讯等非正式途径分散于各处, 致使出现遗漏或者优先级混乱的情况, 它也能够贮存历史数据, 可为后续剖析工作量分布以及识别高频问题类型提供凭据。值班机制, 有一线也就是第一响应的职责范围界定, 还有二线即问题升级的职责范围界定, 明确了这两者职责边界, 规定了升级触发条件, 它属于保障团队能够持续运转, 并且避免关键人员过度疲惫的基本制度保障。四、知识沉淀让团队的集体经验可以被传承问题定位在运维团队里, 有一种常见的隐性效率损耗情况, 那就是同一类问题, 会在不同的时间, 由不同的人员, 重复地“从零开始去解决”。每一次解决问题的过程, 都在耗费人力, 然而解决的方法并没有沉淀成为团队共有的知识资产。知识沉淀机制的目标, 恰恰是要打破这种低效的循环。主要实践故障复盘, 每次碰上重大故障之后, 要在合理的时间范围之内, 也就是通常建议的48到72小时这个区间, 产出复盘报告, 报告内容包含故障时间线, 根本原因分析, 也就是Root Cause , RCA, 已实施的临时措施, 永久修复方案, 还有后续改进项。复盘的核心目的在于找出能够改进的系统性因素, 而不是去追究个人责任。那个以问责作为导向的复盘, 会使得当事人去回避或者淡化关键细节, 造成复盘结论仅仅停留在表面丢失改进价值。知识库于其维护方面而言, 知识库平台在众多选择当中诸如语雀亦或是飞书文档等都可以重要程度并非最为关键的要点, 最为关键的要点在于构建有着清晰流程的“产生 → 更新 → 审查”这样的一整个文档生命周期管理机制。要定期专门指定人员去审查文档的有效性, 把过期的相关内容及时做好归档处理或者予以删除, 这是维持知识库具备可信度的必然需要满足的条件。一种叫做交叉培训的方式, 核心系统的运维能力, 不应该仅仅集中在少数人身上。当关键人员去休假, 或者离职, 又或者同时要处理其他事故期间, 运维工作, 不应该出现明显的中断情况。建议针对每个关键岗位, 保持至少两名工程师, 能够独立去处理常规问题, 并且通过结对操作, 以及文档共享, 还有定期轮岗等方式, 持续进行技能的传递。不定期做这样的事, 即开展故障演练行动, 来验证应急预案实际的可执行状况, 这被称作应急演练。混沌工程, 也就是Chaos方式, 它是更具系统化的实践, 其核心思想是在受控的情况下, 主动在现有情形状况里向当下系统注入故障点内容以便验证系统韧性和团队响应能力。这一方法是由特定的一方提出并且进行推广的, 目前在大型互联网企业有着比较成熟化的应用情况表现情况呈现。中小型团队可以从简单的故障场景模拟开始着手开展行动, 比如手动停止某个并非核心的服务并且观察响应流程等情况做法, 在积累了相关经验之后再引入更为复杂的演练机制情况举措。五、效率衡量用数据驱动持续改进实际效果的改进措施, 要采用量化的指标去验证。下面那些是运维领域常用的效率衡量方面的指标, 都有界定清晰定义明确的计算方法, 能够用以朝着纵的方向遵循线纵方向痕迹追踪团队的进展情况:指标全称含义MTTD平均故障发现时间从故障发生到被发现的平均时长反映监控体系灵敏度MTTR平均故障恢复时间从故障确认到系统恢复正常的平均时长综合反映处置效率变更成功率未引发故障的变更占全部变更的比例反映变更管控质量工单 SLA 达成率在约定时间内完成处理的工单占比反映服务响应能力将前者那些指标汇入月度运维报告之中, 借以架构出可供持续追踪的基线数据, 这是一种建议。指标要是有所改善, 就意味着措施具备成效要是指标处于停滞状态或者出现恶化情形, 那便是去定位下一个改进方向的信号。结语并非存在运维效率提升的捷径, 也不存在一劳永逸的方案, 自动化能够削减操作成本, 监控可以提升感知能力, 流程规范会降低沟通损耗, 知识沉淀能防止重复踩坑, 这四个方向彼此相互支撑, 从而构成系统性的效率改进框架。把实际推进的时候给出的建议, 改成优先去识别当下团队里最为突出的效率方面的瓶颈, 从一个方向开始着手, 用能够量化的结果验证效果, 然后再一步步延展到其他方向。要是盲目地同时推进好多改进项, 常常会因为资源分散致使每项都只停留在表面, 最终掉进那个“改了好多、改善却不大”的困境之中。
返回列表