我們真的需要每個(gè)項(xiàng)目的DevOps嗎?
開(kāi)發(fā)人員和運(yùn)營(yíng)團(tuán)隊(duì)之間的DevOps合作使敏捷和有效的部署結(jié)構(gòu)更為合理。但這在現(xiàn)實(shí)中是這樣工作的嗎?
如今,大多數(shù)軟件開(kāi)發(fā)組織都在采用DevOps文化,并且它有很多好處。其中一些是:
- 持續(xù)交付和持續(xù)集成
- 縮短開(kāi)發(fā)周期
- 提高質(zhì)量并降低成本:
- 穩(wěn)定的運(yùn)行環(huán)境:
- 增強(qiáng)的版本控制
上面的每個(gè)好處都與多個(gè)DevOps工具之一相關(guān)聯(lián)。我們必須了解為什么DevOps是必不可少的。我們真的需要上述功能與我們現(xiàn)有的軟件開(kāi)發(fā)生命周期集成嗎?
您從使用DevOps Essentials的現(xiàn)有開(kāi)發(fā)生態(tài)系統(tǒng)開(kāi)始,并聘請(qǐng)了一名DevOps工程師,開(kāi)始在當(dāng)前項(xiàng)目中實(shí)施DevOps工具,但是幾周后,您發(fā)現(xiàn)項(xiàng)目發(fā)布的穩(wěn)定性和交付情況與以前相同。
這樣一來(lái),實(shí)施DevOps的成本以及該特定DevOps工具的月度和年度費(fèi)用都增加了。
在上述情況下缺少某些內(nèi)容;你知道那是什么嗎 可能是項(xiàng)目復(fù)雜性,微服務(wù),正確的DevOps工具的選擇,容器化,也可能是編排。
DevOps與工具無(wú)關(guān)
我從一些采用DevOps的客戶那里聽(tīng)說(shuō)。他們開(kāi)始使用 Jenkins或CircleCI之類的工具進(jìn)行部署,或者使用Capistrano for Rails應(yīng)用程序之類的本地工具實(shí)現(xiàn)自動(dòng)化部署。但是,DevOps不是自動(dòng)化部署。要了解DevOps的核心原則,首先,您必須了解采用DevOps的實(shí)際好處。
案例研究:需要使用Docker Orchestration進(jìn)行POS應(yīng)用程序的自動(dòng)化部署。
在過(guò)去的三年中,我們的團(tuán)隊(duì)之一致力于產(chǎn)品開(kāi)發(fā)。直到今天,開(kāi)發(fā)工作仍在進(jìn)行中,每天都在進(jìn)行,該團(tuán)隊(duì)每天要進(jìn)行3到4個(gè)部署,有時(shí)還會(huì)有一些熱修復(fù)程序。
假設(shè)我們?cè)谠擁?xiàng)目中實(shí)現(xiàn)了DevOps,我們開(kāi)始設(shè)計(jì)Docke圖像并與Kubernetes進(jìn)行編排,并使用CircleCI集成CI / CD。
- 使用Capistrano完成部署非常簡(jiǎn)單
- 開(kāi)發(fā)人員友好的環(huán)境,其中檢查日志和調(diào)試與開(kāi)發(fā)人員的本地計(jì)算機(jī)相同
- 專注于產(chǎn)品開(kāi)發(fā),無(wú)需操作知識(shí)
4周后:
- 部署時(shí)間略有減少
- 更好的性能
- 調(diào)試Docker面臨的問(wèn)題
- 開(kāi)發(fā)團(tuán)隊(duì)正在努力獲取日志和修補(bǔ)程序
- 需要部署權(quán)限,已創(chuàng)建依賴項(xiàng)
- 維修費(fèi)用增加
- 要解決使用第三方工具升級(jí)的問(wèn)題,需要具備Docker的知識(shí)
在這里,我想澄清一下,我并不是說(shuō)實(shí)現(xiàn)DevOps并不是一件好事,但是如果您打算僅通過(guò)閱讀Web內(nèi)容和實(shí)現(xiàn)工具來(lái)實(shí)現(xiàn)DevOps,那么我不建議您選擇DevOps。
僅閱讀文檔和觀看教程視頻,如何在生產(chǎn)中實(shí)現(xiàn)DevOps工具?這將是一場(chǎng)斗爭(zhēng),最終將導(dǎo)致生產(chǎn)力降低而不是生產(chǎn)力提高。
DevOps實(shí)施不足之處
知識(shí)與準(zhǔn)備
DevOps要求很高,因?yàn)樗兄谙謩?dòng)工作,并有助于加快測(cè)試和部署操作。因此知識(shí)和準(zhǔn)備狀態(tài)起著至關(guān)重要的作用。否則,將會(huì)有很多掙扎,這將導(dǎo)致生產(chǎn)率降低而不是生產(chǎn)率提高。
專注于產(chǎn)品開(kāi)發(fā)
另一種情況是企業(yè)希望團(tuán)隊(duì)專注于產(chǎn)品開(kāi)發(fā)。團(tuán)隊(duì)遵循的是敏捷方法論,因此他們每隔一周就要在生產(chǎn)中部署代碼。在大型組織中,開(kāi)發(fā)新產(chǎn)品而不用擔(dān)心其他操作是完全可以的。但是,中小企業(yè)沒(méi)有那么多資源,因此頻繁發(fā)布的應(yīng)用程序使他們無(wú)法專注于DevOps。
確保您計(jì)劃實(shí)施DevOps,以了解其核心原理。DevOps通過(guò)自動(dòng)化基礎(chǔ)架構(gòu)配置幫助節(jié)省了大量時(shí)間和精力,因此請(qǐng)考慮使DevOps自動(dòng)化可以節(jié)省多少小時(shí)。