傳統 IT 在任何組織中都有兩個獨立的團隊——開發團隊和運營團隊。開發團隊致力于軟件,在確保代碼完美運行后開發和發布它。運營團隊致力于部署、負載平衡和發布管理,以使 SaaS 上線。他們檢查應用程序性能并向開發團隊報告任何問題(如果存在)。這些周期對公司來說太長了,并刺激了建立一支由開發、QA 和運營混合專業知識組成的團隊的需求,引入了 DevOps 現象。DevOps 彌合了兩個團隊之間的差距,幫助他們快速可靠地運營和發展應用程序。
問題是,我們對DevOps的了解程度如何,為什么我們需要它?本博客將解決這些問題,并解釋可以幫助企業實現其真正潛力的 DevOps 最佳實踐。
什么是開發運營?
顧名思義,DevOps與開發和運營有關。它定義了一組流程,通過發展開發和運營團隊之間的協作,為組織帶來文化轉變。它有四個關鍵組成部分:協作、實踐、文化和工具。
為什么我們需要 DevOps?
DevOps 帶來了更高水平的協作和速度,使組織能夠縮短上市時間、提高生產力、降低運營成本,從而高效地為客戶提供服務,并在市場上保持競爭力。它還有助于加快產品發布速度,管理計劃外工作,更快地捕獲和解決關鍵問題。
設置集中單元
DevOps使用各種工具,如Jenkins,Terraform,Nagios,Grafana,Prometheus或Splunk。組織應建立一個集中的單元來創建和操作這些工具。這個集中的單位負責在開發團隊中建立敏捷實踐。該團隊調查新工具,維護并提供實施 DevOps 的指導計劃和培訓。
持續集成 (CI)
CI是一種軟件開發實踐,可改善團隊之間的協作并幫助構建高質量的軟件。開發團隊定期在存儲庫中簽入代碼更改,CI 執行自動生成和測試以驗證代碼質量。持續集成強加了一些實踐,可以在早期階段快速檢測軟件開發生命周期(SDLC)的挑戰,這有助于開發團隊解決開發階段本身的問題。
持續部署 (光盤)
部署過程具有多個階段,例如開發→生成→驗證→生成版本控制→部署→部署后等。持續部署過程的想法是在構建通過 QA 暫存測試版、集成、UAT 等所有階段后,將開發的代碼自動部署到生產環境。有一些工具,如Spinnaker,Jenkins,Harness,Ansible,Chef,Puppet等,使DevOps團隊能夠設置自動化管道,以最少的人為干預部署在多個環境中。
持續交付是一種 DevOps 實踐,其中新的代碼庫由 QA 團隊在自動和手動 QA 周期的不同階段進行測試。如果代碼庫通過了 QA 周期并得到 QA 團隊的批準,則會將其部署到生產環境。這就是 DevOps 如何通過將代碼庫劃分為短周期,使團隊能夠更快、更頻繁地構建、測試和發布代碼庫。這使組織能夠提供更多版本,減少手動部署,并將生產中的故障風險降至最低。
配置管理 (CM)
配置和變更管理是 DevOps 周期的重要組成部分。配置管理是配置、監控、管理和維護基礎架構和系統的所有實體(如服務器、應用程序、存儲、網絡和所有托管服務)的自動化。
配置管理帶來了一些優勢,例如簡化新環境設置、降低生產配置風險,并為軟件開發節省大量時間,而不是投入時間和精力使用基礎結構即代碼實踐從頭開始啟動新服務。
變更管理
變更管理是請求、規劃、實施和評估滿足新要求所需的變更的過程。在配置管理期間,如果現有系統和基礎架構需要任何更改,則此時將出現更改管理。運營團隊需要提供他們的意見、更改原因以及可能在更廣泛的層面上出現的后果,包括可能受到新更改影響的其他系統。
讓所有團隊保持在同一頁面上
DevOps 與不同的部門合作,因此溝通很重要。讓每個人都在同一頁面上以避免團隊沖突非常重要。為了正確應用策略,更高的參與度和采用率對于讓所有團隊和成員保持在同一頁面上至關重要。
測試自動化
每個代碼庫的自動測試有助于運行更多測試,提高測試頻率,并節省手動 QA 所花費的時間。此過程可實現早期錯誤檢測、錯誤修復并提高整體軟件質量。有幾種工具可以與DevOps工具(如Selenium,RobotFramework,Appium,XCUITest,JUnit等)集成,以實現測試自動化。
連續監測 (CM)
持續監控建議使用多種工具、儀表板和警報監控所有系統和基礎架構,包括對影響軟件的不同指標的實時洞察,如系統性能、測試次數、成功率和失敗率、部署狀態、錯誤日志以及圖形、表格和詳細報告格式的所有信息。為了完成這樣的監控,DevOps團隊可以設置幾個工具,如Prometheus,Grafana,Nagios,Appdynamics,NewRelic,Splunk,Logsash等等。
審核編輯:郭婷
-
存儲
+關注
關注
13文章
4340瀏覽量
86009 -
服務器
+關注
關注
12文章
9262瀏覽量
85782 -
應用程序
+關注
關注
37文章
3286瀏覽量
57793
發布評論請先 登錄
相關推薦
評論