DevOps的盡頭會(huì)是NoOps嗎?
譯文開(kāi)發(fā)世界中的事正在難以置信地快速發(fā)展,云上的自動(dòng)化和擴(kuò)展每天也都有新的高度。你幾乎可以對(duì)任何東西進(jìn)行 "作為一種服務(wù)"--無(wú)論是存儲(chǔ)、網(wǎng)絡(luò)、云中、計(jì)算還是安全。云供應(yīng)商也在越來(lái)越多地投資于他們的自動(dòng)化生態(tài)系統(tǒng)。這將我們引向NoOps,在那里你不需要一個(gè)運(yùn)營(yíng)團(tuán)隊(duì)來(lái)監(jiān)督你的生命周期,因?yàn)橐磺卸紝⒆詣?dòng)化。
你可以使用自動(dòng)化模板來(lái)配置你的應(yīng)用程序組件,并自動(dòng)進(jìn)行組件管理,這意味著你的開(kāi)銷更少,人為干擾最小甚至沒(méi)有。這聽(tīng)起來(lái)不是很好嗎?
但這是一個(gè)明智的選擇,實(shí)施它又有哪些優(yōu)勢(shì)和挑戰(zhàn)呢?
NoOps:這是一個(gè)明智的選擇嗎?
你已經(jīng)知道,DevOps的目的是使應(yīng)用程序的部署更快、更順利,重點(diǎn)是持續(xù)改進(jìn)。NoOps是由Forrester公司的Mike Gualtieri創(chuàng)造的術(shù)語(yǔ),其核心目標(biāo)相同,但缺少專業(yè)操作人員。
在一個(gè)理想的NoOps場(chǎng)景中,開(kāi)發(fā)人員永遠(yuǎn)不需要與運(yùn)營(yíng)團(tuán)隊(duì)的成員合作。相反,NoOps使用無(wú)服務(wù)器和PaaS,在他們需要的時(shí)候獲得他們需要的資源。這意味著,你可以使用一套服務(wù)和工具來(lái)安全地部署所需的云組件(包括基礎(chǔ)設(shè)施和代碼)。此外,NoOps利用CI/CD管道進(jìn)行部署。
運(yùn)營(yíng)團(tuán)隊(duì)對(duì)數(shù)據(jù)相關(guān)的任務(wù)非常有效,將數(shù)據(jù)的收集、分析和存儲(chǔ)視為其職能的關(guān)鍵部分。然而,請(qǐng)記住,你可以將大部分的數(shù)據(jù)收集任務(wù)自動(dòng)化,但你不一定能從自動(dòng)化分析中獲得同樣水平的洞察力。
從本質(zhì)上講,NoOps可以作為一種自助服務(wù)模式,云供應(yīng)商成為你的運(yùn)營(yíng)部門,使底層基礎(chǔ)設(shè)施層自動(dòng)化,不再需要一個(gè)團(tuán)隊(duì)來(lái)管理它。許多人認(rèn)為,一個(gè)需要零人參與完全自動(dòng)化的IT環(huán)境——真正的NoOps是不明智的,甚至是不可能的。
NoOps與DevOps:優(yōu)勢(shì)與挑戰(zhàn)
DevOps強(qiáng)調(diào)開(kāi)發(fā)人員和運(yùn)營(yíng)團(tuán)隊(duì)之間的合作,而NoOps則強(qiáng)調(diào)完全自動(dòng)化。然而,他們都試圖實(shí)現(xiàn)同樣的事情——更快的上市時(shí)間和更好的軟件部署過(guò)程。然而,在考慮采用DevOps與真正的NoOps方法時(shí),存在著優(yōu)勢(shì)和挑戰(zhàn)。
優(yōu)勢(shì):
更多的自動(dòng)化,更少的維護(hù)
通過(guò)使用代碼控制一切,NoOps旨在消除支持你的代碼生態(tài)系統(tǒng)所需的額外勞動(dòng)。這意味著不需要人工干預(yù),從長(zhǎng)遠(yuǎn)來(lái)看,每一個(gè)組件都將更容易維護(hù),因?yàn)樗鼘⒆鳛榇a的一部分被部署。但這是否會(huì)影響到DevOps的工作?
利用云的全部力量
有很多支持極端自動(dòng)化的新技術(shù),包括容器即服務(wù)(CaaS)或功能即服務(wù)(FaaS),所以領(lǐng)先的云服務(wù)提供商可以幫助NoOps的采用。這是一個(gè)極好的消息,因?yàn)檫\(yùn)營(yíng)部門可以根據(jù)需要增加云資源,與DevOps(開(kāi)發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)共同決定應(yīng)用程序的運(yùn)行地點(diǎn))相比,導(dǎo)致更高的容量規(guī)劃。
快勝慢
NoOps關(guān)注業(yè)務(wù)成果,將重點(diǎn)轉(zhuǎn)移到為客戶提供價(jià)值的優(yōu)先任務(wù)上,消除對(duì)運(yùn)營(yíng)團(tuán)隊(duì)的依賴,進(jìn)一步縮短上市時(shí)間。
挑戰(zhàn):
你仍然需要運(yùn)營(yíng)
從理論上講,不依靠運(yùn)營(yíng)團(tuán)隊(duì)來(lái)照顧你的底層基礎(chǔ)設(shè)施,聽(tīng)起來(lái)像是一個(gè)夢(mèng)想。實(shí)際上,你可能需要他們來(lái)監(jiān)控結(jié)果或處理異常情況。指望開(kāi)發(fā)人員完全處理這些責(zé)任會(huì)使他們的注意力從交付業(yè)務(wù)成果上轉(zhuǎn)移,考慮到NoOps的好處,這并不有利。
僅僅依靠開(kāi)發(fā)人員也不符合你的最佳利益,因?yàn)樗麄兊募寄芙M合不一定包括解決運(yùn)營(yíng)問(wèn)題。另外,你也不希望用更多的任務(wù)來(lái)壓倒開(kāi)發(fā)人員。
安全、安全、安全
你可以遵守安全的最佳實(shí)踐,并使之與自動(dòng)部署保持一致,但這并不能完全消除你對(duì)安全的微妙照顧的需要。攻擊方法每天都在發(fā)展和變化,因此,你的云安全控制也應(yīng)該如此。
例如,你可以為你的人工智能引入錯(cuò)誤的規(guī)則或自動(dòng)化有缺陷的流程,在你的自動(dòng)化中招致錯(cuò)誤或?yàn)閿?shù)百或數(shù)千的基礎(chǔ)設(shè)施組件或服務(wù)器創(chuàng)建有缺陷的腳本。如果你完全刪除你的運(yùn)營(yíng)團(tuán)隊(duì),你可能要考慮向安全團(tuán)隊(duì)投入額外的資金,以確保你為你的環(huán)境灌輸最好的安全和合規(guī)方法。
考慮你的環(huán)境
考慮到NoOps使用無(wú)服務(wù)器和PaaS來(lái)獲取資源,這可能會(huì)成為你的一個(gè)限制因素,特別是在數(shù)字化轉(zhuǎn)型的時(shí)候。對(duì)于傳統(tǒng)的基礎(chǔ)設(shè)施和混合部署,自動(dòng)化仍然是可能的,但在這些情況下,你不能完全消除人為干預(yù)。所以請(qǐng)記住,不是所有的環(huán)境都可以過(guò)渡到NoOps。你必須仔細(xì)評(píng)估轉(zhuǎn)換的優(yōu)點(diǎn)和缺點(diǎn)。
那NoOps會(huì)是DevOps的終點(diǎn)嗎?
答案是否定的。
NoOps不是一個(gè)放之四海而皆準(zhǔn)的解決方案。你知道,它僅限于適合現(xiàn)有無(wú)服務(wù)器和PaaS解決方案的應(yīng)用。由于一些企業(yè)仍然運(yùn)行在單體的遺留應(yīng)用上(需要完全重寫(xiě)或大規(guī)模更新才能在PaaS環(huán)境中工作),所以即使有一個(gè)遺留系統(tǒng)留下,你仍然需要有人來(lái)負(fù)責(zé)運(yùn)營(yíng)。
從這個(gè)意義上說(shuō),NoOps離處理運(yùn)行專門流程的長(zhǎng)期應(yīng)用程序或具有高要求應(yīng)用程序的生產(chǎn)環(huán)境仍有一段距離。相反,運(yùn)營(yíng)發(fā)生在生產(chǎn)之前,所以,對(duì)于DevOps,運(yùn)營(yíng)工作發(fā)生在代碼進(jìn)入生產(chǎn)之前。發(fā)布包括監(jiān)控、測(cè)試、錯(cuò)誤修復(fù)、安全、以及對(duì)每次提交的策略檢查等等。
你必須讓團(tuán)隊(duì)中的每個(gè)人(包括關(guān)鍵的利益相關(guān)者)從一開(kāi)始就參與進(jìn)來(lái),以實(shí)現(xiàn)快速反饋,并確保自動(dòng)化控制和任務(wù)的有效和正確。持續(xù)的學(xué)習(xí)和改進(jìn)(DevOps團(tuán)隊(duì)的支柱)不應(yīng)該只發(fā)生在事情出錯(cuò)的時(shí)候;相反,成員們必須一起合作,協(xié)同工作,解決問(wèn)題,改進(jìn)系統(tǒng)和流程。
此外,當(dāng)你想到DevOps的時(shí)候,你會(huì)想到 "人"。與來(lái)自各個(gè)業(yè)務(wù)領(lǐng)域的團(tuán)隊(duì)成員(包括QA、市場(chǎng)、設(shè)計(jì)師、安全、產(chǎn)品經(jīng)理等)一起,更快地構(gòu)建更好的軟件,將繼續(xù)成為優(yōu)越的選擇,因?yàn)樗麄児餐铝τ谝粋€(gè)共同的目標(biāo)。請(qǐng)記住我們?cè)跇?gòu)建高速度開(kāi)發(fā)團(tuán)隊(duì)的文章中所說(shuō)的,一個(gè)平衡的團(tuán)隊(duì)能讓所有成員都參與進(jìn)來(lái),并為他們提供成長(zhǎng)和相互學(xué)習(xí)的機(jī)會(huì)。
值得慶幸的是,NoOps符合一些DevOps的方式。它專注于學(xué)習(xí)和改進(jìn),使用通過(guò)持續(xù)和開(kāi)放合作開(kāi)發(fā)的新工具、想法和技術(shù),而且NoOps解決方案消除了摩擦,增加了有價(jià)值的功能在管道中的流動(dòng)。這意味著NoOps是DevOps的一個(gè)成功延伸。
換句話說(shuō),DevOps是永遠(yuǎn)的,而NoOps只是與DevOps一起進(jìn)行創(chuàng)新的開(kāi)始,所以說(shuō)NoOps是DevOps的終結(jié)者就意味著沒(méi)有任何新的東西可以學(xué)習(xí)或改進(jìn)。
最后一站,目的地:NoOps
真正的NoOps涉及相當(dāng)多的基礎(chǔ)工作--你需要在無(wú)服務(wù)器或PaaS之間做出選擇,并將配置、組件管理和安全控制考慮在內(nèi),才能開(kāi)始。即便如此,你可能仍有一些松散的問(wèn)題--比如遺留系統(tǒng)--需要更多時(shí)間來(lái)過(guò)渡(或者你根本無(wú)法過(guò)渡)。
但有一件事是肯定的。DevOps不會(huì)消失,自動(dòng)化也不會(huì)讓Ops被淘汰。然而,隨著無(wú)服務(wù)器自動(dòng)化的發(fā)展,你可能不得不考慮在某個(gè)時(shí)候采用新的開(kāi)發(fā)和運(yùn)營(yíng)方法。值得慶幸的是,如果你選擇轉(zhuǎn)換,你有很多幫助,比如自動(dòng)化工具和FaaS,可以讓你的過(guò)渡更容易。
原文標(biāo)題:??Is NoOps the End of DevOps???