以下是當(dāng)今大多數(shù)組織在使用DevOps時面臨的五個主要問題。
1. DevOps缺乏明確的定義
DevOps的主要問題之一是其定義仍然有些模棱兩可。不同的公司和分析師對DevOps的定義不同。
大多數(shù)DevOps定義的中心思想是,開發(fā)工作和IT運營工作應(yīng)相互緊密協(xié)調(diào)。但是也有一些重要的例外,例如亞馬遜公司對DevOps的定義沒有提及開發(fā)人員和IT工程師之間的協(xié)作。相反,該公司將DevOps定義為“文化理念、實踐和工具的組合,可以提高組織快速交付應(yīng)用程序和服務(wù)的能力”。
此外在DevOps的定義中,并沒有確切說明開發(fā)人員和IT運營團隊之間應(yīng)該如何進行協(xié)作。
“Doing DevOps”是否意味著組織需要構(gòu)建一支獨特的“DevOps工程師”團隊,他們需要將開發(fā)和運營技能結(jié)合在一起?還是要教授開發(fā)人員如何進行IT工作或者教授IT工程師如何進行編程?或者,也許組織應(yīng)該設(shè)立“DevOps聯(lián)絡(luò)員”這一職位,盡管他們的主要職責(zé)是編程或IT運營,但他們會主動與對方的團隊聯(lián)系,以培養(yǎng)開發(fā)人員和IT工程師之間的協(xié)作精神。
有人可能會爭辯說,DevOps最終只是一種理念,而不是固定的實踐,因此,組織應(yīng)以對他們最有意義的方式實施DevOps。但這仍然使DevOps的含義和目的有些模棱兩可。
2. DevOps創(chuàng)建了錯誤的二分法
DevOps的另一個問題是——在某種程度上,DevOps可以被定義為一種鼓勵開發(fā)人員和IT團隊之間協(xié)作的理念,它建立了一種錯誤的二分法。這個概念的前提是,開發(fā)人員對IT工程師的工作知之甚少或一無所知,反之亦然,除非DevOps介入并節(jié)省工作時間。
這是對開發(fā)與IT運營工作之間關(guān)系簡化的觀點,其實IT工程師并非對編程一無所知。實際上,許多部署和維護應(yīng)用程序的IT專業(yè)人員都非常擅長使用開發(fā)軟件,這不僅是因為他們編程、管理和更新了許多自定義腳本為他們的工作流程提供幫助。
同樣可以肯定的是,如果說大多數(shù)開發(fā)人員完全不了解IT工作,那么他們一定不會認(rèn)同。他們知道應(yīng)用程序部署的含義,以及IT工程師在部署應(yīng)用程序時通常面臨的痛點。他們還了解日志記錄和監(jiān)視,這不僅是管理應(yīng)用程序的重要過程,而且對于解決應(yīng)用程序內(nèi)部出現(xiàn)的問題也很重要。
開發(fā)人員與IT工程師進行更有效的溝通時,軟件交付會更好嗎?反之亦然?當(dāng)然是。但這并不意味著在實施DevOps之前,這些小組之間不存在任何溝通或相互了解。
3. DevOps缺乏明確的指導(dǎo)方針
DevOps還面臨著缺乏清晰明確的準(zhǔn)則來確定工作狀況的問題。它提出了高層次的概念,但沒有具體說明它們的含義。
以持續(xù)交付為例。“持續(xù)”是一個模棱兩可和有問題的術(shù)語。如果組織每周部署一個新的應(yīng)用程序版本,是否算作持續(xù)交付?還是必須像Netflix或Google公司那樣每天部署數(shù)千次?顯然,很多組織并沒有通過一個持續(xù)集成(CI)/ 持續(xù)交付(CD)管道實現(xiàn)這么多次,他們有很多渠道。但這不是重點。
人們也可以對其他與DevOps相關(guān)的過程提出類似的觀點。在聲稱可以執(zhí)行QAOps之前,需要運行多少次自動化測試?與單一的集成相比,有多少代碼交付累計起來構(gòu)成了持續(xù)集成?
同樣,人們可能會認(rèn)為DevOps沒有定義特定的準(zhǔn)則或指標(biāo),因為這是一種哲學(xué),而不是嚴(yán)格的實踐。這是一個很合理的論點,但這也是DevOps的問題之一,因為它可能被認(rèn)為有些過分。人們需要在DevOps和Not-DevOps之間劃清界線,而大多數(shù)DevOps的支持者在這方面做得并不好。
4. 聲稱DevOps對未發(fā)明的技術(shù)負責(zé)
盡管DevOps并沒有規(guī)定特定的方法,但DevOps社區(qū)作為一個整體仍與某些技術(shù)緊密相關(guān)。微服務(wù)(其中有人認(rèn)為是DevOps的自然發(fā)展)就是一個例子。另一個是容器和無服務(wù)器功能,它們是“基于DevOps原理構(gòu)建的”。
這樣的爭論的問題在于,容器在人們談?wù)揇evOps之前就已經(jīng)存在了很長時間。如果將類似Zimki的平臺放在這一類別中,則無服務(wù)器功能也會如此。對于微服務(wù),可以將它們視為與面向服務(wù)的體系結(jié)構(gòu)(即SOA)(而不是DevOps的技術(shù)后代)密切相關(guān)并且更古老的概念的下一步發(fā)展。
從這個角度來看這是一個問題??梢院芎玫刂赋鑫⒎?wù)和容器等技術(shù)如何加強DevOps目標(biāo)(無論選擇定義哪些目標(biāo)),但是可以說DevOps實際上促成這些技術(shù)有更大的延伸。
5. DevOps的采用率很低
當(dāng)今,DevOps面臨的最大問題之一是,盡管圍繞DevOps進行了更多的宣傳,但組織實際采用的比率很低。不同的研究發(fā)現(xiàn),盡管大多數(shù)組織表示他們希望利用DevOps作為加快軟件交付的方式,但通常只有一半或更少的受訪者表示成功實施了DevOps。在規(guī)模較小的組織中,DevOps的采用率似乎較高,但大型組織的采用率卻相對較低。
也許有一天,DevOps最終會獲得真正廣泛的采用。但DevOps已經(jīng)推出了10多年的時間,其采用率并不高。這個問題很少在DevOps社區(qū)內(nèi)討論,可能是因為采用DevOps的組織通常給出高度評價,而沒有采用DevOps的組織卻對此很少關(guān)注。
結(jié)論
DevOps是一個強大的概念,它確實改善了某些組織交付軟件的方式。但是作為一個概念,DevOps也面臨一些實際挑戰(zhàn)。它沒有一個很好的定義,并聲稱對未發(fā)明的技術(shù)負責(zé),而且其采用率并沒有像人們認(rèn)為的那樣廣泛。
這并不是說DevOps是失敗的或者將會消亡。與其相反,DevOps的支持者應(yīng)該就上述DevOps的問題進行更進一步的討論。這些問題是可以解決的,DevOps社區(qū)不應(yīng)該對它們視而不見。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。