如何才能實(shí)現(xiàn)DevOps戰(zhàn)略?
DevOps是IT交付過程令人興奮和具有深遠(yuǎn)意義的轉(zhuǎn)變。承諾很誘人: 從根本上提高生產(chǎn)力,更低的成本和更可靠的系統(tǒng)。
那么,你應(yīng)該跟隨潮流,讓你的IT部門去參與開發(fā)運(yùn)營(yíng)融合(DevOps),對(duì)吧?大家都開始干了,所以你也別落后。***的問題不是干不干,而是怎樣干,從哪里入手?
首先,走出去,招聘一些DevOps人才。等等,DevOps可不是一個(gè)崗位哦。
好吧,你應(yīng)該創(chuàng)建一個(gè)DevOps工作組或者部門,對(duì)嗎? 在一個(gè)DevOps主管的帶領(lǐng)下,你可以訓(xùn)練出一個(gè)偉大的DevOps團(tuán)隊(duì)——再等等!!——DevOps既不是一個(gè)部門,也不是一種職能。
好吧,如果它不是一個(gè)崗位、 一個(gè)職能或一個(gè)部門,那DevOps到底是什么?
DevOps是文化、 流程、 技術(shù)和人。DevOps戰(zhàn)略是將許多學(xué)科融合為一套有凝聚力的組織原則。DevOps是一種新的IT系統(tǒng)交付方法,承諾更快交付、更高質(zhì)量、終結(jié)全球饑荒、獲得永生!好吧,也許不包括***兩個(gè)……DevOps也意味著IT組織在時(shí)間、經(jīng)歷和資源各方面的龐大的投入。
DevOps也就是應(yīng)用程序開發(fā)和系統(tǒng)運(yùn)維的融合 可以改造和提升IT交付能力。DevOps概念同樣也極易被濫用,所以我認(rèn)為應(yīng)該立一個(gè)警示牌。警告:DevOps濫用可能導(dǎo)致丟飯碗、 業(yè)務(wù)中斷、和CEO郁悶地匯報(bào)。
DevOps為什么不容易
首先,讓我們弄清楚DevOps“不是什么”。DevOps不是Chef、Puppet或者Salt Stack,或者任何其它工具、腳本環(huán)境或者技術(shù)。雖然自動(dòng)化是DevOps的核心理念,但它不等于自動(dòng)化。
DevOps也不會(huì)是你組織里深層次技術(shù)和專業(yè)技能的替代品。去專業(yè)化,并不意味著你要解雇你所有的Linux或者Oracle專家。
對(duì)于高度集中的科技公司例如Yahoo 、Facebook或Yammer,那里的所有DevOps主管想要取得DevOps成功非常艱難。對(duì)于傳統(tǒng)企業(yè),特別是大型分布式組織,在整體意義上的DevOps成功往往是不可能實(shí)現(xiàn)的。
為什么這么難?一個(gè)原因:文化。
DevOps要求深層次的文化和組織變革。需要改變行為習(xí)慣 ——要改變的太多太多。這意味著大家要扔掉奉行了幾十年的顯規(guī)則和潛規(guī)則。你不得不告訴老部下們,大部分他們知道的和每天做的事物都已經(jīng)過時(shí)了。
IT組織結(jié)構(gòu)調(diào)整很容易。我可以把開發(fā)人員和運(yùn)維人員安排在同一個(gè)房間,安排他們完成工作,這也是一種顯式的調(diào)整。但是,這兩個(gè)不同的群體的人,帶著多年不一樣的培訓(xùn)經(jīng)歷和不同的技能,真能夠融入DevOps組織嗎?要知道,他們可能來自不同的星球!
怎樣搞定DevOps
想要為DevOps和應(yīng)用靈活性而重塑你的團(tuán)隊(duì),需要領(lǐng)導(dǎo)層的勇氣和無私奉獻(xiàn)。當(dāng)然,它也需要花費(fèi)時(shí)間和金錢,并且需要在團(tuán)隊(duì)成員篩選上做出艱難的決定。
為了促進(jìn)DevOps戰(zhàn)略,調(diào)整考核和激勵(lì)機(jī)制是必要的。如果你依然只根據(jù)敲出代碼的生產(chǎn)力來獎(jiǎng)勵(lì)開發(fā)人員,或者根據(jù)基礎(chǔ)設(shè)施的可靠性來獎(jiǎng)勵(lì)運(yùn)維人員,那么,什么都不會(huì)改變。相反,應(yīng)該獎(jiǎng)勵(lì)系統(tǒng)創(chuàng)建和運(yùn)維的整體團(tuán)隊(duì),并且根據(jù)團(tuán)隊(duì)工作的全部要素來確定獎(jiǎng)勵(lì)。
圍繞業(yè)務(wù)系統(tǒng)而不是職責(zé)來組織工作,這就是DevOps打破IT分組壁壘的寓意。一個(gè)團(tuán)隊(duì)?wèi)?yīng)該有開發(fā)人員創(chuàng)建代碼,從用戶界面到業(yè)務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu),也應(yīng)該有運(yùn)維人員負(fù)責(zé)操作自動(dòng)化和部署。
人們需要知道他們需要對(duì)什么樣的系統(tǒng)負(fù)責(zé),而并不僅僅是毫無責(zé)任地從一個(gè)系統(tǒng)換到另一個(gè)系統(tǒng)。唯一的例外是專家。
團(tuán)隊(duì)待在一起,共同為他們的應(yīng)用和系統(tǒng)負(fù)責(zé)。
不要制造一個(gè)團(tuán)隊(duì)支持太多應(yīng)用的局面。在這個(gè)預(yù)算縮減的年代很難考慮周全,但是經(jīng)歷這種融合轉(zhuǎn)變之后,你的團(tuán)隊(duì)將更加富有成效,并且不需要額外人員就能應(yīng)對(duì)需求的增長(zhǎng)。
你需要充足的專家參與項(xiàng)目和為團(tuán)隊(duì)提供支持 ——這些人都是不同學(xué)科的大師和專家。他們?yōu)橄到y(tǒng)提供支持,但是不會(huì)長(zhǎng)期指派給某一個(gè)系統(tǒng)。他們不需要對(duì)這些系統(tǒng)負(fù)責(zé)。
全面自動(dòng)化 —— 部署、 升級(jí)、 擴(kuò)展、 維護(hù)、 數(shù)據(jù)衛(wèi)生、 測(cè)試、 監(jiān)測(cè)、 安全和策略管理。在自動(dòng)化方面投入巨資,目標(biāo)是100%的自動(dòng)化,不考慮低于90%的可能性。但是,全面自動(dòng)化也可能會(huì)引起自動(dòng)化泛濫。集中審查和調(diào)整可以控制Chef或Puppet腳本庫(kù)的無序增長(zhǎng)。
針對(duì)整個(gè)團(tuán)隊(duì)進(jìn)行獎(jiǎng)勵(lì)和表彰。成功離不開大家共同的努力,同樣,問題需要整個(gè)團(tuán)隊(duì)自我反省。系統(tǒng)團(tuán)隊(duì)?wèi)?yīng)該承認(rèn)專家們的貢獻(xiàn) ,對(duì)表現(xiàn)杰出的專家給予獎(jiǎng)勵(lì)。
圍繞建設(shè)運(yùn)營(yíng)融合的原則制定新的企業(yè)體系結(jié)構(gòu)標(biāo)準(zhǔn)。這將確保系統(tǒng)符合運(yùn)維的需求。
DevOps戰(zhàn)略必須獲取本組織自頂向下的全面支持。整個(gè)行政領(lǐng)導(dǎo)團(tuán)隊(duì) ——不只是***信息官 ——應(yīng)知道它為什么重要和怎樣使它取得成功。
請(qǐng)記住,這是重大的文化和組織變革,多分配些時(shí)間開展培訓(xùn)和組織開發(fā)活動(dòng)。如果你變革得太快而忘了和您的所有團(tuán)隊(duì)步調(diào)一致,你將整天陷入失誤和沖突——***滿盤皆輸。