收藏!如何有效實施devops?

當今IT行業的競爭日益激烈,各家公司都在尋找優化軟件研發過程的方法,由於交付比對手更具競爭力的產品已經愈加成爲一件成本高昂的事情。這也是DevOps發揮做用的地方,由於它能夠在工程管理的各個方面提供幫助。
瀑布開發模型已被普遍使用多年,但它的開發、測試和運維在整個生命週期中是相對分離的。而今,隨着敏捷方法的不斷髮展,持續集成和DevOps在某種程度上就變得愈加重要。ios

實施原則

CAMS模型很好地闡述了DevOps的基本原則,其核心目標是實現過程自動化,以提升生產效率;經過持續地度量、反饋和改進,以確保快速交付的質量。
讓咱們來進一步瞭解CAMS模型:
Culture(文化):DevOps提倡把溝通、技術、方法和工具緊密地聯繫在一塊兒;
Automation(自動化):經過自動化來提升各環節活動的工做效率;
Measurement(度量):須要及時對關鍵過程和質量指標進行度量和反饋;
Sharing Feedback(反饋共享):經過共享反饋和建議,以得到持續改進,應用最佳實踐來促進組織發展。安全

實施步驟

DevOps生命週期包括持續開發、持續集成、持續測試、持續反饋、持續監測、持續部署和持續運維。以持續交付爲核心目標,DevOps將各項研發活動進行有機結合,以簡單化、高效化整個項目過程。服務器

採用敏捷方法

經過實施短平快的敏捷研發過程,將整個項目過程分解爲若干Sprint迭代,能夠增長髮布頻次,使產品的新特性、以及可能存在的問題獲得儘早地檢測、發現和響應。提升生產率和交付質量,以期從有限的研發投入中,得到更大的收益。DevOps生命週期包括持續開發、持續集成、持續測試、持續反饋、持續監測、持續部署和持續運維。以持續交付爲核心目標,DevOps將各項研發活動進行有機結合,以簡單化、高效化整個項目過程。框架

集成CI/CD工具實現基礎設施自動化

DevOps使用微服務對系統進行更細粒度的拆解和管理,相對獨立的模組服務被分發到不一樣的容器中。在這個階段,最經常使用的工具包括Ansible、Puppet、Chef、Kubernetes。爲了得到最佳的配置管理和應用部署效果,這些工具能夠很容易地與CI/CD工具(如Bamboo、GoCD和Jenkins)進行集成,從而有效地實現持續集成。運維

容器化

Docker是著名的容器引擎,經過將相對獨立的業務模組分解到不一樣的容器中,提供儘可能鬆耦合的無狀態服務。經過容器,能夠無縫、高效地將已驗證的軟件從測試服務器遷移、部署到生產環境中。同整個IT基礎設施相隔離的容器具有更好的可遷移性和可控性,這也是容器化做爲DevOps基礎設施管理的一個重要緣由。微服務

部署階段

這個階段,涉及應用在生產環境服務器上部署和運行。通過驗證的軟件,最終將被部署到生產環境中,服務於終端用戶。自動化的配置和部署是這一階段的關鍵活動,它執行快速、準確的部署,並創建功能、性能、穩定和安全性等方面的統一化監控和管理。
任何更新必須以不干擾已部署且運做良好的功能的方式進行發佈,遵循「快速失敗」的方法,新部署的特性或變動,將及時地接受用戶的使用和驗證。這個階段可用於部署的一些工具備Ansible、Chef、Puppet等。工具

持續監測

使用監測工具,讓掌控生產服務質量狀態變得更爲簡單和快捷。這個階段也須要分析從內部團隊和用戶那裏得到的反饋,並及時做出響應和跟蹤處理。持續監測有助於對問題作出快速發現和響應,保持服務的可用性、穩定性,它還能協助咱們追蹤和確認頻繁出現的問題的最新演進、潛在威脅和根本緣由。在這個階段,性能和安全性問題能夠獲得有效捕獲和處理,藉助一些工具也能作到自動修復運維中的某類問題。
相比開發團隊,運維團隊在這一階段的參與程度更高。這個階段的主要工做在於監控用戶活動和系統響應的有效性、及時性,檢查系統是否有異常行爲,以及跟蹤問題引起風險的進展。此時相似Nagios、Prometheus、Zabbix的自動化工具將發揮重要做用。性能

確保團隊間的持續反饋

經過不一樣團隊、角色間的有效溝通和協做,交付件、技術和過程方面的問題獲得精準的定位和高效的解決,從而帶來生成過程和產品質量的總體持續提高。這也須要各個團隊與公司總體的DevOps目標保持高度的一致。
如在禪道項目管理軟件中,明確地將產品、項目、測試三者概念區分開,產品人員、開發團隊、測試人員,三者分立,互相配合,又互相制約,經過需求、任務、Bug來進行交相互動,任務直接指派到所屬團隊及我的,這種團隊內的及時溝通反饋有助於效率的提升。
禪道自主研發的自動化測試框架(禪道ZTF)與禪道無縫集成,可將禪道用例和自動化測試腳本一一綁定,執行的結果能提交到禪道中做爲測試結果,執行失敗的腳本也能夠自動建立Bug。自動化測試框架實現了與Jenkins持續集成功能打通。用戶發起任務後,經過ZTF自動執行測試腳本,把單元測試的結果回傳給禪道,兩者合做打通了持續集成閉環。整個團隊內部實現持續反饋,使流程更靈活,調試過程更簡化,更是下降了Bug修復的成本。單元測試

結論

綜上所述,DevOps的實踐效果有賴於上述各項活動的有效開展。引入並推廣DevOps須要花費大量資源和成本,但一旦成功實施,便將受益不淺。根據最近一項對2.5萬多名專業技術人員的調查,大多數成功實施DevOps的公司,在保持質量的前提下,持續迭代和發佈的效率每每獲得了指數級的提升。
儘管DevOps實施起來並不老是那麼容易,但有了規範的流程和良好的實踐,就可以顯著提升生產率、下降成本、提升交付質量。據此,咱們也能夠預見,DevOps在將來將會被愈來愈普遍地應用。 測試

參考文獻:
Mitesh Patel .How to Do DevOps Effectively? [OL].(2020-05-08)
https://dzone.com/articles/ho...

相關文章
相關標籤/搜索