前言
IT运维是一项复杂的工作,要把运维工作做好,不仅要知道是什么还需要知道为什么。卖什么吆喝什么,要讲明白这件事还得从为什么要做运维开始。
也许大家会想,作为业内人士,没有必要讲这个吧,这里先卖个关子,因为要由此引出一个及其重要且经常被忽视的一个点。
IT已经成为构成现代企业诸多要素之一
互联网企业更是如此,这类企业不仅将自身的业务构建在IT系统之上,而且IT系统也是其自身业务的具体表现形式。今天诸多的网站、应用都可以看做IT系统。
当下的IT系统日趋复杂,依赖各种软硬件、网络的支持。试想,如果我们构建一个IT系统但是没有人管会怎样? 答案是它应该会正常运行一段时间,然后就会出现各种问题,最终失效。原因很简单,IT系统所依赖的软硬件及网络组件都无法做到100%可靠,而且系统也会存在大量的环节需要人工干预。
互联网的出现又为IT系统增加了新的问题,这个问题就是性能。传统IT系统的负载相对平稳、可预测。而互联网上为公众服务的IT系统会因为突发访问出现性能不够,无法服务的问题。以12306为例,因为系统负载估计不足,造成系统初期频繁无法访问的情况出现。
在前面我们讲到,IT系统已经是构成现代企业的要素,大量的业务是依托于IT系统的。一旦要素失效,则企业的业务就跟着失效。因此企业不仅要构建IT系统,还要让IT系统运转正常。这就是企业为什么需要IT运维的根本理由。
要做好IT运维工作,必须了解几个基本的事实:
所有的IT组件(软件,硬件,网络)都会出现问题;
人都会犯错误;
所有的系统都有门限,超出使用门限就无法工作;
业务在发展,系统在演化,技术在进步;
企业中所有的行为都是有成本的,既有显性成本也有隐性成本。
所有的运维工作都是围绕上述的事实展开的。
前面埋了个伏笔
这里就引出最为重要的一点:IT系统要运维,但运维的目标是什么?要将系统运维到什么程度才好?
这个问题常常为技术人员所忽视,也常常是技术决策层和执行层面产生剧烈冲突的地方。企业有自身的目标,这些目标逐级分解,分解成各种子目标。
IT系统的运维就是子目标之一。既然各个子目标都是由总目标分解来的,又哪来的冲突呢?
通常在企业里成本控制和IT运维是两个team来执行的。两个Team就会为各自的目标打得不可开交。究其原因就是这个问题没处理好。
那么花多少钱才是合适的? 这个平衡点在哪里?
简单的说就是,IT运维的目标必须和企业的业务目标一致。超出企业目标和达不到企业目标都是有问题的。有朋友可能会想,达不到当然有问题,可是超过企业目标岂不是说明工作做得好? 答案是,溢出部分是有成本的, 这部分溢出的成本就是企业的损失。所以溢出也是有问题的。
记得当年有位同事在回答老板问题时,讲要在写字楼里配柴油机以保证写字楼停电时OA系统的可靠运行,写字楼停电,电脑都用不了,OA系统能工作大家也上不去啊。当时老板一脸黑线的面孔历历在目。
“IT运维的目标必须和企业的业务目标一致”这句话光简单说是不够的。具体执行的时候就需要很多指标来让公司明白,例如,保证58还是保证724,最长能承受的停机时间是多少? 有没有维护窗口? 是否允许服务降级。 核心思想就是从系统不可用对业务的影响程度进行评估,然后根据具体的约束条件进行设计,达到业务的要求。
一般而言,主要是两个指标进行考察,一个是最长的不可用时长,一个是发生不可用的频率。两个指标基本能体现一个系统的可用性。
不可用时长比较好理解,如果每次不可用时间很短,次数有点多有那么严重么? 还以12306 为例,其实每次系统不可用的时间很短,就是次数多了点。就像红楼梦里,贾母虽然很喜欢黛玉,最终还是让宝玉娶了宝钗。偶尔生病可以接受,但是总生病就不好了。
总结
要想做好运维必须知道,运维的目标是为企业的业务目标服务的,也必须与之相一致。与目标相一致也不是说说的,需要将运维目标用一组具体的指标予以表达,然后衡量该目标是否与企业业务目标相一致。
此文转载自高效运维,是首都在线总工程师周东波在GOPS上海全球运维大会上的主题演讲,原题目为《运维背后的逻辑》,此文稍有改动。