聊天應(yīng)用,或者叫ChatOps,在軟件開發(fā)中被廣泛用來改進開發(fā)者之間的溝通?,F(xiàn)在包括VictorOps和Box.com 在內(nèi)的DevOps供應(yīng)商和組織都在利用ChatOps,用來將現(xiàn)代聊天客戶端與API集成、自動化結(jié)合起來,從而改進軟件工作流等業(yè)務(wù)流程。
ChatOps,一個很大程度上要歸功于GitHub的術(shù)語,是聚焦于會話驅(qū)動型開發(fā)的一種做法。通過把工具帶進會話,并利用修改過的聊天機器人與關(guān)鍵插件與腳本協(xié)作,開發(fā)團隊可實現(xiàn)任務(wù)自動化,并能協(xié)作得更好、更快、更便宜。比方說,在聊天室的時候,開發(fā)者輸入命令配置聊天機器人執(zhí)行定制腳本和插件,然后在命令被執(zhí)行的同時進行實時協(xié)作。
轉(zhuǎn)移活動到聊天客戶端
“ChatOps就是把你已經(jīng)在別的地方進行的活動搬到了聊天客戶端,” VictorOps的布道師兼《ChatOps for Dummies》一書的作者Jason Hand這樣說。
基本上一個現(xiàn)代的聊天客戶端變成了分享會話的接口。對于許多工作流和業(yè)務(wù)流程來說這可以替代電子郵件。聊天后端也直接集成到云服務(wù)、開發(fā)工具以及報表工具當中以自動化許多流程。但組織需要想出橋接這一文化轉(zhuǎn)變的計劃。從小處開始也是一種好的做法,因為聊天與自動化的結(jié)合會導致不必要的應(yīng)用和基礎(chǔ)設(shè)施變更。
許多組織發(fā)現(xiàn)自己可以利用聊天原則來改善企業(yè)內(nèi)的其他流程,包括銷售、營銷、商業(yè)開發(fā)、工作流以及重大項目企業(yè)范圍內(nèi)的協(xié)調(diào)。也就是說,為訪問敏感企業(yè)信息,也為需要深思熟慮以確保治理、風險與合規(guī)性需求得到滿足的自動加速以及變更運營性基礎(chǔ)設(shè)施打開了一個新的通道。
在Box,ChatOps已被植入到企業(yè)文化當中,成為分布式團隊的一項主要的協(xié)作工具。Box現(xiàn)場可靠性工程師Michael Ansel說:“我們利用ChatOps來朝著DevOps模型遷移,從而使得開發(fā)者可以在生產(chǎn)中管理自己的服務(wù),并解放我們的技術(shù)運營團隊,讓他們把精力集中到基礎(chǔ)設(shè)施支持上。”有了ChatOps,Box正在以多種新方式來處理數(shù)據(jù),用系統(tǒng)API來進行交互,自動把相關(guān)信息帶入到會話和自動化現(xiàn)有的聊天會話中。
VictorOps的Hand說ChatOps帶來了命令行界面,對于推送新代碼、提供基礎(chǔ)設(shè)施、為開發(fā)團隊在共享聊天室內(nèi)配置服務(wù)都帶來了好處。“我不僅獲得了某些信息,還把它跟讓任何有可能在聊天室閑逛的人共享。”這種做法節(jié)省了時間,創(chuàng)造了更好的透明性,并提供了情景感知。
比方說,開發(fā)者僅用一條聊天命令就能啟動一個事故響應(yīng)流程并發(fā)出相關(guān)溝通—這要比人工創(chuàng)建一條票證、更新狀態(tài)頁、發(fā)送電子郵件吧發(fā)布到Twitter上的舊模式要快得多。
什么是ChatOps工具?
一般而言,ChatOps是在更加現(xiàn)代的聊天客戶端,如HipChat、Slack、Flowdock以及Campfire等中被使用的。這些客戶端使得組織能夠跨團隊和項目建立共享頻道。這些聊天后端利用機器人來連接Jira、Rally API或任何在用的項目管理工具,并對這一信息在聊天中予以回應(yīng)。
The bots can automate command entry, reports and tasks into chat. Hubot, developed by GitHub, has been around the longest; others are Lita and Err. The ideal choice depends on the underlying framework that fits with a team's process. Hubot is built on Node.js, Lita on Ruby, and Err on Python. Hubot has the largest library of scripts, so the barrier to entry can be lower, Hand said.
機器人可自動將命令條目、報告以及任務(wù)引入聊天當中。由GitHUb開發(fā)的Huibot歷史最久;其他的包括Lita和Err。理想選擇要看底層框架是否適合團隊流程。Huibo是基于Node.js開發(fā)的,Lita是在Ruby基礎(chǔ)上搭建的,而Err則是基于Python。Huibot擁有最大型的腳本庫,所以進入門檻要低一些,Hand說。
Keeping security and compliance in mind
時刻記住安全與合規(guī)
對于Box來說,使用ChatOps最大的安全挑戰(zhàn)是保持明確的生產(chǎn)環(huán)境隔離的同時仍允許豐富的聊天客戶端軟件的最終用戶訪問。為了滿足安全需求,Box編寫了安全中間件部署到機器人與聊天客戶端之間。ChatOps基礎(chǔ)設(shè)施可掛接LDAP存儲,驗證用戶已確保用戶屬于該環(huán)境。此外還可以有其他的層執(zhí)行雙因子驗證。方法之一是要求兩位用戶確認像服務(wù)器安全更新這樣的機器人請求。
過去,作為變更請求的一部分員工必須填寫紙質(zhì)材料;現(xiàn)在合規(guī)性檢查可直接植入到聊天當中。這也使得記錄發(fā)生的事情更加簡單。“你創(chuàng)建了一個現(xiàn)場的合規(guī)性形式,可以展示是誰做的,做了什么以及什么時候做的。這是一個發(fā)生得快得多的工作流,”Hand說。
把高管拉進會話中
ChatOps可以為工程師所做事情向C階主管和部門員工提供更好的可見性。獲許可的員工可以查詢財務(wù)數(shù)據(jù)庫或電子表格,比方說。由一些開發(fā)者啟動的事情可以分享給公司內(nèi)需要同一信息并提供輸入的其他人。
“一旦你發(fā)現(xiàn)一些你知道自己可以做的事情,采用率就會失去控制,”Hand說。比方說,VictorOps團隊喜歡看看每天的注冊數(shù)有多少。這需要執(zhí)行訪問數(shù)據(jù)存儲的命令。現(xiàn)在他們只需要定期詢問機器人最近的20個注冊就行了。把工作流轉(zhuǎn)移到聊天當中會為其他團隊創(chuàng)造出牽引力,這樣當他們對特定團隊和項目進展感到好奇時只需要核對一下就行了。
彌補文化鴻溝
把工作流從電子郵件轉(zhuǎn)向聊天牽涉到的文化轉(zhuǎn)變是最大的挑戰(zhàn)之一,提供事件驅(qū)動型自動化工具的StackStorm的基礎(chǔ)設(shè)施自動化專家James Fryman說:“許多家伙對自動化這一整體概念以及像ChatOps這樣的東西引進后對自己工作意味著什么感到擔心。”
引入ChatOps的組織應(yīng)該從小處著手并表現(xiàn)出響應(yīng)性,F(xiàn)ryman解釋道:“從小處開始讓大家可以習慣于ChatOps這樣的想法,也會在東西出問題(肯定會的)時給你的團隊一個小一點的領(lǐng)域去修補,”他說。“變得具備超級響應(yīng)性也有助于緩解對自動化缺乏信任,因為如果東西出問題后能夠快速修復(fù)的話,那么用戶對實施變得沮喪的機會就會變少了。”