编者按
“大牛V课堂”是Geekbang核心栏目,每次我们以线上微课堂的形式邀约一位互联网资深大牛与大家分享专业学习、职业规划和心灵成长。
本次请到的大牛是腾讯互娱运营管理总监刘栖铜,以下是他分享的精华整理。关注公众号geekbang01,遇见下一位大牛。
正文
腾讯互动娱乐事业群的主营业务是游戏,所有腾讯游戏都是由这个事业群做的,估计很多人都玩过,像《英雄联盟》、《全民突击》等。我所在的部门叫运营部,负责所有腾讯游戏的技术运营工作。简单解释一下,什么叫技术运营工作,这里包括了几个部分:运维、营销开发、数据分析和数据挖掘、用户运营(所谓用户运营,不是传统的客户服务,是一些高端的用户运营。
比如说在腾讯游戏上一年花八万,就是我们的VIP,我们有专属的服务经理对接,就像银行的VIP用户一样。这里就不展开了,重点说说我所负责的运维管理工作吧。如上所说,我们所负责的运维工作,是运营部的一部分工作。我们现在运维了几百款游戏,而且数字还在快速增长,特别手游加入以来,每年都有一两百款。
简单介绍一下腾讯游戏运维团队的发展历程:我们团队是2003年随着腾讯代理《凯旋》游戏而成立的,发展到2005年的时候,我们做了一件事情,就是DO分离,DO分离的概念前些年提得比较多,现在大家好像不再提了。回头来看,我们觉得DO分离是很有必要的,因为开发跟运维需要具备的核心能力是不同的。
接下来,在2006年的时候我们做了QO分离,意思就是我们把质量管理团队(QA)和运维分离开了,这个后面我会再讲一下。随着团队进一步扩张,业务进一步增加,2007年的时候我们把DBA专业团队分离出来了。
到2009年的时候发现业务发展很快,老板不给我们这么多人,怎么办?光靠人去填的模式已经运行不下去了,所以当时成立了运维开发团队,专门建设运维工具。同时在2009年我们还成立了一个内部安全团队,这个团队可能很多公司都没有,比较特殊。
因为大家知道游戏行业,有些游戏类道具非常值钱,说不准哪个同学手一抖给自己加个几十万,所以我们成立了内部安全团队,做安全监控,其中也包括权限控制,大家都知道,自动化系统权限控制非常重要,如果这个没控制好就会出现灾难性后果。
时间到了2012年,我们开始提倡运维转型,鼓励运维向运维开发转型,让运维自己开发所需的工具来实现自动化。现在,我们提倡运维服务化和平台产品化,这个后文会提到。
接下来,我从文化、组织、人、流程、工具这几个维度分享一下运维管理的点滴经验。
我们团队的运维文化
运维文化:当一个团队规模较大时,例如我们团队,有两三百人的规模,这个时候我们可能需要一些文化层面的东西来统一大家的思想,让大家在行为上按照我们的文化来思考和执行。我们目前提倡的文化,叫“运维四化”:服务化、标准化、自动化、产品化。标准化和自动化大家都比较好理解,我就不讲了。重点强调一下我们为什么提出运维的服务化。
为什么要“服务化”?
运维的本质到底是什么?我从2002年开始做运维,一直到现在,都算是在运维行业里摸爬滚打,以前,我觉得做好发布变更、故障处理,让业务保持运行稳定就是运维的价值,但通过这几年的思考和实践,我觉得那是不够的。
那么运维的本质到底是什么呢?我觉得是服务,是服务于业务,因为运维是用技术解决业务问题,运维的价值要依托于业务才能体现。运维不是因为技术高深,或者管理了几万台服务器而很牛逼,也不是能玩转很多开源工具而很牛逼,这都不是运维的关键。
我提一个观点:对于运维来说,服务第一,技术第二。运维技术再牛,如果不能服务于业务,帮助业务取得成功,那价值也是有限的。那么怎样服务业务呢?我们总结了四点:
- 贴近业务:就是我们一定要与业务走得比较近,保持信息的畅通;
- 理解业务:要知道业务目标是什么,用户群是什么,商业模式是什么样的。之前我见过很多运维,甚至在公司做了半年、一年,还不知道所运维的业务的商业模式是什么,这样的话我们怎么能有针对性地提供服务,去帮助业务成功呢? 理解业务还意味着要站在业务运营的角度思考问题,而不仅仅站在运维的角度思考。
- 挖掘需求背后的价值:我们经常会收到运营人员提出的需求,在理解业务的基础上,我们要挖掘这些业务需求背后的价值,比如说运营人员让发一个版本,做为运维,我们是不是把这个版本发布完就OK了呢?肯定是不够的,我们还要去看业务发这个版本的目的是什么?可能是为了拉新用户,也有可能是做个活动去拉收入,或者是修复bug。每一个版本的目的不一样,运维所做的事情是可以不同的。比如这个版本是拉新用户,我们把版本发布完以后,还可以采集更多的数据,去帮助运营人员分析,看是不是达到了拉新用户的目的。或者协助运营人员分析,这个版本的用户体验对于拉新用户是不是有瓶颈。这都是运维可做的事情,也是业务运营很需要的事情。
- 扩展服务价值:着眼于业务和服务,我们可以不断挖掘到新的价值点,扩展运维服务的价值。
当然了,这里绝不是说技术不重要,优秀的运维服务需要强大的技术来支持。举个例子,你想协助运营人员做用户体验的分析,这需要较强的技术能力来支撑。因为像上述的版本数据分析对实时性的要求很高,如果你没有及时分析出来,错过了运营时机可能就来不及调整了。
可以说,业务视角和服务意识决定了运维服务可以拓展到哪里,而技术能力则决定了这些服务最终可以实现多少。
关于组织
这里想分享的经验是:当团队和业务发展到一定规模的时候一定要考虑到专业化分工,业务和团队规模小的时候没必要分的太细,因为业务场景对专业性的要求可能不高,随着业务发展和团队变大,专业性的要求就高了。
所以我们现在的内部划分成5个角色,第一个角色是运维规划。大家可以认为它是运维的PM,他起到的作用是充分理解业务需求,挖掘需求背后的价值,同时他也熟悉运维内部的各种资源,可以协调各种资源来满足业务的需求。这些运维规划都是从运维成长起来的,懂运维。
第二个角色业务运维,这个就不讲了,大家都清楚。
第三个角色DBA,大家都知道DBA的重要性,他们最重要的职责之一就是要保证数据的安全。一个业务,就算是遇到像携程这次的情况,就算全部线上环境都没有了,但是只要数据还在,业务都还是可以恢复的,但如果连数据都找不到了,那就真完蛋了,所以DBA一定是独立的,一定要保证数据是万无一失的。
系统运维这个角色也不说了,大家也比较清楚。
还有就是运维开发的角色,我们觉得运维开发不是传统的开发,运维开发首先是运维,其次才是开发,他们需要站在运维视角看问题的,站在运维视角开发工具给运维用。
关于人员管理和培养体系
组织里最重要的是人。在一个一定规模的团队里,建立人员的成长和培养体系是很重要的,尤其像规模到几百人的时候,我们怎么样保证团队里的同学们具备相应的能力和成长空间。
在我们团队里,有一套运维的成长体系,运维同学希望从事管理或者协调方面的工作,可以往运维规划方向发展;如果希望从事开发方面的工作,可以向运维开发方向发展。
配合成长体系,有一套培养体系。新人加入以后,首先有新人培训。这里所培训的内容都是与运维相关的,比如运维系统的培训,在新人培训里有专门的篇幅是安全意识相关的,从刚入职开始就灌输安全意识。此外,新人培训中还包括腾讯游戏运维血泪史,通过分享之前的教训提高新同学的运维操作意识。
新人在入职以后到转正有三个月,在这三个月中,一般情况下新同学不能独立操作正式的运营环境。只能在导师的带领下操作。
那怎么才能具备独立操作能力呢?需要考运维上岗认证,这个认证包括考试和评估两个环节,考试的内容大部分是新人培训的内容,例如安全意识、运维操作规范等。
评估的形式是几位资深的运维现场对被评估者进行评测,考察他们在各种场景的理解和反应,这些是不能通过背书本知识来回答的,所以还是比较考验新同学的能力和意识的。
通过上岗认证后会拿到一个上岗证,以前是会发一个红色的证书,现在不发了实体证书了,变成电子的了。这个上岗证后面还有一个作用,后面我会讲到。
新同学转正后,日常工作中会接触到很多技术培训和分享,这些大部分是由内部同学贡献的,当然也有公司内外部的各种培训资源。
当某位同学在团队内工作了一段时间之后可能会面临成长的问题,我们会挑选出有潜力的同学上运营规划培养班或运维开发培训班。这两个培养班分别培养运营规划和运维开发。拿运营规划培养班做例子,选定的同学经过半年的培养后通过考核才能成为的运营规划,通过率大概在40~60%;
运维人员的考核体系
运维人员的考核分为几个部分:
第一,业务指标。
业务指标就是业务的一些关键性指标,比如可用性、发布效率等等,还有很多其他指标。这些指标的作用是评估运维人员的基础工作完成质量,这是由QA,就是前面所述的质量管理团队统计的,不是运维自己上报的,这样可以保证其客观性。
第二,关键事件。
关键事件是运维自己制定的,用于引导运维不断优化工作。这个关键事件每个月定一次,由运维和他的leader和运维规划三方一起制定。举个例子,我们发现某个游戏它的发布时长过长,就可以把发布时长优化做为这个游戏的运维人员这个月的关键事件,目标是把这个业务的发布时长从多少降到多少。制定关键事件的目标时比较细,要求是量化的,月底时运维根据完成情况获得关键事件的得分。
第三,加分项目。
例如做分享和培训都可以加分,积极参加团队建设也可以获得加分。
第四,扣分项目。
我们的考核思路是尽量用正向加分的方式引导,一般不扣分。除非是人为失误造成业务故障。所谓人为失误指运维操作不当造成的问题,我们对人为失误持“低容忍”的态度,因为我们觉得作为运维,意识是非常重要的,操作时要时时刻刻秉持小心谨慎的态度,抱着敬畏的心情对待运营环境。
如果出现人为失误造成业务故障的情况,对于个人会有什么影响呢?
前面提到的运维上岗证的另一个作用就在这里了,大家都知道违章后驾照扣分这项处罚措施挺有威慑力的,我们吸取了经验,对运维上岗证也实行积分扣分制度:运维上岗证每半年都有10分的积分,如果出现人为失误的故障就从中扣除一定的分数,如果分数扣完,上岗证就会被注销,那么这位运维就需要被评估是否适合在运维岗位上继续工作了。
当然,这个扣分制度的目的肯定不是为了处罚,主要还是希望通过这种方式提高大家的操作意识,避免人为失误。有的同学可能会问,为什么不靠自动化来降低人为失误,而要用这种考核手段?
这里我想说,根据我们的经验,游戏运维是很复杂的体系,特别是团队大了以后,自动化程度再高还是有很多人为失误的空间,最终的决定性因素还是人,所以,意识强化和考核手段还是不可或缺的。
关于流程的几点思考
流程的本质就是管理和控制,其实大家做的每一件事情都有流程,随便做一个发布,做的这些步骤就是流程,所以流程其实是无处不在的。很多运维同学都觉得流程好麻烦,觉得流程就是给运维的桎梏,其实用好流程是可以保护运维的。我们很多时候需要跟运营和研发配合,如果用好了流程这个工具是可以保护运维利益的。
但是,流程执行起来的确有成本,那怎么降低流程的成本呢?
我们觉得流程应该“隐形化”,就是让流程融入到运维系统中,让运维同学不用花额外的精力去执行流程,感觉不到流程的存在,让流程起到控制作用的同时,尽量不降低我们的效率。
关于工具建设的几点思考
首先,我们认为工具的建设者必须是工具的使用者,要懂得应用场景,否则的话,造出来的工具是不好用的。因为在这里我们是吃过一些亏的,刚才提到2009年我们就建立了运维开发团队,但是到2011年发现我们工具覆盖的情况还是不够好,运维不愿意用,我们建立的是专业的开发团队,有产品经理、开发、测试,但是为什么做出来的工具就不对运维的胃口呢?
我们后来发现,开发团队并不懂运维场景,虽然他们也会做很多运维需求的访谈,但总是发现做出来的东西不是运维想要的。
所以后来我们改变了工具开发的模式,改成在运维中培养运维开发,让运维开发自己开发工具给自己用。这样的话,为了降低开发成本,我们做了蓝鲸平台,运维只要经过两周左右的培训就可以在蓝鲸上面开发工具。
标准化是自动化最重要的一个基础,如果没有标准化的话自动化是不会长久的。如果业务之间架构差异过大怎么办呢?可以降低标准化的维度,比如我们去实现原子操作的标准化。
了解的同学应该知道,游戏架构是很不标准化的,游戏不像Web应用,有很多框架模型,它没有,各家厂商各做各的,因此我们只能做原子操作的标准化,然后再在其上去组装各种场景作业。
我们做自动化一定要打通企业内的各个信息孤岛,全流程的自动化才是真正的自动化。只有都打通了,在作业执行过程中才不会中断,可以实现无人值守的自动化,蓝鲸平台就是这样的,它有一条ESB,打通了很多外部的系统接口。运维在蓝鲸上开发工具需要打通其他系统的直接调用就行了,大大提高了开发效率。
产品化:运维平台要以产品理念建设
最后,我想说的是,前面提到运维文化中有一个产品化,为什么提产品化?因为我觉得运维平台是要以产品的理念来建设的,这里包括很多的层面,这里就简单提其中一点:重视平台的用户交互。以前,大家觉得运维平台是内部系统,能用就行,交互好不好无所谓。
但是我们发现,内部平台也需要交互优良,如果交互不好的话,可能有以下负面作用:一是交互不好容易造成误操作的情况引发故障;二是交互不好,很难用的话可能会被内部用户抛弃,被新的系统或平台替代。
所以,运维平台做为内部平台,也需要重视用户的交互,一定要有良好的界面,要让用户操作起来比较方便而且不容易发生误操作。
活动推荐
腾讯游戏自 2013 年就发起了游戏运营技术论坛,期待以开放的态度,搭建行业交流平台,共同营造互联网游戏行业的良好生态。2015年7月28日,互联网游戏行业上下游优秀企业的众多核心高管、技术牛人、运营高手将聚在一起,共把茶盏,从游戏云、大数据、用户运营等维度一起探寻、解读云时代的游戏运营之道,运营之美!感兴趣的同学可以点击这里报名。