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