實(shí)踐 DevOps 時,可能面臨的六大挑戰(zhàn)
DevOps 是將人員和部門聚集在一起,專注于創(chuàng)建一個統(tǒng)一的系統(tǒng),將開發(fā)和運(yùn)營的任務(wù)和目標(biāo)結(jié)合起來。隨著越來越多公司采用 DevOps 流程,實(shí)踐過程中遇到的各種問題也逐漸浮出水面。因此,任何一家要實(shí)踐 DevOps 的公司,都應(yīng)該關(guān)注這六個領(lǐng)域,以此來減少各種不利因素對軟件開發(fā)和部署周期的影響。
1. 沒有正確的文化理念
DevOps 文化是關(guān)于開發(fā)人員和運(yùn)營人員之間的共同理解,以及對他們構(gòu)建的軟件的共同責(zé)任。因此, DevOps 要發(fā)揮作用,擁有正確的文化是關(guān)鍵。這意味著,可以提高開發(fā)、IT / 運(yùn)營和 “業(yè)務(wù)” 之間的透明度、溝通和協(xié)作效率。
DevOps Institute 公司的 CEO Jayne Groll 曾表示,雖然部署和優(yōu)化基礎(chǔ)設(shè)施會減慢開發(fā)和運(yùn)營速度,但團(tuán)隊(duì)如果沒有正確的文化理念,可能會導(dǎo)致項(xiàng)目崩潰。
持續(xù)交付服務(wù)提供商 CloudBees 的 DevOps 傳播者 Brian Dawson 也認(rèn)為,一家擁有正確文化的公司,可以克服任何基礎(chǔ)設(shè)施和技能問題。
2. 重技術(shù)忽視軟技能
成功的 DevOps 工程師不僅是出色的問題解決者,還是出色的溝通者和領(lǐng)導(dǎo)者。隨著 DevOps 逐漸由人工智能統(tǒng)治,軟技能將變得更加關(guān)鍵。因此,很多公司在招聘 DevOps 人才時,會優(yōu)先考慮軟技能 —— 例如協(xié)作能力、解決問題能力和人際交往能力。
對公司而言,員工是否擁有協(xié)作、學(xué)習(xí)和解決任何問題的意愿是很重要的,但是除此之外,同時還應(yīng)該具備自動化技能,比如基礎(chǔ)設(shè)施知識、對流程的軟件開發(fā)、源代碼控制和分析。當(dāng)然,要找到完全符合要求的人才并不容易。因此,如果要在一個擁有強(qiáng)大的文化和人際關(guān)系能力的人,和一個擁有某項(xiàng)專業(yè)技術(shù)的人之間做出選擇,選擇前者帶來的效益往往會更高。
3. 自動化工具過多成為累贅
DevOps 的關(guān)鍵是自動化。由于 DevOps 跨越 Dev、Ops、IT、安全和產(chǎn)品團(tuán)隊(duì),以及軟件開發(fā)的不同階段,因此有大量工具可供選擇。比如,版本控制 & 協(xié)作開發(fā)工具 GitHub、GitLab、BitBucket ,自動化構(gòu)建和測試工具 Apache Ant、Maven 、Selenium,持續(xù)集成 & 交付工具 Jenkins、Capistrano、BuildBot,以及部署工具、維護(hù)工具、監(jiān)控,警告 & 分析工具等等,琳瑯滿目不下百種。
但這對于亟須進(jìn)行數(shù)字化轉(zhuǎn)型的傳統(tǒng)企業(yè)來說,并非是件好事。過多工具本身導(dǎo)致了新的管理問題,如確認(rèn)工具版本是否符合項(xiàng)目要求,甚至出現(xiàn)了管理這些工具的工具。因此,在尋求自動化,選擇自動化工具或平臺時,更應(yīng)該從多個方面衡量該平臺是否適合,是否能真正地實(shí)現(xiàn)降本增效。
4. 變更決策進(jìn)展緩慢
DevOps Institute 的 Groll 表示,軟件變更的流程和基礎(chǔ)設(shè)施也已成為影響公司效率的主要因素?!拔覀冋?wù)摰氖浅掷m(xù)部署和持續(xù)交付,但大多數(shù)組織都希望提前兩周發(fā)布變更公告。因此,我們所說的、我們想要的與現(xiàn)實(shí)之間存在脫節(jié)。”
通常,公司將更新分為三類:標(biāo)準(zhǔn)變更、正常變更和緊急修復(fù)。正常變更是進(jìn)行軟件更新的典型過程,而標(biāo)準(zhǔn)變更是無需預(yù)先批準(zhǔn)或至少可以加急進(jìn)行的更改。然而,Atlassian 的 Buchanan 表示,借助 DevOps 中的自動化,應(yīng)該能夠更快地進(jìn)行更多變更。
“標(biāo)準(zhǔn)是新常態(tài)。隨著所有這些自動化的進(jìn)行,可以進(jìn)行標(biāo)準(zhǔn)變更 —— 預(yù)先批準(zhǔn)、易于理解、低風(fēng)險、明確規(guī)定 —— 因?yàn)槲覀冎肋@些流程是如何工作的。”
—— Ian Buchanan
5. 方向錯誤
對于大多數(shù)踐行 DevOps 的公司來說,從低水平的自動化,擴(kuò)展到難度更高的基礎(chǔ)設(shè)施項(xiàng)目時,往往會迷失方向。比如,有的公司會創(chuàng)建一個專門的功能團(tuán)隊(duì)來支持 DevOps 的實(shí)施,然而這會帶來更多的潛在風(fēng)險。事實(shí)上,公司要做的不是擴(kuò)張職能團(tuán)隊(duì),而是應(yīng)該選擇允許他們快速擴(kuò)展業(yè)務(wù)的基礎(chǔ)設(shè)施。
大型國有企業(yè)中國石油,為了開發(fā)一個大型電商平臺,聘請了外部團(tuán)隊(duì)進(jìn)行開發(fā),同時選擇了一個開源電商軟件進(jìn)行二次開發(fā)。但商城上線之后,問題頻出。之后,中國石油選擇使用 SoFlu 軟件機(jī)器人對商城進(jìn)行系統(tǒng)重構(gòu),SoFlu 是一款通過人機(jī)協(xié)同,自動完成軟件后端開發(fā)、前端開發(fā)、測試、運(yùn)維,幫助開發(fā)者實(shí)現(xiàn) “一人一項(xiàng)目,十人抵百人” 的軟件機(jī)器人。在 5 個 SoFlu 軟件機(jī)器人的協(xié)助下,中石油信息化團(tuán)隊(duì)僅投入 9 位研發(fā)人員在 45 天內(nèi)就完成了商城的系統(tǒng)重構(gòu)。而且,測試過程表明,平臺的穩(wěn)定性過關(guān),且該電商平臺可以根據(jù)企業(yè)的需求,獨(dú)立部署到任何平臺。所有數(shù)據(jù)企業(yè)均可自行存儲,同時平臺本身的安全規(guī)范,保證了數(shù)據(jù)的安全性。
可以看到,選擇一個優(yōu)質(zhì)的基礎(chǔ)設(shè)施平臺來提高自動化水平,要比開設(shè)專門的職能部門更加有效。
6、技術(shù)債務(wù)正在累積
技術(shù)債務(wù)是一個不得不重視的話題。根據(jù) DevOps 工具和服務(wù)提供商 Atlassian 發(fā)布的一項(xiàng)研究顯示,近四分之三的開發(fā)團(tuán)隊(duì)花費(fèi)大量時間更新和升級軟件,有的甚至要浪費(fèi)每周工作時間的 50% 。
同時,技術(shù)債務(wù)還給公司帶來了很多不利因素。OutSystems 的一份報(bào)告表明,“大多數(shù) (69%) 的 IT 領(lǐng)導(dǎo)者表示,技術(shù)債務(wù)對他們的創(chuàng)新能力構(gòu)成了根本性的限制,61% 的人表示這拖累了公司的業(yè)績,64% 的人同意它將繼續(xù)對未來造成影響?!?
如果企業(yè)擁有適當(dāng)?shù)?DevOps 流程和自動化能力,至少會在一定程度上減少技術(shù)債務(wù)的堆積。CI/CD 流程中體現(xiàn)的自動化,例如自動化測試和自動化構(gòu)建,有助于及早識別技術(shù)債務(wù),進(jìn)而有助于持續(xù)償還債務(wù)。同時,自動化執(zhí)行的質(zhì)量標(biāo)準(zhǔn)也有助于減少技術(shù)債務(wù)。