我的演讲题目是关于运维如何从堆积如山的日常工作中解放出来。
我是高效运维的发起人,开放运维联盟和可信云一样,我们都是属于数据中心联盟底下的组织,作为我们而言是挂靠的关系,我是高效运维社区以及GOPS发起人,同时也是DevOpsDays中国联合发起人。我自己本人2004年开始一直在做这个行业,目前已经创业,做运维社区以及DevOps的事情。我这边和我的朋友们一起做了一些运维的。前两天刚好是第二个724运维日,腾讯游戏等很多公司都有很多活动。我也是国内第一个DevOps Master。高效运维社区是国内大的垂直运维社区,致力于运维的DevOps转型。我们的公众号在一年的时间有188万人次的访问,这也是我们感到比较自豪的。最近的两个活动,一个是728 GOPS全球运维大会·北京站,还有818 DevOpsDays上海站。
运维怎么从堆积如山的日常工作中把自己释放出来,传统有三招,在这三招之外还有第四招。先看一下传统三招,第一招是自动化,自动化的实现有很多途径,可以你自己去找几个人,自己去做一个自动化,自己去做一些研发的产品。第二你也可以去买现成的商业级的产品,还有一个,你可以既不是买也不是开发,你可以去腾讯蓝鲸,用他们的社区版去做很多上层的建设。运维自动化只能解决部分的问题,第二招是招人,能够缓解很多压力,但是招人也比较难。第三招是走人。
对于我们而言,还一个路子,这个路子实际上二十年前就有了,但是我们运维局限在自己的视野里,把很多事情忽略掉了,今天可以把这个事情捡起来看一下。我们自己只有两只眼睛和两只手指,运维很多时候的问题在底下,你会同时一天做了十件二十件工作。我们是没办法去判断到底是真的重要紧急还是假的重要紧急,它在公司产生的价值有多大,所以很多时候决定我们在一个时间点做什么,决定谁最着急。这里就会有很多问题。当我们一天要面对很多并发的时候,这个时候我们怎么做一些这样的优化。这个议题比较有意思,跟我们平时技术的问题关系不是很大。横坐标如果说是同时并发的数量,纵坐标是这两个的时间。第一个时间是灰色的,表示我们在每一个项目或者每一个任务上我们的工作时间,或者说有效时间。另外一个是红色的,因为我们进行一个上下文的切换所导致的丢失的时间。或者简单说,灰色是代表有效时间,红色代表务要时间。看一下示意图,具体情况跟这个不太一样,如果说我们在这个时刻只是做一件事情,那很明显,有100%时间都是有效时间。如果我们是同时做两件事情,这个时候的情况就会不一样,有效时间这个只是40%,另外无效时间是20%。有人会问,加起来不是100%,这个值加起来是100%,因为我们的这个值是说有一个任务的时间,因为你现在是有变化两个任务,2x40%再加上20%。如果有三个并发,这个时候丢失的时间或者无效时间就是有40%了,如果同时去做5个任务,这个时候实际上我们的无效时间可能达到80%。一天工作8小时,你觉得一个公司能够创造价值的工作时间是多久,会有4、5个小时吗,没有,实际上也就是2、3个小时。怎么把并发的事情去做些优化,怎么能够让我们的日常工作做一些简化或者价值的体现,我们可以这样来看一下。今天时间有限,实际上我讲的是怎么用精益看板来对我们工作进行优化,以及让我们工作的价值更好的体现出来。
这不是我们独创的,是由一个德国人创造出来的,我们看看他的玩法。这里是一个小游戏的形式,精益看板一日游。最左侧是需求,ABCDEFG,最往前面的肯定是最紧急的,第一步很重要,第一步的价值是告诉我们,到底哪些事情要先做,哪些事情要后做,需要排序。以前我们排序往往是无序的排序。第二列是预备分检阶段。第三个是开发,第四个是测试以及发布。这个时候在底下,开发有2个团队,测试1个团队。什么时候效率是高的,当这个团队一次只做一件事情的时候,2-2-1是说容量,或者说对于一个团队而言,最多他们只能同时做两件事情,这个时候只有一个测试团队。案例是一个需求,是一个案例开发运维的阶段,我还要再补充一点,目前为止,这是一个通用的,对于我们运维而言,很多事情是一个非计划性的工作,这个事情我们可以新增1个,分配一些人力。目前是这里面的第一页,刚刚开始的节奏。这个人是PO或者叫项目经理,他一看,分检这里面是2,大可以做2个,一开始是0,他就可以把这两个任务挪过去了。因为我们有2个开发团队,做任务分解,比如团队1做A,团队2做。团队1和2效率不一样,这时候可能团队1把A已经做完了,这个时候这个团队看到有任务放到“完成”的阶段,这个时候他就可以把A由“完成”的状态拿到“测试”里面去。但是会有意外发生,测试团队发生A不能部署,这时候团队2刚好把B做完了,这个时候我问大家,你觉得这个时候团队2应该去做什么。首先作为团队2而言,他不应该去D,这个时候2已经是高限了,这个时候如果去做D,那意味着是3了。所以他可以一起去修A。因为团队2和团队1一样,都是开发团队,而且他们可能是有一个关系关联的,这个时候他们的语言是一致的。因为这个里面的限制,这个时候可能会有人帮忙。
我们的工作为什么会堆积如山,其实还是很多在于说我们机制的问题,如果说没有一个这样的看板的机制,如果说没有一个上线的问题所在,问题是什么,这时候后端测试的运维团队会不停的常识解决问题,但这问题没有解决,这个时候如果这个团队2依然去做DCEFG,意味着他会产生大量的库存,他的库存越来越多。团队是在孤立无援的情况下做这个事情,这个时候他觉得事情一件一件压迫过来。可能这个问题比较棘手,这个团队可能把C做完,这个时候他能做D吗,也不能做,因为这个时候他的值是2,已经达到了上限值,意味着他也不能。这个时候作为团队1,他也要一起分析A的问题。这时候你应该一起去把问题解决了。我们用看板不可能完全解决你的问题,但是它能够把很多问题优化掉,也让我们具有更有价值的人去做事情。这个时候可能是因为整个团队都做这个事情,PO可能假惺惺过去了,你们在忙什么,需不需要我帮忙。过段时间以后,这个时候可能把问题解决了,这个测试团队他们也获得了一个比较大的长进。虽然说他里面的容量值还是1,他仍然可能是瓶颈和约束点,但以后问题解决的速度会更快,我们很多时候做运维的,我们很多的需求都是被别人劈头盖脸的过来,我们也不知道自己做的事情是否有价值。我们很多时候是什么情况,白天工作8个小时,很不开心,晚上回去加班很不开心,跟女朋友的关系处理不好,一回到家又很不开心。目前已经有一些运维团队开始定制自己的看板,他们的看板更加符合运维的需求。这样一个简单的东西能让任何人都看到你的工作量,这个时候你也不会被迫完全沉溺于各种各样的事件里去。我们所说的精益看板,它的关键点就是要停止启动,聚焦完成,它能够集中精力把约束点、问题点冲开,让整个的价值流动起来。对于我们运维而言也能变得更有价值。
刚才聊的这个是我们企业级DevOps的核心观点,最重要形成的是单件流,每一次只是把一个部件完成了,让价值流动起来。我们看到底下这种就是现在比较流行的,基于微服务+原设施的一个整体流程,它能够实现一个独立部署、快速交付。这个之前的这些东西,它们实际上就是以前传统的开发模式,以前都是沉溺于各自部门的KPI的满足,只关心到资源效率,并没有关心到流动效率。刚刚我们提到的精益看板,集中精力,把约束点搞定,能够让你的价值更快的交付出去,对于我们运维而言,让我们知道哪些事情是真的急,哪些事情是假的急。对我们而言,每个人的资源有两种,第一种是时间,第二种是带宽。
刚才所说的是精益,精益是整个新型的DevOps或者说DevOps 2.0构建IT服务供应链的核心所在。作为DevOps而言,它的价值所在是要源源不断的去产生价值。很多人都在问,运维以后该怎么办,在Ops,在云计算的时代,我们大家说路子还有很多,我们可以学习精益,可以学敏捷,作为敏捷本身是种方法,跟编程是没有关系还可以学ITIL。这些东西如果能学好或者理解,又开启一个新的职业生涯。
高效运维社区,我们这里会有一些业务,有会议、培训、咨询。刚刚企业级的DevOps,如果要学的话就是这里面的DevOps Master授权课程。还有一个小的提示,运维怎么让工资超过开发,如果说你有幸能够成为一个DevOps专家,这里头根据调查,他的工资是现在高的,他比两三年前很火的IOS开发、安卓开发要高48%。希望大家有机会多去学DevOps,DevOps不一定非得去编程,不是说运维会开发才是DevOps,里面有很多事情可以做。你们也可以来考DevOps Master,包括腾讯蓝鲸的老大“咖啡党”,他也是我们这里面一个学员,也是一个老师。
今天我的演讲到此结束,谢谢大家。