有多種不同的技術(shù)變革都在深刻影響著企業(yè)IT部門(mén)工作的方式。虛擬化,云計(jì)算,軟件定義一切,大數(shù)據(jù),一切皆服務(wù)——這些都迫使IT做出改變,并關(guān)注新的工作方案,DevOps。
IT部門(mén)的大多數(shù)改變都是為了追求速度——對(duì)于用戶(hù)的應(yīng)用程序的響應(yīng)速度;改變功能,應(yīng)用程序和流程的速度,以更好地響應(yīng)企業(yè)的需求。
傳統(tǒng)的IT工作方式被迫做出改變。 傳統(tǒng)的IT項(xiàng)目計(jì)劃遵循一個(gè)長(zhǎng)期的時(shí)間表 – 根據(jù)用戶(hù)定義文件開(kāi)發(fā)合理的項(xiàng)目管理標(biāo)準(zhǔn),項(xiàng)目計(jì)劃,審查,變更管理流程等,這一時(shí)間計(jì)劃跨度在18個(gè)月。
問(wèn)題在于花費(fèi)18個(gè)月來(lái)解決問(wèn)題,并不能解決真正的問(wèn)題,屆時(shí),這個(gè)問(wèn)題可能已經(jīng)消失了,或者被其他新問(wèn)題所取代。
DevOps就是解決方案 - 本質(zhì)上,通過(guò)自動(dòng)化技術(shù)把開(kāi)發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)緊密聯(lián)系起來(lái),來(lái)支持業(yè)務(wù)需求變化的速度。
DevOps是一種將企業(yè)的應(yīng)用開(kāi)發(fā)團(tuán)隊(duì)和那些系統(tǒng)運(yùn)營(yíng)團(tuán)隊(duì)相整合,合作進(jìn)行任務(wù)執(zhí)行的IT工作方案。軟件定義的基礎(chǔ)設(shè)施和云計(jì)算要求企業(yè)打破開(kāi)發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)之間的孤立。
傳統(tǒng)上,開(kāi)發(fā)團(tuán)隊(duì)傾向于作為一個(gè)獨(dú)立團(tuán)體進(jìn)行工作,根據(jù)不同的定義文件,在其項(xiàng)目上持續(xù)工作,直到他們創(chuàng)造出他們所認(rèn)可的一個(gè)完整的應(yīng)用程序。然后,它會(huì)經(jīng)過(guò)一個(gè)測(cè)試階段 - 通常還是處于開(kāi)發(fā)名義下 - 在此之后,運(yùn)營(yíng)團(tuán)隊(duì)開(kāi)始接管這一應(yīng)用程序,并在企業(yè)內(nèi)進(jìn)行運(yùn)行。
通常來(lái)說(shuō),新的應(yīng)用程序會(huì)有一些暫時(shí)的問(wèn)題,開(kāi)發(fā)團(tuán)隊(duì)會(huì)從支持部門(mén)那里獲得問(wèn)題名單,會(huì)對(duì)它們的優(yōu)先級(jí)別進(jìn)行評(píng)估, - “這個(gè)問(wèn)題看起來(lái)很有趣?” - 并在程序環(huán)境內(nèi)對(duì)他們認(rèn)為必需的問(wèn)題進(jìn)行修改,然后再次提交測(cè)試,并再次進(jìn)行運(yùn)行驗(yàn)證。
但是,如果有比“暫時(shí)的問(wèn)題”更嚴(yán)重的問(wèn)題,一切就要復(fù)雜很多。在操作環(huán)境中有重大問(wèn)題的應(yīng)用程序必須中止運(yùn)行,其包含的數(shù)據(jù)必須同步到原先的應(yīng)用程序中,這樣員工,合作伙伴和客戶(hù)可以重新進(jìn)行工作。這些問(wèn)題會(huì)令開(kāi)發(fā)團(tuán)隊(duì)十分費(fèi)解,因?yàn)樵谒麄冏约旱臏y(cè)試環(huán)境中,一切運(yùn)行良好。
工作會(huì)導(dǎo)致挫折和效率低下,因?yàn)槊總€(gè)團(tuán)隊(duì)都不理解其他團(tuán)隊(duì)的局限性或挑戰(zhàn)。但更重要的是,IT和業(yè)務(wù)都受到了嚴(yán)重影響。
以技術(shù)為中心的公司,如Facebook, Yahoo, Yammer, Amazon, Google和VMware都已經(jīng)采用了DevOps方案。
DevOps是如何解決工作孤立問(wèn)題的
開(kāi)發(fā)人員必須更密切地與運(yùn)營(yíng)團(tuán)隊(duì),以及整個(gè)操作環(huán)境進(jìn)行合作。開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)該盡可能跟進(jìn)實(shí)時(shí)數(shù)據(jù)集,這樣任何問(wèn)題都可以在早期被發(fā)現(xiàn)。
DevOps方案的關(guān)鍵在于盡可能多的使用自動(dòng)化技術(shù) - 無(wú)論是把開(kāi)發(fā)項(xiàng)目從測(cè)試階段轉(zhuǎn)移到運(yùn)行階段的流程,還是如何解決任何運(yùn)行中產(chǎn)生的問(wèn)題。
項(xiàng)目必須被分解成更小的模塊 - 所需的功能,必須嚴(yán)格進(jìn)行優(yōu)先排列,開(kāi)發(fā)團(tuán)隊(duì)必須在操作環(huán)境中迅速開(kāi)發(fā)出功能系統(tǒng),來(lái)解決最高優(yōu)先的需求。 “迅速”應(yīng)該以星期來(lái)衡量 – 根據(jù)經(jīng)驗(yàn),第一次運(yùn)行應(yīng)該在12-18周之內(nèi)進(jìn)行。
這就把需求從單一而龐大的應(yīng)用程序,轉(zhuǎn)移到由各種資源匯總的混合功能應(yīng)用程序。數(shù)據(jù)中心內(nèi)現(xiàn)有的功能應(yīng)該與云應(yīng)用和云服務(wù)相結(jié)合起來(lái),這樣就不需要持續(xù)重復(fù)開(kāi)發(fā),使用專(zhuān)業(yè)知識(shí)和數(shù)據(jù)集對(duì)整體復(fù)合應(yīng)用程序所適用的領(lǐng)域進(jìn)行增值。
測(cè)試階段應(yīng)該在運(yùn)行環(huán)境中并行實(shí)現(xiàn),這樣更多的性能問(wèn)題可以盡早被發(fā)現(xiàn),或者在虛擬環(huán)境中,由一些真實(shí)用戶(hù)來(lái)進(jìn)行測(cè)試。
對(duì)于并行實(shí)現(xiàn),通過(guò)使用虛擬化比較容易實(shí)現(xiàn)?,F(xiàn)有數(shù)據(jù)庫(kù)的副本可以對(duì)比運(yùn)行DevOps代碼的虛擬計(jì)算機(jī)。 然后測(cè)試可以針對(duì)現(xiàn)有網(wǎng)絡(luò)負(fù)載進(jìn)行運(yùn)行,這樣其性能可以在代碼有效同時(shí)進(jìn)行評(píng)估。
確保異常情況可以迅速并有效地獲得處理。測(cè)試階段中人員力量是很重要的 –他們可以比計(jì)算機(jī)更有效的觀察人們?cè)谑褂脩?yīng)用程序時(shí)的規(guī)律和問(wèn)題。多一些人員參與測(cè)試階段 – 盡可能多的進(jìn)行觀測(cè)和評(píng)估。
一旦測(cè)試階段完成了, 然后就應(yīng)該把應(yīng)用程序切換到實(shí)時(shí)數(shù)據(jù)庫(kù), 把用戶(hù)切換到新的代碼。
必須明白,DevOps方案,就其本質(zhì)而言,是一個(gè)反復(fù)的過(guò)程。獲得60%,70%或80%的解決方案,意味著下一步仍然有40%,30%或20%的問(wèn)題需要解決。我們的目標(biāo)應(yīng)該始終是解決還剩下問(wèn)題中最優(yōu)先的部分,以及在最后代碼運(yùn)行之后出現(xiàn)的新需求。
如何讓你的DevOps戰(zhàn)略碩果累累
代碼元素由開(kāi)發(fā)團(tuán)隊(duì)所完成,盡可能使用自動(dòng)化,完整的,全面認(rèn)證的方式,把這些元素從開(kāi)發(fā)團(tuán)隊(duì)的測(cè)試階段,過(guò)渡到運(yùn)行環(huán)境中,將有助于確保增量變化,并取得改善。
重新運(yùn)行,也可以是自動(dòng)化的——盡管一個(gè)運(yùn)行良好的DevOps項(xiàng)目不應(yīng)該被要求重新運(yùn)行,再執(zhí)行,不過(guò)這也應(yīng)該作為計(jì)劃B。能夠回到一個(gè)已知點(diǎn) - 相當(dāng)于一個(gè)備份,恢復(fù)時(shí)間目標(biāo)和恢復(fù)點(diǎn)目標(biāo)(RTO/ RPO) - 應(yīng)該是任何DevOps項(xiàng)目設(shè)置的一部分。
反饋也必須是自動(dòng)化的。 沒(méi)有必要等待支持部門(mén)收集意見(jiàn)和反饋,然后匯報(bào)給DevOps團(tuán)隊(duì)。獲取反饋應(yīng)該作為應(yīng)用程序的一部分; 要求反饋應(yīng)該作為流程的一部分。根據(jù)反饋對(duì)于業(yè)務(wù)的影響程度采取相應(yīng)措施- 而不是這一問(wèn)題從技術(shù)層面上聽(tīng)上去多么有趣。
總體而言,DevOps對(duì)于加快IT部門(mén)確保其滿(mǎn)足業(yè)務(wù)需求而言,是一個(gè)很好的方案。 然而,一個(gè)無(wú)法妥善執(zhí)行的DevOps方案將導(dǎo)致更多的錯(cuò)誤,會(huì)使用戶(hù)對(duì)于他們獲得的體驗(yàn)感到不滿(mǎn)。
實(shí)施DevOps策略并不是一件容易的事,因?yàn)樗笃髽I(yè)必須接受新的文化。 DevOps是一種文化,流程,技術(shù)和人文。
它在文化和企業(yè)上需要重大改變,其中涉及到相當(dāng)多的行為改變。這意味著要摒棄很多已經(jīng)深入企業(yè)很多年的或顯性或隱性的慣例。其中包括告訴那些已經(jīng)工作多年的員工,他們每天慣于做事的方式已經(jīng)落伍了,這是一個(gè)艱難的過(guò)程。
只是簡(jiǎn)單把開(kāi)發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)放在同一個(gè)房間里,并不會(huì)帶來(lái)一個(gè)成功的DevOps戰(zhàn)略 - 每個(gè)團(tuán)隊(duì)都必須了解和認(rèn)識(shí)到在云計(jì)算和軟件定義時(shí)代進(jìn)行合作工作的重要性。
自動(dòng)化技術(shù),激勵(lì)開(kāi)發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)合作工作,分配時(shí)間用于培訓(xùn)員工,根據(jù)創(chuàng)建即可執(zhí)行原則來(lái)開(kāi)發(fā)新的企業(yè)架構(gòu)標(biāo)準(zhǔn),將IT與業(yè)務(wù)目標(biāo)相結(jié)合,所有這些步驟都將確保DevOps戰(zhàn)略不會(huì)受到損害。確保一些細(xì)微的方面都涵蓋到,將有助于DevOps更好發(fā)揮作用。