运维平台体系化建设之工单系统

运维平台建设工程庞大,涉及多个系统。本文聚焦工单系统建设,介绍了工单、工作流等相关术语,如工单流转、子工单等概念。还提及了转交、加签等操作及自定义字段区别。最后介绍了开源工作流引擎Loonflow,它分管理后台和API,可满足各系统工单需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:      http://loonapp.com/blog/52/

    运维平台的建设是一个很大的工程,分为很多部分如cmdb、发布系统、监控系统、成本管理、工单系统、任务调度、配置管理、堡垒机、日志平台等等。在进行运维平台体系化建设时,建议的做法是将涉及到的不同系统的前端整合起来一体化呈现,而平台的后端调用各个系统接口来完成相应的底层功能,研发人员只需要登录一个平台就能够完成所有的需求。下图是一个运维平台的发体系架构

image.png

        工单系统作为提供标准服务支持的工具,可以出现在各种场景中,如服务器的申请、发布权限申请、告警处理、运维服务申请(环境部署、问题解答等等)。当然我们比较常见的请假申请、报销申请也属于工单。本文将介绍如何建设一套完善的工单系统,用以支持各个系统中的工单服务。

      首先介绍一些工单相关的一些术语

        工单:具体的待处理事项,用户新建的是工单,工单按照工作流的设计来实现不同状态不同处理人之间的流转

        工作流:即工作流的设计,定义了工单的审批链、各状态的处理人、各状态可以执行的操作(提交、保存,处理完成,退回,关闭等等)、每个状态下显示哪些字段、哪些字段可以在哪些编辑

        子工单:主要用于工单流转存在子集的情况,如在项目开发周期中存在项目周期和应用周期两个层级, 当项目处于开发中时,项目的多个涉及应用在项目开发中可能正处于不同的阶段(代码编写、静态扫描、单元测试、完成开发等状态)。当应用状态都完成开发时将触发项目的状态到提测中。在这个场景中应用的工单即为项目工单的子工单。 应用工单的父状态即为项目的“开发中”

        子工作流:工作流的父子层级不体现在工作流记录中,而体现在状态记录中。在配置工作流时,可以给某个工作流的某个状态设置一个子工作流。可以在工作流的不同状态设置不同的子工作流。

        流程图:为了方便用户了解工作流的流转规则,可以通过流程图的方式展示给用户,如下图是一个服务器登录权限申请的流程图,用户新建工单时填写服务器ip地址,点击“提交”按钮完成工单的申请,或者点击“保存”进入编辑中状态(可以理解为草稿),编辑中的工单可以继续修改然后再提交。途中圆角方框代表的是不同的状态,线条表明了每个状态可以执行的操作。在工作流配置时将“赋权脚本-自动执行中”状态的参与人类型设置为脚本,参与人设置为脚本的名称。当leader审批后,工单状态变为“赋权脚本-自动执行中”。后台自动开始执行赋权的一系列操作。赋权完成后工单状态变为“发起人-验证中”,发起人在工单处理界面中通过点击“关闭”或者“验证不通过”来确认工单的处理结果。

image.png

        转交:正常情况下工单的流转都是按照其对应工作流设定的规则来流转(状态、处理人类型、处理人等).在实际操作中,比如A提交了个工单,到达运维处理中状态,B接单处理,B在处理过程中发现自己其实处理不了,需要C才能处理。于是将工单转交给C。

        加签:加签与转交不同。正常情况下工单的流转都是按照其对应工作流设定的规则来流转(状态、处理人类型、处理人等).在实际操作中,比如A提交了个工单,到达运维处理中状态,B接单处理,B在处理过程中发现需要C做些操作或者提供些信息,才能处理,于是将工单加签给C.C处理完成后工单处理人会回到B.于是B可以继续处理。

        工单自定义字段与工作流自定义字段的区别: workflow里面自定义字段规定工作流有哪些自定义的字段。比如配置一个请假的工作流。 需要有请假天数这个字段。工单里面的自定义字段 存的是自定义字段具体的值。 比如现在用于新建了一个请假工单,填写了请假天数。那么工单的自定义字段表中会保存这个值。

        工作流处理过程可以理解为工单状态的变化,如一个工作流处理过程中可以有:发起人新建中、发起人编辑中、部门经理审核中、技术人员处理中、发起人验证中、结束等状态,每个状态对应相应的处理人(如部门经理审核中这个状态下只有部门经理才可以处理该工单)。如用户在新建工单的时候处于“发起人新建中”,(用户)提交后工单处于“部门经理审核中”, 部门经理(即“部门经理审核中”状态的处理人)审批通过后,工单的状态变更为“技术人员处理中”。 注意:"转交"和"加签"使用场景不同,使用时前端需要做必要的说明,避免用户使用错误。

        笔者近期开源了一个工作流的引擎loonflow,用于提供统一的工单服务下面来介绍下如何使用loonflow实现不同场景的工单服务。

        LOONFLOW 分为两部分:

  • 使用bootstrap的管理后台

  • 提供http api供各个系统(如果oa、cmdb、运维系统、客服系统)的后端调用以完成各自系统定制化的工单需求

    下图是api的调用逻辑:

    新建工单

admin_homapage

处理工单

admin_homapage

<think>嗯,用户这次明确想了解自动化运维平台的子系统构成,看来是对运维自动化体系想建立整体认知。之前对话历史中用户提到过引用两篇关于运维自动化的文章,不过核心还是需要基于专业经验来梳理框架。用户可能是个刚接触运维领域的工程师,或是需要做技术选型的决策者。ta特意强调“子系统及功能模块”,说明需要的是层次化结构化的答案,而非零散功能列表。深层需求可能是想评估自家平台建设方向,或是为采购商用产品做准备。从技术角度看,完整的自动化运维平台确实需要多层架构:最底层是资产管理,中间层是流程自动化中枢,上层是各类运维场景解决方案。每个子系统都有明确的职能边界,比如CMDB和作业平台虽都涉及服务器,但前者管状态、后者管操作。需要重点区分两个概念:子系统(平台的核心支柱型系统)和功能模块(子系统内的组件)。像发布系统这样的子系统就包含灰度控制、回滚等模块。安全模块比较特殊,它需要渗透到所有子系统而非独立存在。用户可能后续会追问具体子系统如何选型或集成,所以在回答中可以埋入一些扩展点,比如“标准API接口”的提法暗示了可集成性,“监控告警关联CMDB”则点出了子系统联动价值。最后列出的相关问题是经过筛选的,优先技术实施层面而非理论,这样更匹配工程师的实用需求。</think> 基于行业实践和系统设计原则,一个完备的自动化运维平台通常包含以下核心子系统及功能模块: --- ### 一、基础架构管理子系统 1. **CMDB(配置管理数据库)** - 自动发现与注册:通过Agent/Sniffer实现服务器、网络设备等资源的自动发现与信息采集 - 配置关系拓扑:可视化展示资源依赖关系(如服务器-交换机-存储逻辑组) - 版本化管理:保存配置项的历史变更记录,支持快速回滚[^1] - 示例数据模型: ```python class Server: def __init__(self, ip, os, owner): self.ip = ip # 服务器IP self.os = os_version # 操作系统版本 self.owner = dept # 所属部门 self.services = [] # 承载的服务列表 ``` 2. **自动化部署系统** - 裸机装机:PXE/Kickstart批量安装OS - 应用发布:支持蓝绿发布、金丝雀发布等策略 - 配置推送:通过SaltStack/Ansible实现批量配置分发 - 版本控制:与Git集成实现部署版本追踪 --- ### 二、运维操作子系统 3. **作业调度平台** - 批量命令执行:跨主机并行执行Shell/Python脚本 - 定时任务管理:Cron-like可视化调度界面 - 作业流引擎:支持复杂依赖任务(如先停服→备份→升级→启动) - 审计日志:记录操作人员、执行命令、返回结果[^1] 4. **监控告警中心** - 数据采集:Prometheus/Telegraf等采集主机/应用指标 - 智能检测:基于机器学习自动发现异常指标(如CPU突增) - 告警路由:根据业务重要性分级通知(企业微信/短信/电话) - 可视化大屏:Grafana定制业务健康度看板 - 关键指标公式示例: $$ \text{服务健康度} = 1 - \frac{\sum\text{故障时长}}{\text{总运行时长}} \times 100\% $$ --- ### 三、服务保障子系统 5. **事件管理平台(故障处理中枢)** - 告警降噪:将多系统告警聚合成单个事件工单 - 自动止损:预置应急预案(如流量激增时自动扩容) - 影响分析:关联CMDB定位受影响业务范围 - SLA报告:自动生成月度服务可用性报表 6. **日志分析系统** - 实时采集:Filebeat/Fluentd收集分散日志 - 异常检测:通过ELK Stack识别Error/Warning模式 - 关联分析:结合请求链路追踪定位根因 - 安全审计:敏感操作日志脱敏存档 --- ### 四、扩展能力层 7. **API开放平台** - 提供标准RESTful API供其他系统调用 - 如:`POST /api/v1/server/create` 创建云主机 8. **权限控制模块** - RBAC模型:基于角色分配最小化操作权限 - 操作审批:高危命令需二级审批(如rm -rf /) 9. **自动化测试集成** - 与CI/CD管道联动,发布后自动触发冒烟测试 --- ### 典型架构示意图 ``` 用户端 → 权限网关 → 作业平台 │ 监控告警 → 事件中心 → CMDB(核心数据源) │ 日志系统 ↗ 发布系统 ↘ API网关 → 第三方系统 ``` --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值