一、前言
这是一篇杂谈,可能会涉及很多概念性东西,目的是加深自己在运维这一业务领域的理念知识
二、运维简介及职责
运维是一个很宽泛的概念,这里一般是指互联网运维,运维在公司的日常运作中扮演着一个非常重要的角色,随便举两三个例子,比如软件安装、日常巡检、服务器资源分配等等,都是需要运维工程师来进行统一管理、协查、部署等。一个互联网产品的诞生也往往充斥着运维的身影,举一个产品开发的例子:
产品发布前:
运维工程师需要评估该产品所需要的服务器资源、网络资源和资源分布情况,同时还需要评估产品整个架构的合理性,确保资源不会浪费,最后便是搭建好环境以供开发和测试
产品发布时:
这也是最为重要的一环,运维工程师负责将待发布产品与对应硬件资源整合形成一个能完整提供服务的产品并正是对外发布。当然某些产品的更新、升级其实也算是产品发布这一环节,往往也都是依赖于运维工程师
产品运行时:
此时运维工程师的工作主要分为三大类:监控、巡检以及故障处理。监控即对服务的运行状态进行实时的监控,以保证能随时发现服务的运行异常以及资源的消耗情况;巡检即从各服务器中输出重要的运行日志参数以大概评估服务的整体运行情况,以发现服务隐患;故障处理指的是运维工程师能对服务出现的异常进行及时的处理,当然在服务上线时也需要给出一系列可能的故障处理预案,以在出现问题时尽量快而准的使用预案机制解决,以避免故障的升级减少损失,当然在这一步对数据进行备份也是非常重要的一环,因为谁也不能保证不会出现某些不可抗力导致的机房大部分故障,此时的灾难恢复便显得格外重要。
总而言之,运维的职责覆盖了产品从设计到发布、运行维护、变更升级乃至下线的全部过程,是公司中非常重要的一环。
三、ITIL概述
ITIL即信息技术基础架构库(Information Technology Infrastructure Library),由英国政府部门CCTA在20世纪80年代末指定,现由美国商务部OGC负责管理,主要适用于IT服务管理(ITSM)。ITIL为企业的IT服务管理实践提供了一个客观、严谨、可量化的标准和规范。
ITIL的核心模块是服务管理,这个模块一共包含了10个流程和一项职能,这些流程和职能又被归结为两大流程组,即服务提供和服务支持流程组。其中服务支持流程组归纳了与IT管理相关的一项管理职能及5个运维级流程,即事故管理、问题管理、配置管理、变更管理和发布管理;服务提供流程组归纳了与IT管理相关的5个战术级流程,即服务级别管理、IT服务财务管理、能力管理、IT服务持续性管理和可用性管理。
四、浅谈CMDB
背景
作为运维人员:
我想知道现在总共有多少配置项,以便实时了解配置项的总数量
我想快速找到一个配置项,以便能快速查看此配置项的信息和状态
我想知道我管理哪些配置项,以便于我掌握配置项的整体情况
我想知道当前虚拟机是否可用,以便于判断是否需要重启
我想知道配置项的整个生命周期变更了什么,变更了几次,以便于对配置项进行跟踪
我想恢复到某个时间点上的所有配置项的数据,以便于在数据错乱时还原数据
我想随时修改模型,以便于用户根据实际情况进行模型调整
我想进行批量录入数据,以便于对用户数据的迁移和便利
......
简介
CMDB即配置管理数据库(Configuration Management Database),它负责存储与管理企业IT架构中设置的各种配置信息,简单说它其实就是个管理IT设备配置的数据库而已。它与所有服务支持和服务交付流程都紧密相连,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。
在实际项目中,CMDB常常被认为是构建其他ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系。
下面针对CMDB中常见的名词术语先进行粗略解释:
CMDB从另一方面来看只是IT架构的一个投影,里头只是存储记录着IT架构的配置项,以及配置项与配置项之间关系信息的数据。那么扯了这么久配置和配置项,到底什么是配置和配置项呢?
配置:从字面意思来看,配置意味着分配与设置之意,从大了讲,把一堆刀片服务器组成集群,这是配置;从小了讲,把一个操作系统的环境变量做一些参数调整,这是配置。配置是动作,IT架构是主体,当我们在讲IT架构时,如果我们在脑海之中只泛起那成百上千台各种IT设备,那是远远不够的,我们还需要在脑海中联想到这些机器上部署着的大量软件与数据库,但是这还是不够,我们还要进一步的意识到,这些每一个对象内部的配置以及外部的配置是什么,这才是构成一个IT架构的真正实在。如果有一个全息的复制技术,当我们需要完整的将一个IT架构映射出来时,我们只需要两个东西,一个是配置,一个是资源,我们用这些资源通过配置搭建一个IT架构或IT架构的任何一个部分。
配置项:理解了配置概念,那么只要有一个东西需要进行配置,就可以认为它是一个配置项,不管它大到一个设备,还是小到一个程序的参数。从CMDB产品来看,配置项往往就是CMDB中的CI与CI属性,在CMDB中,我们往往用CI+属性这种简单的数据结构来描述我们认知中的IT世界。
CMDB产品的第一步是存储与管理配置,那么之后便是对数据的消费,而消费往往与场景有关,一上来就把企业全部的IT对象、属性和关系全部囊括进CMDB的CMDB建设,都是耍流氓。而CMDB数据使用场景往往需要每个企业梳理出自己真正需要的场景,并且这种梳理应该是基于企业的日常运维工作以及下一步运维提示的目标来指定,而不是离地三尺,肆意空想。
比如说各种自动化运维操作场景、IT环境监控和告警场景、流程变更场景等等等
五、运维自动化概述
当企业所管理的基础架构越来越庞大,业务应用越来越复杂,依赖手工操作不但耗费大量人员的精力,降低运维生产效率,还容易误操作导致灾难后果,因此运维自动化能力就显的很迫切。
运维自动化的一种方案是面向被管对象整理出运维活动,并基于脚本开发定义出原子操作,再将原子操作组合成满足运维场景的编排,赋予相应的运维角色,然后由作业调度引擎根据人工或定时规则触发执行形成运维作业,调度管理网关和操作代理完成最终操作任务执行。通过原子操作和运维场景编排的不断积累,可以逐渐满足软件安装、应用部署、配置变更、系统巡检、故障处理、作业跑批、合规检查等场景的部署自动化,最终实现数据中心和业务应用运维的自动化。
六、ITSM流程概述
ITSM即IT服务管理(ITService Management),这是一个很宽泛的概念,根据百科介绍,ITSM是一套帮助企业对IT系统的规划、研发、实施和运营进行有效关联的方法,是一套方法论,起源于上文提到的ITIL。
那么简单来说ITSM其实就是一种以流程为导向、以客户和业务为中心的方法,它通过整合IT服务与组织业务,提供组织IT服务提供和服务支持能力和水平。总结一下有三大重点:
1、以流程为基础 2、以客户和业务为中心 3、注重服务品质和服务成本的平衡
由于ITSM涉及的模块非常多,这里只稍微谈一下流程在管理中的作用,根据上文CMDB和运维自动化的介绍中,可以发现这两者在具体实施中都有涉及到流程的实际场景,比如配置项变更流程,发起编排流程审批等等,一般来说一个规范的企业内部会涉及到许多审批操作,这便依赖于流程功能。
下面以三个角度来粗略介绍下流程产品功能:
作为管理者:
我想有类似visio这种画图工具定义流程,以便于快速直观的配置流程
我想流程定义支持不同属性走不同分支,以便于实现动态流转的流程
我想流程定义支持并发流程的定义,以便于实现多个部门协作的流程
我想流程支持对每个审批节点人员的设定,以便于能够限定不同节点由不同人员审批
我想流程定义支持会签配置,以便于支持多人同时参与审批的场景
我想能设置不同审批节点看到的表单内容不同或编辑的内容不同,以便实现审批人员只能看到或编辑自己有权限的内容
我想能便捷的定义表单布局,以便实现内容合理化展示
我想能定义出多种表单输入方式,例如文本、下拉等,以便实现不同数据的录入
......
作为审批人:
我希望能看到待我审批的清单,以便快速审批
我希望能快速查找我创建的和我处理过的流程数据,以便我跟踪处理
我希望能通过条件检索查询目标工单,以便于快速定位工单
我希望有多种工单审批操作,包括提交、回退、改派等,便于不同的审批场景操作
我希望工单分配任务后能够发送通知消息给相关人员,便于处理人及时处理
我希望能够查看当前工单审批的历史记录和流转路径,便于正确审批
......
作为领导:
我希望能够有高级权限干预工单处理,便于一些异常工单流转
我希望能看到一些工单的分析数据,包括总数、代办数量、逾期数量,便于工作的合理安排和跟进
我希望能看工单相关的绩效统计数据,便于人员工作绩效评估
我希望能够导出工单数据,便于审计
我希望能够制定工单处理时效考核标准,便于实现工单审批可度量
......
运维工程师QQ在线交流群:580175957