一個(gè)問題--有人知道chatops嗎?

今天有幸參加devopsdays活動,首先感謝老板為我提供了這次機(jī)會(主要是給報(bào)銷,贊?。?,起個(gè)大早我就一路奔襲而去了,然后就是排了個(gè)很長隊(duì)等候安檢,是的你沒看錯,是安檢。之后一上午的分享和演講不想多說,直到devops之父Patrick站上講臺,亮了!演講很精彩,贊!演講末尾他分享了很多實(shí)踐,其中講到GitHub的時(shí)候他問了一個(gè)問題,“有誰知道chatops?”結(jié)果1000多人的場子,算上我最多也就不到5個(gè)人舉手,于是乎我覺得我應(yīng)該把之前做過的一些關(guān)于chatops的研究以及經(jīng)驗(yàn)寫下來,讓更多的人知道。

chatops顧名思義,翻譯的直白一點(diǎn)就是用聊天的方式來做ops工作,大體也差不多是這個(gè)意思。chatops用人類最原始和最直接的以會話來驅(qū)動的方式來做事情。什么是以會話驅(qū)動?其實(shí)這種方式充斥著我們的生活,舉個(gè)很普通的例子,我對你說,“請幫我去拿一個(gè)蘋果”,然后你拿了一個(gè)蘋果給我。就是這么簡單,只不過chatops中,“幫我拿蘋果的”是個(gè)虛擬的機(jī)器人。

workflow

首先我們要先搞明白chatops涉及到了哪些資源 -- 交付團(tuán)隊(duì), 一個(gè)團(tuán)隊(duì)IM工具(slack, IRC, hipchat...),chat機(jī)器人與基礎(chǔ)設(shè)施(包括服務(wù)器,數(shù)據(jù)庫,配置管理以及系統(tǒng)管理工具等)。接下來我們就以slack做為團(tuán)隊(duì)IM工具來舉個(gè)小例子說明一下chatops是如何運(yùn)做的。交付團(tuán)隊(duì)的成員會在slack的一個(gè)channel(可以把它理解成微信群)中交流和工作,在這個(gè)channel中有這樣一個(gè)特殊的同事,他是一個(gè)聊天機(jī)器人,之后的文章中我們叫他chatbot,當(dāng)交付團(tuán)隊(duì)的成員輸入“@chatbot restart 10.34.33.22"之后,chatbot會調(diào)用后臺的api將ip地址是”10.34.33.22“的vm重起,然后把重啟后的狀態(tài)回復(fù)到slack channel中。想像一下沒有chatops的情況下團(tuán)隊(duì)成員會如何完成這件小事兒 -- 1.打開terminal 2. ssh到相應(yīng)的vm 3. 輸入密碼 4.run "reboot" 5. 等一會兒 6. 再次ssh到vm 7. 再次輸入密碼 8. 檢查相關(guān)信息,是不是有一些繁瑣,而chatops只是@了一下chatbot而已,很方便,很cool對嗎?

那么這樣一件有趣且有價(jià)值的事情是如何做到的呢,我來解釋一下,slack channel中的chatbot會監(jiān)聽address給他的消息(當(dāng)然也可以監(jiān)聽當(dāng)前channel的所有消息,以后有機(jī)會會給大家解釋),通過一個(gè)叫做“正擇匹配”的古老且長青的技術(shù)來篩查是不是有需要響應(yīng)的關(guān)鍵字,一旦匹配到chatbot就會堅(jiān)定不移的執(zhí)行相對應(yīng)的action。就上面的例子來說就是chatbot監(jiān)聽到“@chatbot restart 10.34.33.22",然后“正擇匹配”匹配到了restart命令,于是他對命令做出響應(yīng),執(zhí)行了restart命令對應(yīng)的function去重啟vm并回傳結(jié)果。這只是一個(gè)簡單的例子用來說明chatops是如何工作的,chatops的功能很強(qiáng)大應(yīng)用很廣泛,尤其在大型合做項(xiàng)目和大型互聯(lián)網(wǎng)或云計(jì)算項(xiàng)目中最為明顯。

如果大家對chatops感興趣,接下來我會分享我對chatops一些感悟以及如何從零開始做一個(gè)chatbot.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 在人人都在討論DevOps的今天,有一個(gè)詞ChatOps顯得比較突出,什么是ChatOps?它是怎么工作的?它能帶...
    13太保閱讀 11,714評論 2 13
  • 之前兩個(gè)小文兒跟大家探討了what -- chatops是怎樣一回子事和why -- chatops所帶來的一系列...
    邸富杰閱讀 1,239評論 1 3
  • 相信看過上一篇兒小文的小伙伴應(yīng)該對chatops已經(jīng)有了一些認(rèn)識,接下來我們來做一次白日夢,把自己想像成ironm...
    邸富杰閱讀 2,880評論 0 9
  • 這樣的選擇好比一個(gè)拾麥穗的人,從麥地的這頭走到那頭,手中始終只能拿一朵麥穗,結(jié)果拾穗的人都沒有拾到最大的。他們都以...
    空鏡頭閱讀 262評論 4 2

友情鏈接更多精彩內(nèi)容