DevOps實施過程中要避免的10個陷阱
實施DevOps要避免的10個陷阱
現在,通過與業務合作來提高開發人員的速度。為了更快的跟上步伐,領先的技術專業人員正在構建具有精確性并接受持續集成,持續交付和DevOps標準的軟件。
在DevOps文化 當中,一個重要的價值 就是接受失敗,這是實現價值之旅的一部分。對于軟件,以持續交付的形式出現 ,使我們定期發布代碼。快速的步伐使出現失敗的可能變大,但同時也確保了當失敗時,可以從錯誤中學到并迅速適應的能力。這就是業務發展的方式:會獲得更多見識,并由它們引導走向成功。
由于那些已經在實施或采用DevOps的人犯了錯誤,因此可以利用他們的經驗來學習并避免重復同樣的錯誤。本著DevOps和開放源代碼的精神,以下是企業在DevOps實施中如何解決它們遇到的一些最常見的錯誤。
1.OUT-OF-ORDER DELIVERY 無序的交付
有時,開發人員會同時執行持續集成(CI)和持續交付(CD),以加快自動化測試和反饋的周期。CI/CD作為一種實踐,在軟件交付速度方面有很多好處。這樣做也是有風險的,錯誤的代碼配置可能會交付給生產環境,而沒有對其影響進行充分的探索,從而使前方的自動化測試喪失價值。
我認為,在代碼貫穿整個軟件交付周期之前,手動確認仍然至關重要。必須有一個預生產階段(生產之前的部署和測試環境),該階段允許開發人員糾正將代碼直接推送到生產中時用戶可能會遇到的錯誤。
在代碼到達最終用戶之前進行監控非常重要。例如,CD管道使測試環境與開發環境同時進行將確保不會自動部署更改。盡管DevOps標準聲明團隊必須擴展到孤島之外,但部署應始終由熟悉管道從頭到尾代碼的人員進行驗證。這要求在代碼到達客戶之前進行徹底檢查。
2.對DEVOPS標題的誤解
一些組織對DevOps的概念感到困惑。即使DevOps意味著跨開發人員和運維人員進行協作,他們認為DevOps工程師的目標是解決與DevOps相關的所有問題。
DevOps整合開發和運營角色的方式可能是艱難的職業發展。開發人員需要對他們的應用程序如何運行了解更多的,以使應用保持運行狀態,并在出現故障時尋求支持。
實際上,DevOps可幫助公司加速IT運營中耗時的任務。例如,自動化測試為開發人員提供了更快的反饋,而自動化集成則將開發人員的更改更快地整合到了代碼庫中。還可能要求DevOps自動化有關收集,擴展和運行應用程序的過程。
組織的基本需求決定了您的DevOps專業人員的技能水平是否需要在運營或開發方面更強,并且此信息必須與您選擇或雇用DevOps團隊的方式保持一致。例如,當自動化是關鍵時(而不是需要有關容器化的專業知識),優先考慮過去的軟件開發和腳本技能非常重要。雇用您獨特的DevOps體驗需求,讓人們學習工作中的其他技能。如果您聘請了愿意學習的人,則將為您的組織建立最好的團隊。
3. DEVOPS程序缺乏靈活性
盡管DevOps原則提供了基礎,但每個組織都必須準備好預期結果準備。公司需要確保,DevOps在實施過程中保持穩定,但它們會進行內部修改,這對于衡量其預期結果至關重要。
掌握DevOps的基礎知識,尤其是 CALMS **(文化,自動化,精益,測量和共享)**支柱,為技術進步奠定基礎非常重要。但是,沒有一種適合所有情況的DevOps實現。通過認識到這一點,DevOps團隊可以制定計劃以解決該倡議的關鍵原因,并根據過去的失敗結果來制定。團隊應準備好修改計劃,同時遵守基本DevOps原則的建議。
4.選擇速度勝于質量
許多公司專注于產品交付而沒有對產品質量給予足夠的重視。如果工作的關鍵績效指標(KPI)僅在生產時間上居中,則質量很容易在流程中下降。可以監視性能的端點留給將來的版本使用,并且由于尚未快速投入生產,因此非生產就緒的軟件被視為了成功。
在快速發展的市場中,團隊無法承受客戶或內部需求所規定的時間要求來提供最佳產品質量。許多公司急于在較短的時間內完成并完成盡可能多的DevOps項目,以保持其在競爭激烈的市場中的地位。這聽起來似乎是個好主意,但是期望DevOps快速發展可能會帶來更多的痛苦而不是收獲。
實現速度和質量改進是DevOps的基本價值。這并非易事,需要運維人員和開發人員以新的和改進的方式編寫測試。如果做得好,質量和速度會同時提高。
5.建立一支專門的DEVOPS團隊
從理論上講,組建一支專門的團隊專注于培訓最新的IT專業人員是有意義的。完成DevOps實施的過程必須輕松無阻,對嗎?但是很快出現了兩個問題:
現有的質量保證(QA),運營和開發團隊成員被忽視了,可能會妨礙新團隊的努力。
這個新團隊成為了另一個孤島,提供了新技術,但并沒有在DevOps實施中推進公司的目標。
最好由QA,ops和dev的新團隊成員和現有員工組成,他們很高興加入DevOps計劃。后者擁有大量的知識,這些知識在您實施如此龐大的計劃時非常有價值。
6.自動化數據庫
數據庫是構建DevOps時被忽略的最重要的技術領域之一。新的臨時應用程序可以以前所未有的速度通過了DevOps管道。但是,對數據量大的應用程序的部署卻不那么容易。
無需集中精力有效地使它們自動化,單獨環境中的數據快照可能會并且會逐漸趨向于不準確。專家們強調不斷的集成和代碼處理,但未能自動化數據庫。數據庫管理應正確完成,尤其是對于以數據為中心的應用程序。數據庫在此類應用程序中起著重要作用,可能需要單獨的專業知識才能與其他應用程序一起自動化。
7.事件處理程序不足
萬一出了問題(肯定會),DevOps團隊應該制定事件處理程序。事件處理應該是一個連續的,活躍的過程,清楚地概述了這一過程,以確保一致性并避免錯誤。這意味著為了記錄事件處理過程,您必須捕獲并描述事件響應要求。對運行手冊文檔有很多研究 ,這對于學習成功至關重要。
8.對DEVOPS的了解不足
盡管近年來DevOps的接受度迅速增長,但是應用專家可能在沒有精確的質量控制程序的情況下工作。團隊有時無法在DevOps中取得成功所需的所有技術,文化和流程更改。
采用DevOps做法是明智之舉,但是成功需要足夠的經驗和準備。在某些情況下,獲得合適的專業知識以滿足您的需求意味著您需要聘請外部專家。這些訓練有素的專家應擁有所需技術的認證,并且公司應避免做出快速的DevOps決策,而不能很好地處理結果。
9.忽視安全
安全性和DevOps應該并排移動。許多組織都拒絕安全準則,因為這很困難,并且DevOps之旅可能很艱難。這導致了一些問題,例如,最初使開發人員的輸出最大化,后來意識到他們忽略了保護這些應用程序的安全。認真對待安全性,并研究 DevSecOps以了解對您的組織是否有意義。
10.實施DEVOPS時會感到疲勞
如果您成立了一個DevOps團隊,目標是從每月一次產品部署到每周進行10次推送,那么它很可能會失敗。獲得在演示過程中看起來不錯的任意指標的途徑不會激勵團隊。DevOps不是簡單的技術運動;這是一次巨大的文化升級。
企業規模越大,堅持DevOps實踐可能花費的時間就越長。您應該以階段性和可衡量的方式應用DevOps方法,并將實際結果作為值得慶祝的里程碑。在開始第一輪應用程序部署之前,培訓您的員工并安排充足的休息時間。第一個DevOps管道的實現速度可能很慢。這就是現實生活中不斷改進的樣子。
公司正在迅速向DevOps邁進,以跟上競爭步伐,但在實現過程中會犯常見錯誤。為避免這些陷阱,請精確規劃并應用正確的策略,以取得更成功的DevOps結果。