實踐 DevOps 時,可能面臨的六大挑戰

語言: CN / TW / HK

DevOps 是將人員和部門聚集在一起,專注於建立一個統一的系統,將開發和運營的任務和目標結合起來。隨著越來越多公司採用 DevOps 流程,實踐過程中遇到的各種問題也逐漸浮出水面。因此,任何一家要實踐 DevOps 的公司,都應該關注這六個領域,以此來減少各種不利因素對軟體開發和部署週期的影響。

1. 沒有正確的文化理念

DevOps 文化是關於開發人員和運營人員之間的共同理解,以及對他們構建的軟體的共同責任。因此, DevOps 要發揮作用,擁有正確的文化是關鍵。這意味著,可以提高開發、IT/運營和“業務”之間的透明度、溝通和協作效率。

DevOps Institute 公司的 CEO Jayne Groll 曾表示,雖然部署和優化基礎設施會減慢開發和運營速度,但團隊如果沒有正確的文化理念,可能會導致專案崩潰。

持續交付服務提供商 CloudBees 的 DevOps 傳播者 Brian Dawson 也認為,一家擁有正確文化的公司,可以克服任何基礎設施和技能問題。

2.重技術忽視軟技能

成功的 DevOps 工程師不僅是出色的問題解決者,還是出色的溝通者和領導者。隨著 DevOps 逐漸由人工智慧統治,軟技能將變得更加關鍵。因此,很多公司在招聘 DevOps 人才時,會優先考慮軟技能——例如協作能力、解決問題能力和人際交往能力。

對公司而言,員工是否擁有協作、學習和解決任何問題的意願是很重要的,但是除此之外,同時還應該具備自動化技能,比如基礎設施知識、對流程的軟體開發、原始碼控制和分析。當然,要找到完全符合要求的人才並不容易。因此,如果要在一個擁有強大的文化和人際關係能力的人,和一個擁有某項專業技術的人之間做出選擇,選擇前者帶來的效益往往會更高。

3. 自動化工具過多成為累贅

DevOps 的關鍵是自動化。由於 DevOps 跨越 Dev、Ops、IT、安全和產品團隊,以及軟體開發的不同階段,因此有大量工具可供選擇。比如,版本控制 & 協作開發工具 GitHub、GitLab、BitBucket ,自動化構建和測試工具Apache Ant、Maven 、Selenium,持續整合 & 交付工具 Jenkins、Capistrano、BuildBot,以及部署工具、維護工具、監控,警告 & 分析工具等等,琳琅滿目不下百種。

但這對於亟須進行數字化轉型的傳統企業來說,並非是件好事。過多工具本身導致了新的管理問題,如確認工具版本是否符合專案要求,甚至出現了管理這些工具的工具。因此,在尋求自動化,選擇自動化工具或平臺時,更應該從多個方面衡量該平臺是否適合,是否能真正地實現降本增效。

4. 變更決策進展緩慢

DevOps Institute 的 Groll 表示,軟體變更的流程和基礎設施也已成為影響公司效率的主要因素。“我們談論的是持續部署和持續交付,但大多陣列織都希望提前兩週釋出變更公告。因此,我們所說的、我們想要的與現實之間存在脫節。”

通常,公司將更新分為三類:標準變更、正常變更和緊急修復。正常變更是進行軟體更新的典型過程,而標準變更是無需預先批准或至少可以加急進行的更改。然而,Atlassian 的 Buchanan 表示,藉助 DevOps 中的自動化,應該能夠更快地進行更多變更。

標準是新常態。隨著所有這些自動化的進行,可以進行標準變更——預先批准、易於理解、低風險、明確規定——因為我們知道這些流程是如何工作的。”

—— Ian Buchanan

5. 方向錯誤

對於大多數踐行 DevOps 的公司來說,從低水平的自動化,擴充套件到難度更高的基礎設施專案時,往往會迷失方向。比如,有的公司會建立一個專門的功能團隊來支援 DevOps 的實施,然而這會帶來更多的潛在風險。事實上,公司要做的不是擴張職能團隊,而是應該選擇允許他們快速擴充套件業務的基礎設施。

大型國有企業中國石油,為了開發一個大型電商平臺,聘請了外部團隊進行開發,同時選擇了一個開源電商軟體進行二次開發。但商城上線之後,問題頻出。之後,中國石油選擇使用SoFlu 軟體機器人對商城進行系統重構,SoFlu是一款通過人機協同,自動完成軟體後端開發、前端開發、測試、運維,幫助開發者實現“一人一專案,十人抵百人”的軟體機器人。在5個SoFlu軟體機器人的協助下,中石油資訊化團隊僅投入9位研發人員在 45 天內就完成了商城的系統重構。而且,測試過程表明,平臺的穩定性過關,且該電商平臺可以根據企業的需求,獨立部署到任何平臺。所有資料企業均可自行儲存,同時平臺本身的安全規範,保證了資料的安全性。

可以看到,選擇一個優質的基礎設施平臺來提高自動化水平,要比開設專門的職能部門更加有效。

6、技術債務正在累積

技術債務是一個不得不重視的話題。根據 DevOps 工具和服務提供商 Atlassian 釋出的一項研究顯示,近四分之三的開發團隊花費大量時間更新和升級軟體,有的甚至要浪費每週工作時間的50% 。

同時,技術債務還給公司帶來了很多不利因素。OutSystems 一份報告表明,“大多數 (69%) 的 IT 領導者表示,技術債務對他們的創新能力構成了根本性的限制,61% 的人表示這拖累了公司的業績,64% 的人同意它將繼續對未來造成影響。” 

如果企業擁有適當的 DevOps 流程和自動化能力,至少會在一定程度上減少技術債務的堆積。CI/CD 流程中體現的自動化,例如自動化測試和自動化構建,有助於及早識別技術債務,進而有助於持續償還債務。同時,自動化執行的質量標準也有助於減少技術債務。