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