当下企业很多都热衷于建设运维自动化、智能化,通过技术革新代替繁杂的手工运维,提高生产效率的同时最大程度的减少人为失误。但是如何建设自动化运维,在不同的企业有着不同的建设方法和技术栈,虽然大多是以Python为主。一般说来,企业的运维发展由起步到成熟,大致要经过三个大阶段:运维无序化、运维标准化和流程化、运维自动化。
运维无序化主要表现在运维工作无规范统一,更多是团队成员依赖自身技术各自为战,着重于眼前运维工作,过多处于被迫接受和疲惫应付工作的状态。运维无序阶段提升工作效率主要依赖加人和加班,而且此阶段运维工作效率低下,人为失误较多,故障排除难度较大。长时间的运维无序化,对内团队成员极度疲惫和不自信,对外主要表现为不再被各业务部门和其他IT兄弟团队所信任。一般创业初期的IT运维处于无序化较多,如何解决结束无序化的苦恼,解放生产力呢?答案更多被提及的是运维自动化。然而面对众说纷纭的运维自动化平台,如何结合自身条件进行落地实现呢?答案很多,有购买商业产品(价格真的不便宜),有自主研发,结合本人推行运维自动化的实际经验提醒各位,不管哪种方式,运维标准化和流程化一定是首先要做的,否则运维自动化只能是空中楼阁,欲求不得。
什么是运维标准化和流程化呢?如果非要给出定义的话,那么我的定义是两个字:文档。
运维的标准化和流程化首先要以文档的形式进行展示,并且能够指导日常运维工作。国有国法,家有家规,冰箱洗衣机都有说明书,运维标准化流程化就是运维工作的国法家规,运维工作如何进行的说明书。相比开发、测试等其他岗位,运维工作直面生产环境,每一步运维操作与生产系统能否正常运行息息相关,稍有不慎就易产生生产事故。并且运维自动化的落地实施也是要基于运维的标准化和流程化,所以作为运维管理的第一步,不可忽略。
标准化和流程化的建设思路一般是包括三大部分:日常工作梳理、标准化和流程化制定、日常工作标准化和流程化执行。
一、运维工作梳理运维工作相对比较繁杂,结合实际运维工作,不同的公司又不同的划分方法,以某公司为例,大致分为数据中心(DC)运维、IT资源运维、服务运维、事件管理四个部分。
- 数据中心运维主要因为有自建IDC机房和部分托管在其他IDC机房的服务器,所以日常运维工作中有关于数据中心相关的工作,例如数据中心的设计和建设工作,数据中心日常巡检,数据中心权限管理、备件梳理管理、设备上下架等管理。如果是部署在云端的企业,对于数据中心的运维工作会少一些。
- IT资源运维主要是指计算、存储、网络和安全四大基础资源的运维工作。计算资源包括物理服务器的管理,如开关机、配置修改、资源增加等;存储资源管理一般包括自建分部署存储、商业存储、NAS等相关存储资源的账户权限管理、容量管理、监控等;网络资源运维管理工作主要包括网络权限管理、设备配置变更等等;安全资源运维管理主要日常与安全相关的规章制度和策略以及安全设备具体操作等。IT资源运维工作涉及日常运维工作基础资源,是整个运维工作的重点,基础资源的保障好坏,关系着上层应用服务的健康运行情况。
- 系统运维的日常大多是与服务运维相关。运维服务部署(如:Nginx部署、JDK、Tomcat的部署等)、服务的配置变更和服务发布、服务变更等。服务运维设计的标准和规范指导日常服务运维工作的进行,并且为自动化运维做铺垫,这要求在日常运维工作中,对于重复的手工运维工作尽量通过脚本或是其他变成语言实现自动化。
- 事件管理针对日常运维工作中出现的运维事件进行处理指导和提出管理方案。主要包括对事件进行分类、事件处理流程、如何汇报事件以及事件的总结等。
通过对日常运维工作所涉及的内容进行分类整理,并且加工提炼最后形成运维的标准和规范,将一些流程化的工作进行固化,并且逐步实现运维自动化,提高运维效率。
二、运维标准化流程化文档通过上一节对运维工作进行梳理,接下来进行运维标准护额和流程化文档的提炼。当然所做这一切都是基于公司自身的实际情况进行,切勿脱离实际,直接摘抄。另外一点,在制定运维标准流程之前,必须制定好文档编写得规范和标准,这样整体的规范流程文档的风格统一整齐。一般来讲,文档要尽量简洁,设计流程相关要图文并茂,着重对流程图的流程说明和关键点备注。
数据中心运维标准化和流程化
首先是数据中心运维相关标准流程规范。数据中心的建立在国内网以及不同行业都有相对比较同意的规范标准可供参考设置。一般对于自建数据中心的企业,对于数据中心的标准建立参考遵循国际标准、国家标准和行业规定即可。如《GB50174-2017 数据中心设计规范》、《GB 50462-2015 数据中心基础设施施工及验收规范》、TIA-942 标准等。建立完成之后,还涉及到日常运维巡检流程、对数据中心的备件管理中的备件申请流程、数据中心故障处理流程及其数据中心日常管理规范等。
一级类目 | 二级类目 | 标准规范名称 | 备注 |
数据中心运维 | 数据中心设计标准规范 | 国家标准、国际标准、行业标准等 | |
数据中心巡检流程 | |||
数据中心备件申请流程 | |||
数据中心故障处理流程 | |||
数据中心管理规范 |
IT资源运维标准化和流程化
IT资源运维主要对涵盖系统基础设施的计算、存储、网络、安全四个基础部分的运维其中着重偏向于硬件以及硬件配置相关运维工作。这其中涉及的规范和流程如下:
一级类目 | 二级类目 | 标准规范名称 | 备注 |
IT资源运维 | 计算资源 | 物理服务器申请流程 | 申请、评估、审核、采购、验收 |
物理服务器上架流程 | 布线、上架、安装操作系统 | ||
操作系统安装标准规范 | |||
物理服务器配置变更流程 | 申请、评估、审核、变更 | ||
物理服务器到期处理流程 | 自动触发申请、评估、迁移、验证、进入报废流程 | ||
物理服务器报废流程 | 申请、验证、审核、利旧建议、关机、进入下架流程 | ||
物理服务器下架流程 | 关机后15日、断电、下架、利旧、销毁 | ||
虚拟机/容器化申请流程 | |||
虚拟机/容器安装标准规范 | |||
虚拟机/容器配置变更流程 | |||
虚拟机/容器删除流程 | |||
网络资源 | 网络设备申请流程 | ||
网络设备上架流程 | |||
网络配置变更流程 | |||
网络设备报废流程 | |||
网络设备下架流程 | |||
安全资源 | 安全设备申请流程 | ||
安全设备上架流程 | |||
安全设备配置变更流程 | 配置升级、扩容、端口开通、访问控制、策略修改 | ||
安全设备报废流程 | |||
安全设备下架流程 | |||
存储资源 | 存储设备申请流程 | ||
存储设备上架流程 | |||
存储设备配置变更流程 | 包括硬盘添加、更换,容量扩容 | ||
存储设备报废流程 | |||
存储设备下架流程 |
服务运维标准化和流程化
对于日常运维服务相关的标准化和流程化主要是标准化部署、配置以及流程化的处理如发布、变更等,这其中还包括数据库的数据处理流程、生产账号管理流程、以及备份和监控的标准规范等。
一级类目 | 二级类目 | 标准规范名称 | 备注 |
服务运维 | 运维服务申请流程 | ||
Nginx安装标准规范 | 安装、优化配置、安全加固、备份、监控、日志备份=>脚本(包括高可用和负载均衡集群部署) | ||
Haproxy安装标准规范 | 安装、优化配置、安全加固、备份、监控、日志备份=>脚本(包括高可用和负载均衡集群部署) | ||
Apache安装标准规范 | 安装、优化配置、安全加固、备份、监控、日志备份=>脚本(包括高可用和负载均衡集群部署) | ||
JDK安装标准规范 | 适合只部署JDK的情况,如果申请Tomcat等依赖JDK的应用,不需要单独申请JDK安全 | ||
Tomcat安装标准规范 | 安装、优化配置、安全加固、备份、监控、日志备份=>脚本 | ||
Weblogic安装标准规范 | 安装、优化配置、安全加固、备份、监控、日志备份=>脚本 | ||
MQ安全标准规范 | ActiveMQ、RabbitMQ 安装、优化配置、安全加固、备份、监控、日志备份=>脚本 | ||
Redis安装标准规范 | 安装、优化配置、安全加固、备份、监控、日志备份=>脚本 | ||
MongoDB安装标准规范 | 安装、优化配置、安全加固、备份、监控、日志备份=>脚本 | ||
大数据平台安装部署标准规范 | 大数据生态圈组件安装标准规范 | ||
Oracle安装标准规范 | 单机、DG、RAC、OGG同步 | ||
Mysql安全标准规范 | 单机、主备、MHA、DB中间件 | ||
运维服务发布流程 | |||
运维服务变更流程 | |||
运维服务删除流程 | |||
数据手工处理流程 | |||
信息风险源管理流程 | |||
生产系统测试账号管理流程 | |||
生产系统管理账户管理流程 | |||
备份管理规范 | 备份对象、备份时间、备份频次、备份耗时、备份验证、备份监控 | ||
监控管理规范 |
事件管理标准化和流程化
针对日常运维过程中出现的事件进行规范化和流程化管理与指导,使工程师在处理运维事件的时候有章可循,以达到事件通知上通下达、规范化处理、快速高效处理的目的。
一级类目 | 二级类目 | 标准规范名称 | 备注 |
事件管理 | 运维事件分类规范 | ||
运维事件处理流程 | 故障处理、安全事件处理 | ||
运维事件通报流程 | |||
运维事件处理规范 | |||
重保运维管理规范 |
通过运维工作梳理,进行运维标准化、流程化文档的编写之后,接下来就是最重要的落地执行。有了规范标准和流程,那么在日常运维工作中就不应该出现随心所欲、按照自己习惯进行运维工作的现象。
其实在标准化和流程化落地的初始阶段,往往会给工程师带来各种不方便和诸多不适应。典型的例子如下:标准化、流程化给工程师带来的感觉是事情变得复杂繁琐,自己的手脚被束缚,本来很简单的一个事情,几条命令几秒钟就可以搞定,但在执行标准化和流程化之后,变得需要涉及多人或岗位,同时也需要几十分钟甚至几个小时才能搞定,而最后实际操作的可能也就一开始的那几条命令。这是标准化初期的普遍现象,对于出现这种问题要积极沟通解决,让工程师们尽快度过这种看似繁琐、效率低下的初期阶段。解决方法有三:
- 首先是对工程师以及流程干系人进行标准化和流程化意义的普及。让大家了解知道进行标准化和流程化的意义,标准和流程得进行运维工作,可以大大减少人为失误,同时让大家在同一标准下工作,减少交流成本,相互之间的配合也会更加紧密。团队协作流程化处理问题最大程度的减少相互之间的影响。最后,标准化和流程化是最运维自动化最基础准备。
- 加快运维自动化的建立。尽快将固化的标准和流程进行自动化的编码开发,大大减少人为操作,提高运维效率,这样运维工程师的日常工作因为大大减少人工操作,较以往会更加轻松。
- 优化标准化和流程化。标准化和流程化的制定是基于实际的日常运维工作的,在实际执行过程中,应该根据实际情况,进行不断的优化调整,以达到最优。
通过以上三步,减少工程师在执行运维标准化、流程化的烦恼,让大家积极参与进来,推动标准和流程的实施,以快速实现运维的自动化。
标准化和流程化的落地,往往还会伴随着对已存在的系统部署方式进行迁移至标准化的操作。这其实要求我们在执行标准化和流程化以后的所有运维操作完全按照运维的标准和流程进行,对于执行以前的运维工作要进行迁移,目的是要实现所有系统和运维的标准、流程化。对于迁移,一般比较好的方案是:首先保留已存在非标准化系统,同时搭建标准化环境,进行已存在系统的部署并进行测试,测试无误后,与已存在非标准化系统并行运行,同时提供对外服务一段时间后,在评估,最后将已存在非标准化系统进行下线,以达到系统平滑得由非标准化迁移至标准化的目的。
四、总结标准化和流程化作为运维管理体系的基石和运维自动化的第一步,在进行运维管理工作中必不可少,而且要实现彻底的标准统一。在进行落地的过程中,要适当的与运维自动化并行,加快自动化的脚步,只有这样才能最大程度的减少人为失误,减少人力成本,提高运维的效率和质量。