目錄
技巧1:讓Devops適應你的文化
技巧2:對速度的需求
技巧3:可用性
技巧4:收集和使用DevOps指標
技巧5:關注有意義的測驗
總結
成功地發布和部署軟體系統,對于組織是一項重要任務,實作它就需要有堅定的DevOps戰略,
長期以來,軟體系統可靠地發布和部署一直是困難且耗時的程序,隨著軟體行業慢慢轉向更快的發布節奏,部署和發布也變得越來越有價值,尤其是對于托管的軟體,
DevOps就是通過自動化來滿足軟體發布不斷加速的節奏,因此不可避免地要面對挑戰,本文將帶你一起探討如何應對挑戰,實作DevOps的成功,
技巧1:讓Devops適應你的文化
“ Devops致力于尋找方法來適應和改革社會結構,文化和技術,以便更有效地開展作業,”
―Jennifer Davis和Ryn Daniels合著的《Effective Devops》
DevOps并不是一個規定好的實踐清單,而是一種旨在將軟體開發的某些方面與運維作業結合起來以最大化交付產品或服務的價值的哲學,這并不意味著運維人員將撰寫代碼,也不意味著軟體工程師將運維系統,但是,這確實意味著要實作高水平的自動化,以實作軟體系統從開發環境到生產環境的平滑過渡,
DevOps是一種以增量更改為基礎的理念,對于那些習慣于傳統方法的人來說,這意味著要縮短需求周期,DevOps的另一個基礎是自省,在此程序中不斷進行評估和調整,
Devops文化契合度的關鍵:
- DevOps是一個永無止境的旅程,
- DevOps流程需要進行IT以外的更改,產品管理,安全性,工程,銷售,運維等在交付客戶價值方面都可以發揮作用,
- 增量方法,要從引入DevOps哲學開始,制定計劃,然后不斷進行重新評估和調整是至關重要的,
技巧2:對速度的需求
DevOps頻繁交付模型,意味著頻繁的構建,測驗和部署,團隊規模和交付的節奏可能會對計算或網路資源造成巨大壓力,無論是私有平臺還是云平臺,對流水線資源進行投資,都是至關重要的,
自動化的單元測驗也至關重要,如果沒有自動化的集成測驗,就不可能真正了解系統狀態,集成測驗應包括端到端,安全性,負載和彈性的測驗,這些可能是時間密集型的和資源密集型的,但是對于衡量交付質量至關重要,如果運行回歸測驗需要8個小時,那么你會可以創建虛擬測驗環境,
技巧3:可用性
與性能齊頭并進就是可用性,持續交付中的“持續”,意味著高可用的流水線,這就需要選擇高可用組件,使他們能夠在部分失效的情況下,重新或繼續運行,
可以通過使用高度可用的系統,或使用無需用戶干預進行擴展和修復的云端SaaS解決方案,來實作可用性,CircleCI和Github Actions是流行的SaaS服務,將提供高度可用的基于云的DevOps平臺,兩者都支持本地測驗,以便你可以根據需要將云服務與本地環境混合在一起,
技巧4:收集和使用DevOps指標
“如果無法衡量,就無法改善,”
- 彼得·德魯克
像任何軟體系統一樣,DevOps流水線本身也需要隨著時間的推移而發展和改進,
為了適應不斷變化的環境,必須經常對執行自動測驗和交付的系統進行測量和改進,針對諸如測驗時間性能(單位和回歸),故障率,成本(如果是云托管)和實際可用性(停機)之類的指標,進行評估,
這些指標也與業務指標相關聯,例如交貨時間,部署頻率和平均恢復時間(從故障中恢復),DevOps工具鏈的性能是所有這些的基礎,
技巧5:關注有意義的測驗
“追求測驗覆寫率指標的組織,應該做些更有用的事情”
―馬丁·福勒(Martin Fowler)
常見的開發測驗指標是“代碼測驗覆寫率”,此度量標準的目的是確定對代碼中潛在邏輯路徑進行了多少百分比的測驗,因此,它們是指出哪些代碼需要被更正的一種很好的工具,當然,他們僅限于分析給出的代碼,沒有告訴你應該撰寫什么代碼來處理某些情況,例如,他們不會告訴你例外處理不充分,或者你忽略了處理特定的回傳狀態,
傾向于使用特定的代碼覆寫率,這是一個錯誤,因為開發人員在承受壓力時會以犧牲質量為代價來提高覆寫率,測驗覆寫范圍不是代碼質量的實際度量,它所提供的是對開發人員檢查其作業的方法,
良好的測驗覆寫范圍應該是目標,而不是硬性限制,為了捕獲那些“遺漏錯誤”,強大的集成測驗功能可以提供幫助,
為了安全和可用性起見,我們應該知道所有代碼都不相等,廣泛重復使用的代碼或可能執行破壞性行為(例如洗掉客戶資料)的代碼需要更高級別的測驗覆寫范圍和審查,撰寫測驗非常耗時,需要首先全面地關注關鍵代碼,
為了對自動化測驗結果充滿信心,集成測驗環境應盡可能模擬生產環境,在托管應用程式的情況下,這可能非常簡單,而在本地環境中,復雜性幾乎是無限的,目標環境越復雜,越多樣化,就需要進行更多的測驗,
總結
DevOps的基本目標是簡化向客戶交付產品的程序,它試圖打破開發人員和運維人員之間的傳統障礙,以實作軟體功能的頻繁發布和錯誤修復,頻繁交付的能力需要高度的自動化,尤其是端到端的測驗,
虛擬化技術的一大優勢是能夠啟動服務器和網路配置的任意集合(測驗沙箱),使用適當的編排工具,可以按需配置測驗環境,從而大大增加了測驗面積,并實作了自動化,
譯文鏈接: https://dzone.com/articles/5-key-hacks-to-deliver-a-successful-devops-strateg
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279536.html
標籤:AI
