相信看过上一篇儿小文的小伙伴应该对chatops已经有了一些认识,接下来我们来做一次白日梦,把自己想像成ironman, 此时你的chatbot就化身为j.a.v.i.s, 他会像javis帮助tony一样帮你完成重复烦琐的事情,而你只需要专助于有意义的事情,像tony一样,只需要转动你的大脑,挖掘出一些idea, 剩下的事情交你的好基友就好了,really cool,right?
可是兴奋之余,我开始有些担心,我慢慢意识到chatops只是利用chatbot为service的API提供了另外一种简单的调用方式,虽然很炫酷很潮流,但也仅是后台service的另一个入口而已。难道chatops只是简单聊天机器人+ restful api调用的自动化流程吗?仅仅是因为他比较有趣吗?
相信你也会有以上疑惑,私下与同事交流的时候我也经常被问到相关的问题,下面我就简单聊一下我对chatops的一些想法:
你不是一个人在战斗
当有一个chatbot存在于我们的slack channel中的时候,就相当于我们有了一个最勤劳,最好沟通,从不休假并且随叫随到的同事。工作中,我时时刻刻都在和chatbot一起工作,他会纠正我的错误,只有我输入了正确的command,他才会按我的要求调用后台服务的api完成相关操作,有个同事会不辞辛劳无怨无悔为你纠正很low的失误,是不是很开心?其次和我一起工作的不只是这个最表面的chatbot,问个问题,chatbot调用的后台服务api是谁写的呢?肯定是相关领域的专家经过了细致的思考,缜密的设计,完善的测试后才开放出来的,所以我们无形中也拥有了这些领域专家的能力,他们也在和我们并肩作战,这时你是不是充满了自信?:-)最后slack channel中不只有chatbot,还会有我们活生生的亲爱的同事们,他们也都工作在这个channel中,如果我run错了命令,他们会及时出现指出问题,所以就没有问题了:),一言以蔽之就是chatops可以让我们在工作中pair all the time.
做到言传身教
问题来了,请问各位工作中你喜欢写文档吗?请问工作中你喜欢更新文档吗?请举后抢答。。。我相信答案都是No,这点chatops可以帮到我们。我们来看看下面几个用到文档的场景 --
当菜鸟入职需要文档来学习如何完成每天工作的时候,首先小菜同学可以阅读老鸟们在slack channel中的聊天记录,观察他们在什么情况下run了什么命令,之后通过chatbot command help来了解相关命令的usage。也就是说小菜每天都可以在老鸟们真实的工作中学习充实自己,很快他就会成为老鸟中的一员。
当老鸟一时头晕不知道run哪条命令去fix问题的时候,他不用去文件系统或wiki中一脸紧急加茫然的查找文档,他只需要run两个命令就能很快找到答案 -- chatbot help, chatbot command help.
chatops使团队成员之间交流时,完全可以用chatbot做到透明的沟通且共享所有聊天的上下文,完全不需要在文档和文件系统之间切换。我们再看看下面那个美女和帅哥的例子,想想都开心!
心无旁骛的专注
你是不是经历过这样一种场景,你开发运维的服务宕机了,这个时候你会扮演一个救火队长的角色,会义无反顾的埋头去debug和fix这个复杂问题,这个时候我们是不想被打扰的,更不会面带微笑且耐着性子解释原因和为什么会这么做给吃瓜群众听。我也相信吃瓜群众不会轻易打扰你,可是这个时候slack channel中,突然冒来了一个vp甚至一个c-level的家伙,他表示很关心这件事,关系到一个重要的谈判,他们的问题也都很简单"What happened?",真特么挺简单的,可是回答起来真是不容易。这个时候作为主力救火队员你该如何选择?是暂时搁置紧急的fixing,强颜欢笑的满足那个重量级人物?还是选择无视那个只有两个单词的“简单问题”?你很纠结对吗?那么chatops会帮助到我们。
With chatops,我们坚决不会停下来,因为宕机每一分每一秒都对公司是巨大的损失,所以救火队员会一直专注于分析解决根本的问题,不必担心无视那个重量级人物会不会被fire(这是个极端的例子,因为c-level的人都很nice), 然而在slack channel中我通过chatbot做debug的command以及chatbot发回来的运行结果会告诉所有人发生的一切,不仅满足了大人物的需求,同时也满足了吃瓜群众的好奇心,何乐而不为呢?
协作顺畅
另一个不舒服的经历,在发布一个重要的产品前不得不盯着一个email thread长达24小时,不断的等待着其他team的新进展,不断的把自己team进展情况告知其他team,尽管我们很努力眼都快瞎了,但还是会时不时落掉一些重要的信,很失落又无可奈何,对吗?chatops同样可以帮到我们,在当下这个IM如此发达的时代,为什么还要用“老古董”,抛弃email吧。
当多个团队工作在同一个slack channel中,每个团队的工作都是能过chatbot完成,并把工作成果通过chatbot回传到channel中,那么我们就可以至少在这件事情上干掉email了。举个不太恰当的例子,一个复杂系统由上,中,下游三个team开发维护,为了完成一次升级需要三个team先后依次发布新版本,上游team通过chatbot布署完成,并将结果通过bot回传回来,接着中间件的team就可以根据这个回传结果来安排中间件的发布工作,同样的,下游team也会依据中间件团队的布署结果来安排下游团队的部署工作,信息流动很顺畅,合作很愉快,升级工作也很顺利的完成。Cheers~
移动性
slack或其它IM工具是有手机客户端的,也就是说我们的智能手机也拥有了chatbot的所有能力,还在担心陪同家人度假去哪里都要背着笨重难看的电脑包吗?还在担心因为时刻留意哪里有start bar或有wifi的店铺而不能全身心的陪伴家人而招来不满和白眼吗?chatops可以帮到你。你可以在任何地点关心运维你的产品,你可以在床上,在沙滩上,在酒吧里,只要你的smart phone还有电量和信号且装有slack客户端,cool!
再次一言以蔽之,chatops不仅只是一种有趣的自动化,他还使整个过程变得更加透明,信息和知识流动的更加顺畅。这次扯了很多,都是一些我实施落地chatops的感受,和大家分享。下次我们来聊一下如何从零开始一步一步做出一个简单的bot,如果还有下次的话 ;-)