當(dāng)軟件開(kāi)發(fā)人員與運(yùn)維工程師一起工作時(shí),他們雙方都并不清楚對(duì)方的工作性質(zhì)與感覺(jué),但是這兩種職位有一定的相似性。軟件開(kāi)發(fā)人員負(fù)責(zé)構(gòu)建和維護(hù)軟件,而運(yùn)維人員則負(fù)責(zé)保證軟件的正常運(yùn)行。開(kāi)發(fā)人員構(gòu)建的軟件主要面向客戶(hù)或最終用戶(hù),而運(yùn)維工程師構(gòu)建的軟件則通常面向本部門(mén)或本公司的其他工程師。然而、在源代碼方面、軟件工程師與運(yùn)維工程師之間已經(jīng)不存在絕對(duì)的界線(xiàn)。現(xiàn)今的系統(tǒng)操作員不能只知道如何修改配置和維護(hù)文件系統(tǒng)、他們已經(jīng)被新型工程師所取代:既要能開(kāi)發(fā)新應(yīng)用、又要能勝任運(yùn)維工作并保證軟件的高效運(yùn)行關(guān)于運(yùn)維人員與軟件開(kāi)發(fā)人員之間的關(guān)系,20年前與現(xiàn)在相比有什么不同(在發(fā)布、故障修復(fù)和協(xié)作方面)?
一開(kāi)始、我在一家小公司擔(dān)任顧問(wèn)職務(wù)、主要負(fù)責(zé)編寫(xiě)代碼、安裝操作系統(tǒng)與軟件及管理數(shù)據(jù)庫(kù)服務(wù)器。我以前從未寫(xiě)過(guò)代碼,但是我有運(yùn)行Uuix工作站的經(jīng)驗(yàn),所以一開(kāi)始運(yùn)維工作對(duì)于我來(lái)說(shuō)比較輕松。后來(lái),我們?cè)黾恿艘粋(gè)職責(zé)更清晰的運(yùn)維團(tuán)隊(duì);然而,他們似乎更關(guān)注于網(wǎng)絡(luò)、操作系統(tǒng)和數(shù)據(jù)庫(kù)管理員方面的工作。
這兩個(gè)團(tuán)隊(duì)的關(guān)系總是很微妙。我記得,有一位高級(jí)開(kāi)發(fā)人員總是在一個(gè)窗口上運(yùn)行Unix的w命令,一旦看到有管理員登錄他的設(shè)備并準(zhǔn)備安裝補(bǔ)丁時(shí),他就會(huì)馬上關(guān)閉網(wǎng)絡(luò)服務(wù)!他真的不希望有人搞亂他現(xiàn)有的環(huán)境。我認(rèn)為,這個(gè)分界線(xiàn)在20年前和現(xiàn)在的變化并不大,但是我們所在環(huán)境的規(guī)模與復(fù)雜性,以及所處的公司文化都發(fā)生了很大變化。我曾經(jīng)在一些擁有大規(guī)模服務(wù)器群的站點(diǎn)工作,其中運(yùn)維團(tuán)隊(duì)只負(fù)責(zé)管理操作系統(tǒng),而開(kāi)發(fā)人員則負(fù)責(zé)所有其他事務(wù)。在其他一些環(huán)境中,開(kāi)發(fā)人員與運(yùn)維人員也有嚴(yán)格的職責(zé)劃分。
作為開(kāi)發(fā)人員,您對(duì)開(kāi)發(fā)運(yùn)維( Devops)有什么看法?
在很多方面,我認(rèn)為它實(shí)際上是“開(kāi)發(fā)開(kāi)發(fā)”( Devdev)。似乎很多以前屬于運(yùn)維人員職責(zé)范圍的工作都轉(zhuǎn)移給了開(kāi)發(fā)人員。我認(rèn)為這是個(gè)正確的轉(zhuǎn)變。如果一位開(kāi)發(fā)人員能夠編寫(xiě)軟件,那么他一定也要能管理軟件在生產(chǎn)環(huán)境的運(yùn)行,而如果將這項(xiàng)工作轉(zhuǎn)交給運(yùn)維團(tuán)隊(duì),其代價(jià)會(huì)更高,也更容易出現(xiàn)錯(cuò)誤。避免了工作轉(zhuǎn)移,也就避免了問(wèn)題,而且開(kāi)發(fā)人員也能夠繼續(xù)負(fù)責(zé)管理自己編寫(xiě)的軟件。如果他們會(huì)在半夜因?yàn)檐浖霈F(xiàn)意外問(wèn)題而被人叫醒,那么他們一定會(huì)去努力修復(fù)這個(gè)軟件問(wèn)題,因?yàn)樗麄兛隙ú辉敢饪偸窃谒饺藭r(shí)間里被人打擾。如果不經(jīng)歷這樣的痛苦,他們就不會(huì)有動(dòng)力,就體會(huì)不到好好對(duì)待同事的好處,也就不會(huì)認(rèn)真地開(kāi)發(fā)出好的軟件。此外,舉例來(lái)說(shuō),任何只懂編寫(xiě)Java代碼的人肯定不會(huì)認(rèn)真提高自己的工作質(zhì)量,而我是肯定不會(huì)招聘這種人的。
開(kāi)發(fā)運(yùn)維是否與敏捷相似?
它們?cè)诤芏喾矫嬗邢嗨菩。敏捷提倡團(tuán)隊(duì)合作,推崇分擔(dān)責(zé)任。通常,人們認(rèn)為這種方法要求開(kāi)發(fā)人員不斷地切換角色,然而敏捷方法則通常將QA視為敏捷團(tuán)隊(duì)的內(nèi)在特性?梢赃@樣說(shuō),開(kāi)發(fā)運(yùn)維將運(yùn)維帶到敏捷中。
系統(tǒng)管理員能夠給開(kāi)發(fā)人員的最大幫助是什么?
訪問(wèn)、數(shù)據(jù)和穩(wěn)定統(tǒng)一的環(huán)境。例如,來(lái)自不同主機(jī)的 Hadoop用戶(hù)應(yīng)該擁有一個(gè)穩(wěn)定不變的用戶(hù)D。系統(tǒng)管理員要像開(kāi)發(fā)人員對(duì)待代碼樣處理基礎(chǔ)架構(gòu)和配置,并且要使用一種測(cè)試框架去測(cè)試軟件的修改如 Cucumber測(cè)試框架。
在與運(yùn)維人員協(xié)作時(shí),開(kāi)發(fā)人員最應(yīng)該注意的是什么?
網(wǎng)站建設(shè)開(kāi)發(fā)人員一定要記住,如果出現(xiàn)了問(wèn)題,那么有90%的可能性是開(kāi)發(fā)人員自己的錯(cuò)誤。