一个问题--有人知道chatops吗?

今天有幸参加devopsdays活动,首先感谢老板为我提供了这次机会(主要是给报销,赞!),起个大早我就一路奔袭而去了,然后就是排了个很长队等候安检,是的你没看错,是安检。之后一上午的分享和演讲不想多说,直到devops之父Patrick站上讲台,亮了!演讲很精彩,赞!演讲末尾他分享了很多实践,其中讲到GitHub的时候他问了一个问题,“有谁知道chatops?”结果1000多人的场子,算上我最多也就不到5个人举手,于是乎我觉得我应该把之前做过的一些关于chatops的研究以及经验写下来,让更多的人知道。

chatops顾名思义,翻译的直白一点就是用聊天的方式来做ops工作,大体也差不多是这个意思。chatops用人类最原始和最直接的以会话来驱动的方式来做事情。什么是以会话驱动?其实这种方式充斥着我们的生活,举个很普通的例子,我对你说,“请帮我去拿一个苹果”,然后你拿了一个苹果给我。就是这么简单,只不过chatops中,“帮我拿苹果的”是个虚拟的机器人。

一个问题--有人知道chatops吗?_第1张图片
workflow

首先我们要先搞明白chatops涉及到了哪些资源 -- 交付团队, 一个团队IM工具(slack, IRC, hipchat...),chat机器人与基础设施(包括服务器,数据库,配置管理以及系统管理工具等)。接下来我们就以slack做为团队IM工具来举个小例子说明一下chatops是如何运做的。交付团队的成员会在slack的一个channel(可以把它理解成微信群)中交流和工作,在这个channel中有这样一个特殊的同事,他是一个聊天机器人,之后的文章中我们叫他chatbot,当交付团队的成员输入“@chatbot restart 10.34.33.22"之后,chatbot会调用后台的api将ip地址是”10.34.33.22“的vm重起,然后把重启后的状态回复到slack channel中。想像一下没有chatops的情况下团队成员会如何完成这件小事儿 -- 1.打开terminal 2. ssh到相应的vm 3. 输入密码 4.run "reboot" 5. 等一会儿 6. 再次ssh到vm 7. 再次输入密码 8. 检查相关信息,是不是有一些繁琐,而chatops只是@了一下chatbot而已,很方便,很cool对吗?

那么这样一件有趣且有价值的事情是如何做到的呢,我来解释一下,slack channel中的chatbot会监听address给他的消息(当然也可以监听当前channel的所有消息,以后有机会会给大家解释),通过一个叫做“正择匹配”的古老且长青的技术来筛查是不是有需要响应的关键字,一旦匹配到chatbot就会坚定不移的执行相对应的action。就上面的例子来说就是chatbot监听到“@chatbot restart 10.34.33.22",然后“正择匹配”匹配到了restart命令,于是他对命令做出响应,执行了restart命令对应的function去重启vm并回传结果。这只是一个简单的例子用来说明chatops是如何工作的,chatops的功能很强大应用很广泛,尤其在大型合做项目和大型互联网或云计算项目中最为明显。

如果大家对chatops感兴趣,接下来我会分享我对chatops一些感悟以及如何从零开始做一个chatbot.

你可能感兴趣的:(一个问题--有人知道chatops吗?)