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