DevOps 為什么我們永遠疲于奔命?
在【DevOps】誰說大象不能跳舞?一文之后,本文對DevOps的理念作進一步探討。
最近在讀一本書《Project Phoenix》,用小說的方式來描述了作為IT部門總裁的主人公臨危受命,面對IT開發(fā)和運維中出現(xiàn)的種種危機,在險峻的情況下采用新的管理理念,從而帶領(lǐng)IT團隊從低谷走向成功的故事。書中的一些場景,我是再熟悉不過了。有時候也不禁想,如果自己身在其中,會如何應(yīng)對呢?
這本書也引用了很多DevOPs的理念,故事一波三折,其中的道理很耐人尋味。
話說該公司的IT部門是最備受責難的一個部門。很多商業(yè)計劃因為IT不給力而拖延,IT環(huán)境極其不穩(wěn)定,大小問題接連不斷。IT每天忙于救火而疲于奔命。人員士氣低落,各部門各自為戰(zhàn)。出了事互相指責。
主人公在一位高人的指點下,開始了卓有成效的改革之旅。其中很重要的一個課題就是,到底根本問題出在哪里呢?為什么永遠都覺得在疲于奔命?
他們從把工作分類開始,一步步得找到了癥結(jié)所在。大體分四類工作:
Business Projects
比如其他部門的要上一個商業(yè)應(yīng)用或者新的商業(yè)流程,需要IT提供軟硬件環(huán)境,實施設(shè)計開發(fā)并運維。這類項目是有其他部門為實現(xiàn)某種商業(yè)目的來驅(qū)動的。
Internal Projects
往往指由IT內(nèi)部驅(qū)動的項目,軟件更新?lián)Q代、擴容、安全措施、提高IT環(huán)境的穩(wěn)定性、性能等等。
Change
ProductionEnvironment的有計劃的升級,改動等等
Unplanned Work
一些突發(fā)情況,比如系統(tǒng)或應(yīng)用的中斷等等
上面的圖揭示了一個惡性循環(huán)。
第一象限:因為商業(yè)計劃往往時間緊、任務(wù)急,IT手忙腳亂把活干了,為了節(jié)省時間人力走了很多捷徑,造成了系統(tǒng)穩(wěn)定性的降低。為日后埋下了隱患。
第二象限:因為忙著趕第一象限的活兒,本來應(yīng)該做的InternalProject就被拖延了。軟件補丁和升級不及時,系統(tǒng)沒有很好的優(yōu)化和長期的計劃,直接造成的系統(tǒng)穩(wěn)定性、性能等的降低。
第三象限:因為沒有很有效的ChangeControl,部門之間對改動互不知曉,還由于系統(tǒng)不穩(wěn)定造成很多計劃中的Change失敗。從而累積了越來越多的問題
第四象限:由于前三個象限中問題產(chǎn)生的雪球效應(yīng),很多意外情況就不可避免的發(fā)生了。解決這些意外情況的成本是非常高的,因為打亂了本來的計劃,造成了其他三個象限工作的拖延。從而又產(chǎn)生了新的一輪的惡性循環(huán)。
問題的癥結(jié)找到了,那么如何入手解決呢。主人公Bill一連下了幾記重拳:
建立高效的ChangeControl流程
這個流程開始的時候很不容易,因為人們習(xí)慣了各行其是,覺得Change Control太繁瑣復(fù)雜。但這個流程是必須的,它可以評估改動的風險,防止出現(xiàn)意外情況。
暫時凍結(jié)Business Projects
短期的凍結(jié),給了IT人員調(diào)整優(yōu)化系統(tǒng)的喘息之機,從而能實施一些Internal Project來穩(wěn)定IT環(huán)境。同時為新的BusinessProjects做好準備。
定位瓶頸
該書中描述了一位技術(shù)大拿Brent,總是在關(guān)鍵時候力挽狂瀾。在很多情況下,少了Brent事情就干不成。主人公Bill意識到了如果不解決這個瓶頸,整個IT團隊的生產(chǎn)力都要受到個人的影響。于是采取了一系列的措施解決這個問題。比如:最佳合理利用Brent的時間,避免很多瑣事的干擾;培養(yǎng)一個梯隊來承擔Brent的任務(wù),做好知識和經(jīng)驗的傳承。
幾套組合拳下來,很明顯的減少了Unplanned Work,從而遏制住了惡性循環(huán),為下一步的流程優(yōu)化打下了基礎(chǔ)。更重要的是增加了團隊間的凝聚力和信心。
除此之外,書中反復(fù)強調(diào)了一個有重大意義的理念,就是以流水線的方式來開發(fā)和管理IT環(huán)境。我們會在下文中詳細介紹。