打造AutoOps基础运维工具,全面提升IT运维效能
Posted 三墩IT人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打造AutoOps基础运维工具,全面提升IT运维效能相关的知识,希望对你有一定的参考价值。
随着浙江移动业务系统不断演进,新项目上线交维持续不断,但鲜有存量系统下线,使得应用运维的维护边界越来越大。目前现网在线运行的系统就有70余个,而公司在运维成本投入日益紧缩,在有限的人员和资源条件下,不仅维护的系统越来越多,而且还要处理来自混合环境和敏捷迭代所带来的快速复杂变化,如何维持高效高质的运维服务,使得应用运维面临的挑战越来越大。浙江移动运维团队借鉴互联网企业实践经验,根据当前运营商运维能力的现状,提出“先做数据可视化,再建操作自动化,后攻分析智能化”的策略,为最终的运维的全面转型夯实基础。
在前期数据可视化能力建设相对成熟之后,浙江移动运维团队从2016年开始重点针对运维自动化操作能力提升开展相关建设。根据浙江公司各专业运维线操作能力的整体评估,主要存在以下几个问题:
产品设计封闭,定制能力不足:部分专业在用的自动化工具均为现成的商业产品,设计相对封闭,缺乏定制化开发的能力,与实际运维的需求场景贴合度相对不足。
工具门槛较高,难以广泛应用:开源工具产品的操作使用步骤繁杂,一线运维人员的学习成本较高,而且对DB和shell等组合场景场景的能力支撑上有限。
缺少能力开放,知识难以传承:缺乏标准化能力封装,难以适应具体专业的应用场景,同时缺乏对知识预案的管理,最为珍贵的运维脚本知识和能力难以传承。
AutoOps的功能架构
AutoOps是浙江移动从2016年开始逐步在生产环境上推广应用的自动化运维工具,由自动化运维平台和命令平台两个微服务构成。自动化运维平台负责自动化运维场景和预案的编排、调度、追踪、安全审计。命令平台负责执行不同协议类型的自动化任务。
AutoOps的功能特点
兼容多类运维环境
AutoOps支持多种类型的任务插件,包括:Shell脚本、Python脚本、Perl脚本、DB脚本、RestAPI调用脚本、文件分发任务、文件抓取任务、Jenkins任务调用、消息通知等。这些任务插件涵盖了主机操控、数据库读写、批量执行、通知、服务调用等方面。而且基于SpringCloud微服务构建,优化了ansible的底层代码,实现标准化的服务平台和接口,具备高扩展性和高并发的能力支持,为整个系统的后续演进提供了基础。
预案可视化的编排
日常运维和告警故障处理工作一般由多个任务构成,都会面临跨节点、不同类型脚本任务混合编排的场景。AutoOps提供了一种面向运维人员、高效、可视化的编排界面,运维人员只需要通过拖拽任务图标的方式,即可将不同类型的任务按照分支条件编排为自动化预案。
AutoOps还可以将多个预案按照条件组成一个更为复杂的自动化场景,称为Pipeline(管道)。Pipeline的分支预案支持并行,连接、启动延迟等条件设置。Pipeline还可以停止并等待人工输入或批准,然后再继续Pipeline任务的执行。因此,可以有效应用于进程启停、应用部署、数据备份、环境信息抓取、数据库迁移、中间件检查等日常运维和应急保障工作等多种场景的自动化。
支持多种触发模式
自动化任务引擎实现了任务编排态和运行态的分离,自动化预案经过编排期后,可以支持告警触发、定时计划触发、一键式触发、Restful API同步触发、消息异步触发等多种模式,直接下发给自动化任务引擎执行和调度。
并且自动化预案中的包含了参数、上下文、条件等不同类型的变量,用于预案的复用和数据传递。例如:进程启停,进程的名称是一个运行时参数变量,是在自动化预案执行时通过参数传递的,自动化任务引擎会在运行时进行变量替换。上下文变量能在整个预案中传递数据,实现数据和任务结果共享。自动化任务引擎在接收到任务执行结果后,会与分支条件进行对比,根据条件结果调度下一个任务。
预案执行结果反馈
AutoOps可以主动查询和实时刷新的方式跟踪一个或多个预案在不同任务节点的执行情况,也可以通过预案设定在任务节点失败时进行邮件、短信、语音、工单等方式的自动推送反馈。对于在个别节点失败的任务,运维人员在修改节点运行环境配置后,可以直接在预案跟踪上重新执行失败步骤的任务,不须要整个预案重新执行。
操作安全风险控制
自动化运维的安全保障是自动化运维在生产环境推广应用的基础要求。AutoOps提供多种层级的安全审计机制,包括:4A用户权限认证、预案访问权限隔离、操作用户群组管理、高危命令拦截等手段。
4A用户权限认证:AutoOps的用户认证采用4A平台的账号认证体系和申请流程,并且通过群组设定实现更精细的运维角色的权限区分。
预案访问权限隔离:创建预案的运维人员拥有最高的权限,只能通过创建人和上级管理员才能赋予其他成员对该预案的访问、执行、修改的权限,并且可以指定权限生效的周期,入永久、临时、预授权等。
高危命令自动拦截:在预案任务执行前,对任务指令进行高危命令的正则表达式过滤,如删除根目录、用户切换、修改基础环境变量等,从而确保目标系统和应用的安全性。
AutoOps的应用效果
运维自动化是实现智慧运维的必经之路,浙江公司经过这一年多的应用实践,已经实现在告警处理(106个预案)、核心生产线管控(174个预案)、日常运维(100个预案)、维护作业(308个预案)四大类场景的全面应用推广,日均调用达1.5万次,成功率在99.2%以上,有效提升了一线运维的生产效能,也为运维在后续的AIOps转型中奠定坚实的基础。
以上是关于打造AutoOps基础运维工具,全面提升IT运维效能的主要内容,如果未能解决你的问题,请参考以下文章