軟件企業(yè)需要什么废菱?從案例談ChatOps協(xié)作體系

序言

在上一篇文章中疆瑰,我們回顧了信息傳遞與處理在歷史長河中的變遷,也介紹了信息處理的架構(gòu)和關(guān)鍵要素昙啄,最后提出“軟件研發(fā)運(yùn)維的信息傳遞和處理如何優(yōu)化?” 我們能否讓每一位技術(shù)人員寸五,從需求梳凛、到開發(fā)、再到測試梳杏、運(yùn)維等……都生出三頭六臂韧拒?讓我們先看看軟件組織里面研發(fā)運(yùn)維在信息傳遞和處理上的典型現(xiàn)狀和挑戰(zhàn)淹接。

背景

A是一家互聯(lián)網(wǎng)公司的CIO,管理著眾多業(yè)務(wù)導(dǎo)向的交付團(tuán)隊(duì)和IT系統(tǒng)叛溢。交付團(tuán)隊(duì)分布在墨爾本塑悼、悉尼、西安楷掉、意大利等多個地點(diǎn)厢蒜,IT系統(tǒng)分別部署在公司機(jī)房、數(shù)據(jù)中心烹植、AWS斑鸦、國外的數(shù)據(jù)中心等多個地點(diǎn)。由于公司業(yè)務(wù)發(fā)展勢頭非常好草雕,該公司的交付團(tuán)隊(duì)(包括合作伙伴的團(tuán)隊(duì))快速擴(kuò)張巷屿,IT系統(tǒng)的數(shù)量也越來越多,CIO發(fā)現(xiàn)自己陷入了疲于救火的狀態(tài):

  1. 分布式研發(fā)團(tuán)隊(duì)對于測試環(huán)境墩虹、發(fā)布窗口嘱巾、構(gòu)建能力等共享依賴資源的請求層出不窮,如何高效協(xié)調(diào)诫钓?
  2. 分布式研發(fā)團(tuán)隊(duì)在集成旬昭、測試、發(fā)布等關(guān)鍵活動上的狀態(tài)變化頻繁尖坤,如何迅速傳播到相關(guān)團(tuán)隊(duì)與個人稳懒?
  3. 分布式研發(fā)團(tuán)隊(duì)對于關(guān)鍵活動狀態(tài)的變化(構(gòu)建失敗、集成延期等)慢味,如何確保及時響應(yīng)和處理场梆?

B是一家金融機(jī)構(gòu)的運(yùn)維總監(jiān),底下有多個運(yùn)維團(tuán)隊(duì)纯路,分布在上海或油、深圳、北京等多地驰唬。運(yùn)維部門負(fù)責(zé)維護(hù)該金融機(jī)構(gòu)數(shù)百個IT系統(tǒng)顶岸,對應(yīng)的考核指標(biāo)是99.99%的高可用性。每個不同地點(diǎn)的運(yùn)維人員都身兼數(shù)職叫编,需要對不同系統(tǒng)的不同異常事件進(jìn)行響應(yīng)和處理辖佣。為了保障4個9的高可用性,運(yùn)維總監(jiān)發(fā)現(xiàn)日常運(yùn)維中存在如下的難題:

  1. 出現(xiàn)故障時搓逾,如何更有效地通知一線運(yùn)維個人卷谈,或者故障升級(Escalate)到二線處理小組?
  2. 異常來自于不同的系統(tǒng)和監(jiān)控工具霞篡,除了告警之外世蔗,如何更有效地查詢異常的上下文信息端逼,進(jìn)行故障排查?
  3. 分析異常之后污淋,如何確保異常故障被高效地響應(yīng)和處理顶滩?

分析

事實(shí)上,IT企業(yè)中的研發(fā)運(yùn)維基本都遵循著如下的流程框架寸爆,這個框架有著如下的特點(diǎn):

軟件企業(yè)典型流程
  • 存在大量的基礎(chǔ)設(shè)施礁鲁,以及圍繞著基礎(chǔ)設(shè)施的各類IT流程(需求、構(gòu)建而昨、部署救氯、測試、上線……)
  • 基礎(chǔ)設(shè)施與IT流程產(chǎn)生了大量的數(shù)據(jù)歌憨,以及針對這些數(shù)據(jù)的分析和整理(流程改進(jìn)着憨、業(yè)務(wù)支撐、應(yīng)用支撐……)
  • 前兩個階段產(chǎn)生了數(shù)據(jù)和信息务嫡,以及組織內(nèi)各角色的溝通甲抖、協(xié)作與下一步改進(jìn)(組織治理、知識庫心铃、改進(jìn)……)

縱觀整個流程准谚,機(jī)器、應(yīng)用持續(xù)不斷產(chǎn)生新的增加去扣、修改柱衔、狀態(tài)信息,這些信息需要被周密地分析和思考愉棱,不同的人要參與到這兩個過程唆铐,并且產(chǎn)生更多的知識、信息奔滑。簡而言之艾岂,這就是一個關(guān)于“人-機(jī)器(應(yīng)用)-信息”的管理問題,包含著如下的場景:

  • 需求階段:如何確保需求的價(jià)值是值得投入的朋其?產(chǎn)品經(jīng)理可能需要做用戶研究王浴、用戶訪談,繪制NPS指標(biāo)來向管理層和團(tuán)隊(duì)溝通需求的價(jià)值
  • 開發(fā)階段:如何確保系統(tǒng)的質(zhì)量(Quality)和完備度(Readiness)梅猿?項(xiàng)目經(jīng)理可能需要通過迭代氓辣、showcase,繪制燃盡圖袱蚓、CFD以及構(gòu)建頻率筛婉、構(gòu)建通過率之類的指標(biāo),來揭示軟件系統(tǒng)的質(zhì)量和交付完備度
  • 測試階段:如何確保系統(tǒng)的質(zhì)量和bugfix的效果?測試經(jīng)理可能需要收集bug發(fā)現(xiàn)的記錄爽撒,計(jì)算FFR或者缺陷率,來評估回歸測試以及bugfix的效果和質(zhì)量
  • 運(yùn)維階段:如何確保系統(tǒng)的高可用以及業(yè)務(wù)連續(xù)性响蓉?運(yùn)維經(jīng)理需要收集系統(tǒng)運(yùn)行的數(shù)據(jù)和故障的數(shù)據(jù)硕勿,計(jì)算MTTR、MTTF等其它指標(biāo)枫甲,來衡量系統(tǒng)運(yùn)行的可靠性

挑戰(zhàn)

上一篇博客中提到了消息處理四要素:消息源武、輸入者、處理者想幻、消息網(wǎng)絡(luò)粱栖。對應(yīng)到軟件組織的研發(fā)運(yùn)維流程,我們可以發(fā)現(xiàn):

  • 輸入源:物理基礎(chǔ)設(shè)施脏毯、虛擬化平臺闹究、云管理平臺、虛擬機(jī)操作系統(tǒng)食店、中間件渣淤、數(shù)據(jù)庫、應(yīng)用程序吉嫩、網(wǎng)絡(luò)等
  • 處理任務(wù):創(chuàng)建一臺虛擬機(jī)价认、彈性擴(kuò)容、配置中間件自娩、數(shù)據(jù)庫用踩、配置應(yīng)用程序、部署新版本應(yīng)用程序忙迁、刪除機(jī)器脐彩、告警、推送消息
  • 協(xié)作網(wǎng)絡(luò):運(yùn)維一动漾、二丁屎、三線處理人員、開發(fā)人員(分布式)旱眯、需求人員晨川、測試人員、管理人員等
信息處理四要素

一個典型的IT流程包括:從故障源采集環(huán)境信息删豺,關(guān)聯(lián)不同的環(huán)境信息共虑,分析故障根因,采取行動(展示呀页、推送妈拌、處理、通知)、固化知識尘分。但是猜惋,當(dāng)處理故障的規(guī)模放大,面對著多系統(tǒng)培愁、多團(tuán)隊(duì)的軟件組織著摔,如何能夠高效地完成信息的采集、傳遞和處理定续?讓上文中的CIO和運(yùn)維總監(jiān)不再發(fā)愁谍咆?信息未來肯定是爆炸的,但是靠人來管理和協(xié)調(diào)肯定是無法滿足研發(fā)運(yùn)維過程的協(xié)作和溝通的私股。如何解決這個問題呢摹察?

ChatOps方案

以機(jī)器人為中心的ChatOps

我們先來看看一個典型的ChatOps例子:


ChatOps完成自動化部署

在這個例子中,人可以隨意地與機(jī)器人進(jìn)行溝通倡鲸,通過向機(jī)器人下指令供嚎,讓機(jī)器人完成應(yīng)用部署、部署狀態(tài)檢查等任務(wù)旦签,再也不用喊嗓子叫桌子對面或者辦公室另一個角落的運(yùn)維人員來做這件事情了查坪。優(yōu)雅,安靜宁炫。

什么是ChatOps偿曙?

ChatOps在很大程度上是由GitHub發(fā)起并推動的新趨勢。簡單地說羔巢,就是通過聊天機(jī)器人來完成自動化的指令望忆,以及通過聊天機(jī)器人來自動推送輸入需要的信息。為了實(shí)現(xiàn)ChatOps竿秆,一是需要把工具與機(jī)器人放在了溝通與協(xié)作的核心樞紐启摄,二是需要完成現(xiàn)有研發(fā)、運(yùn)維工作任務(wù)的梳理幽钢、標(biāo)準(zhǔn)化和自動化歉备。

ChatOps概念圖

ChatOps能夠集成并自動完成的場景有:

  • 代碼管理系統(tǒng):GitHub/GitLab - 采集代碼變更的提交信息以及狀態(tài)
  • 持續(xù)集成系統(tǒng):Jenkins/GoCD - 采集代碼持續(xù)構(gòu)建、集成的任務(wù)信息與狀態(tài)
  • 需求任務(wù)管理系統(tǒng):Trello/Jira - 采集需求任務(wù)的信息與流轉(zhuǎn)狀態(tài)
  • 運(yùn)維監(jiān)控系統(tǒng):Zabbix/PagerDuty - 采集運(yùn)維監(jiān)控系統(tǒng)的監(jiān)控狀態(tài)和事件
  • 運(yùn)維工單系統(tǒng):ITIL/ZenDesk - 采集運(yùn)維事件和工單的任務(wù)和狀態(tài)
  • 其他辦公系統(tǒng):gdoc/dropbox - 采集其他辦公系統(tǒng)的文檔狀態(tài)和事件
  • ……

借助于ChatOps的自動化指令和規(guī)則匪燕,機(jī)器人能夠代替人完成絕大部分的檢索蕾羊、響應(yīng)和處理的工作;借助于ChatOps的機(jī)器人網(wǎng)絡(luò)帽驯,信息處理的效率可以水平擴(kuò)展龟再,大大滿足軟件企業(yè)研發(fā)運(yùn)維過程中信息爆炸的挑戰(zhàn)。

ChatOps示例

下面以ScaleWorks ChatOps為例尼变,分別展示進(jìn)入聊天頻道利凑、聊天頻道內(nèi)以及自動化指令的系統(tǒng)截圖,可以很清楚地看出來ChatOps的使用效果。

ChatOps效果圖

真正的足不出戶哀澈,家事牌借、國事、天下事日丹,事事關(guān)心

ChatOps落地路線

國外的ChatOps工具主要有Slack走哺、Hubot、Lita等哲虾,國內(nèi)的典型工具可以算阿里的釘釘和騰訊的微信。這些工具提供了完善的溝通協(xié)作API择示,通過廣泛的ISV支持了不同場景的自動化和服務(wù)束凑,譬如OA辦公、系統(tǒng)監(jiān)控以及其它服務(wù)等等栅盲。

對于自身能力比較強(qiáng)的技術(shù)公司汪诉,也可以通過引入開源的、免費(fèi)工具鏈谈秫,打造一套符合自身的運(yùn)維協(xié)作體系以及ChatOps平臺扒寄,比較有名的產(chǎn)品包括Hubot、Lita等拟烫。

但是该编,無論是商業(yè)產(chǎn)品抑或開源產(chǎn)品,建議按照如下的節(jié)奏進(jìn)行“三步走”的系統(tǒng)規(guī)劃與建設(shè):

ChatOps落地路線

展望

硅谷大佬Mark Andreessen提出了一個觀點(diǎn)硕淑,“Software is eating the world”课竣。傳統(tǒng)行業(yè)不斷地被軟件侵蝕:Uber顛覆了taxis、WhatsApp顛覆了短信聊天置媳、Fibit/Keep顛覆了健身業(yè)于樟、Netflix顛覆了電影業(yè)……不勝枚舉,ChatOps開始顛覆軟件企業(yè)的信息處理也就順理成章了拇囊。在現(xiàn)在的時代迂曲,依賴于文山會海、郵件往來進(jìn)行信息傳遞和決策的企業(yè)寥袭,無法戰(zhàn)勝通過即時聊天和自動化機(jī)器人來處理信息的競爭對手路捧。

眼光再放長遠(yuǎn),萬物互聯(lián)將是必然纠永,人機(jī)接口(HCI)將不可避免地朝著最簡單的方式演進(jìn)鬓长,直至有一天,進(jìn)化成為腦機(jī)接口(BCI)尝江。到了那一天涉波,Arthur Clark在其著作《2001太空漫游》中給出的HAL 9000機(jī)器人或許將成為人類最好的朋友。人類端坐在網(wǎng)絡(luò)中央,等著不同邊界不同節(jié)點(diǎn)處理好的信息進(jìn)入最終的大腦啤覆;大腦的指令下發(fā)到不同邊界不同節(jié)點(diǎn)苍日,每個節(jié)點(diǎn)完成信息的處理。

正如風(fēng)起于青萍之末窗声,新的協(xié)作模式并不是“大炮一聲響相恃,換了人間”。ChatOps代表著團(tuán)隊(duì)集體式智慧決策以及處理信息的方式笨觅,將不斷推動著手工工作的自動化和協(xié)作組織的方式拦耐。正如Kevin Kelly(KK)在《失控》一書中指出,"技術(shù)是生命體的第七種存在见剩。人類目前已定義的生命形態(tài)包括植物杀糯、動物、原生生物苍苞、真菌固翰、原細(xì)菌、真細(xì)菌羹呵,而技術(shù)應(yīng)是之后的新一種生命形態(tài)"骂际。

信然。

后記

文章剛收筆冈欢,又看到這篇新聞《“AlphaGo”不只會下圍棋歉铝,還將為Google節(jié)約15%的數(shù)據(jù)中心用電》——

從今年開始,Google 讓 DeepMind AI “接管”了部分?jǐn)?shù)據(jù)中心里的一些控制單元涛癌,從簡單一些的風(fēng)扇犯戏、空調(diào)和窗戶,到復(fù)雜的服務(wù)器本身拳话,最后節(jié)約了“幾個百分點(diǎn)”的電力先匪。經(jīng)過復(fù)雜的計(jì)算模型折算后,DeepMind AI 大約提高了 Google 15% 的能源使用效率……

過去,上面提到的很多開關(guān)和控制單元都需要維護(hù)人員手動操作——畢竟,人的力量還是有限的臭脓,而 DeepMind AI 卻有著無限的擴(kuò)展能力。

萬物互聯(lián)以及“機(jī)器人”對物理世界的進(jìn)擊速度岸裙,永遠(yuǎn)超出人類的想象。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末速缆,一起剝皮案震驚了整個濱河市降允,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艺糜,老刑警劉巖剧董,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幢尚,死亡現(xiàn)場離奇詭異,居然都是意外死亡翅楼,警方通過查閱死者的電腦和手機(jī)尉剩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毅臊,“玉大人理茎,你說我怎么就攤上這事」苕遥” “怎么了皂林?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蚯撩。 經(jīng)常有香客問我式撼,道長,這世上最難降的妖魔是什么求厕? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮扰楼,結(jié)果婚禮上呀癣,老公的妹妹穿的比我還像新娘。我一直安慰自己弦赖,他們只是感情好项栏,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹬竖,像睡著了一般沼沈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上币厕,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天列另,我揣著相機(jī)與錄音,去河邊找鬼旦装。 笑死页衙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阴绢。 我是一名探鬼主播店乐,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呻袭!你這毒婦竟也來了眨八?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤左电,失蹤者是張志新(化名)和其女友劉穎廉侧,沒想到半個月后页响,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伏穆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年拘泞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枕扫。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡陪腌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烟瞧,到底是詐尸還是另有隱情诗鸭,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布参滴,位于F島的核電站强岸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏砾赔。R本人自食惡果不足惜蝌箍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暴心。 院中可真熱鬧妓盲,春花似錦、人聲如沸专普。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽檀夹。三九已至筋粗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炸渡,已是汗流浹背娜亿。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偶摔,地道東北人暇唾。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像辰斋,于是被迫代替她去往敵國和親策州。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容