傳統(tǒng) IT 在任何組織中都有兩個獨(dú)立的團(tuán)隊——開發(fā)團(tuán)隊和運(yùn)營團(tuán)隊。開發(fā)團(tuán)隊致力于軟件,在確保代碼完美運(yùn)行后開發(fā)和發(fā)布它。運(yùn)營團(tuán)隊致力于部署、負(fù)載平衡和發(fā)布管理,以使 SaaS 上線。
他們檢查應(yīng)用程序性能,并向開發(fā)團(tuán)隊報告任何問題(如果存在)。這些周期對公司來說太長了,并刺激了建立一支由開發(fā)、QA 和運(yùn)營混合專業(yè)知識組成的團(tuán)隊的需求,引入了 DevOps 現(xiàn)象。DevOps 彌合了兩個團(tuán)隊之間的差距,幫助他們快速可靠地運(yùn)營和發(fā)展應(yīng)用程序。
問題是,我們對DevOps的了解程度如何,為什么我們需要它?本博客將解決這些問題,并解釋可以幫助企業(yè)實(shí)現(xiàn)其真正潛力的DevOps 最佳實(shí)踐。
什么是開發(fā)運(yùn)營?
顧名思義,DevOps 與開發(fā)和運(yùn)營有關(guān)。它定義了一組流程,通過發(fā)展開發(fā)和運(yùn)營團(tuán)隊之間的協(xié)作,為組織帶來文化轉(zhuǎn)變。它有四個關(guān)鍵組成部分:協(xié)作、實(shí)踐、文化和工具。
為什么我們需要開發(fā)運(yùn)營?
DevOps 帶來了更高水平的協(xié)作和速度,使組織能夠縮短上市時間、提高生產(chǎn)力、降低運(yùn)營成本,從而高效地為客戶提供服務(wù),并在市場上保持競爭力。它還有助于加快產(chǎn)品發(fā)布速度,管理計劃外工作,更快地捕獲和解決關(guān)鍵問題。
實(shí)施開發(fā)運(yùn)營最佳實(shí)踐
設(shè)置集中單元
DevOps使用各種工具,如Jenkins,Terraform,Nagios,Grafana,Prometheus或Splunk。組織應(yīng)建立一個集中的單元來創(chuàng)建和操作這些工具。這個集中的單位負(fù)責(zé)在開發(fā)團(tuán)隊中建立敏捷實(shí)踐。該團(tuán)隊調(diào)查新工具,維護(hù)它,并提供實(shí)施 DevOps 的指導(dǎo)計劃和培訓(xùn)。
持續(xù)集成 (CI)
CI是一種軟件開發(fā)實(shí)踐,可改善團(tuán)隊之間的協(xié)作并幫助構(gòu)建高質(zhì)量的軟件。開發(fā)團(tuán)隊定期在存儲庫中簽入代碼更改,CI 執(zhí)行自動生成和測試以驗證代碼質(zhì)量。持續(xù)集成強(qiáng)加了一些實(shí)踐,可以在早期階段快速檢測軟件開發(fā)生命周期(SDLC)的挑戰(zhàn),這有助于開發(fā)團(tuán)隊解決開發(fā)階段本身的問題。
持續(xù)部署 (光盤)
部署過程具有多個階段,例如開發(fā)→生成→驗證→生成版本控制→部署→部署后等。持續(xù)部署過程的想法是在構(gòu)建通過 QA 暫存測試版、集成、UAT 等所有階段后,將開發(fā)的代碼自動部署到生產(chǎn)環(huán)境。有一些工具,如Spinnaker,Jenkins,Harness,Ansible,Chef,Puppet等,使DevOps團(tuán)隊能夠設(shè)置自動化管道,以最少的人為干預(yù)部署在多個環(huán)境中。
持續(xù)交付是一種 DevOps 實(shí)踐,其中新的代碼庫由 QA 團(tuán)隊在自動和手動 QA 周期的不同階段進(jìn)行測試。如果代碼庫通過了 QA 周期并得到 QA 團(tuán)隊的批準(zhǔn),則會將其部署到生產(chǎn)環(huán)境。這就是 DevOps 如何通過將代碼庫劃分為短周期,使團(tuán)隊能夠更快、更頻繁地構(gòu)建、測試和發(fā)布代碼庫。這使組織能夠提供更多版本,減少手動部署,并將生產(chǎn)中的故障風(fēng)險降至最低。
配置管理 (CM)
配置和變更管理是 DevOps 周期的重要組成部分。配置管理是配置、監(jiān)控、管理和維護(hù)基礎(chǔ)架構(gòu)和系統(tǒng)的所有實(shí)體(如服務(wù)器、應(yīng)用程序、存儲、網(wǎng)絡(luò)和所有托管服務(wù))的自動化。
配置管理帶來了一些優(yōu)勢,例如簡化新環(huán)境設(shè)置、降低生產(chǎn)配置風(fēng)險,并為軟件開發(fā)節(jié)省大量時間,而不是投入時間和精力使用基礎(chǔ)結(jié)構(gòu)即代碼實(shí)踐從頭開始啟動新服務(wù)。
變更管理
變更管理是請求、規(guī)劃、實(shí)施和評估滿足新要求所需的變更的過程。在配置管理期間,如果現(xiàn)有系統(tǒng)和基礎(chǔ)架構(gòu)需要任何更改,則此時將出現(xiàn)更改管理。運(yùn)營團(tuán)隊需要提供他們的意見、更改原因以及可能在更廣泛的層面上出現(xiàn)的后果,包括可能受到新更改影響的其他系統(tǒng)。
讓所有團(tuán)隊保持在同一頁面上
DevOps 與不同的部門合作,因此溝通很重要。讓每個人都在同一頁面上以避免團(tuán)隊沖突非常重要。為了正確應(yīng)用策略、提高參與度和采用率,將所有團(tuán)隊和成員保持在頁面上至關(guān)重要。
測試自動化
每個代碼庫的自動測試有助于運(yùn)行更多測試,提高測試頻率,并節(jié)省手動 QA 所花費(fèi)的時間。此過程可實(shí)現(xiàn)早期總線檢測、錯誤修復(fù)并提高整體軟件質(zhì)量。有幾種工具可以與DevOps工具(如Selenium,RobotFramework,Appium,XCUITest,JUnit等)集成,以實(shí)現(xiàn)測試自動化。
連續(xù)監(jiān)測 (CM)
持續(xù)監(jiān)控建議使用多種工具、儀表板和警報監(jiān)控所有系統(tǒng)和基礎(chǔ)架構(gòu),包括對影響軟件的不同指標(biāo)的實(shí)時洞察,如系統(tǒng)性能、測試次數(shù)、成功率和失敗率、部署狀態(tài)、錯誤日志以及圖形、表格和詳細(xì)報告格式的所有信息。為了完成這樣的監(jiān)控,DevOps團(tuán)隊可以設(shè)置幾個工具,如Prometheus,Grafana,Nagios,Appdynamics,NewRelic,Splunk,Logsash等等。
遵循上述最佳實(shí)踐,組織可以開發(fā)和自動化其解決方案的交付過程,以有效地實(shí)現(xiàn)其業(yè)務(wù)目標(biāo)。
審核編輯:郭婷
-
存儲
+關(guān)注
關(guān)注
13文章
4823瀏覽量
90161 -
代碼
+關(guān)注
關(guān)注
30文章
4973瀏覽量
74167
發(fā)布評論請先 登錄
手機(jī)主板散熱導(dǎo)熱膠薄層涂布最佳實(shí)踐 |鉻銳特實(shí)業(yè)
BMS設(shè)計中如何選擇MOSFET——關(guān)鍵考慮因素與最佳實(shí)踐
長電科技榮獲2025年上市公司可持續(xù)發(fā)展最佳實(shí)踐案例
立訊精密榮獲2025年上市公司可持續(xù)發(fā)展最佳實(shí)踐案例
微容科技蟬聯(lián)權(quán)威機(jī)構(gòu)蓋世汽車“2025金輯獎——最佳技術(shù)實(shí)踐應(yīng)用獎”
如何幫助企業(yè)實(shí)現(xiàn)其真正潛力的DevOps最佳實(shí)踐
評論