來源:北大青鳥總部 2023年09月14日 09:36
這不一定是一個最好的時代,也不一定是一個最壞的時代,但一定是個Ops盛行的時代,在互聯(lián)網(wǎng)圈內(nèi)的你一定經(jīng)常都會聽到這些名詞,DevOps、DevSecOps、GitOps、NetOps、ItOps、Aiops、DataOps、MLOps、NoOps,其中DevOps、DevSecOps、GitOps、NetOps、ItOps、NoOps都是屬于運(yùn)維領(lǐng)域的,因此我們今天主要也來講這些Ops。
DevOps=Developers+Operators,也就是研發(fā)運(yùn)維一體化,主要是通過自動化流程使得軟件過程更加快捷和可靠。它不是一個產(chǎn)品,而是一種新的團(tuán)隊工作方式、新的技術(shù)理念。
一個軟件從0到1的最終交付包含如下階段:市場規(guī)劃、產(chǎn)品規(guī)劃、編碼設(shè)計、編譯構(gòu)建、部署測試、發(fā)布上線、后期維護(hù)。早期的時候全由一個人完成了,隨著團(tuán)隊的擴(kuò)張,團(tuán)隊里有了產(chǎn)品經(jīng)理、開發(fā)人員、測試人員、運(yùn)維人員的劃分,由產(chǎn)品經(jīng)理負(fù)責(zé)需求的規(guī)劃、產(chǎn)品交互設(shè)計,研發(fā)人員負(fù)責(zé)編碼、構(gòu)建包,測試人員負(fù)責(zé)功能測試和自動化測試、上線發(fā)布,運(yùn)維人員負(fù)責(zé)維護(hù)線上服務(wù)的正常運(yùn)行、擴(kuò)容縮容,這就是敏捷開發(fā)模型,在開發(fā)過程階段測試介入,快速驗(yàn)證修改問題直到基本無誤后上線部署。
這一切所帶來的問題是整體的交付周期變長了,團(tuán)隊之間溝通合作成本變高了,因此DevOps應(yīng)運(yùn)而生。它將整個軟件開發(fā)測試運(yùn)維過程變?yōu)橐惑w化,每完成一個小的需求點(diǎn)便測試上線部署,快速驗(yàn)證需求,捕獲用戶,占領(lǐng)市場。
DevSecOps=Developers+Operators+Securitys,DevSecOps即在保證持續(xù)集成交付、敏捷開發(fā)的同時,保證業(yè)務(wù)的安全性。在DevOps的軟件開發(fā)過程包含計劃、編碼、構(gòu)建、測試、預(yù)發(fā)布、發(fā)布、運(yùn)維、監(jiān)控。在計劃階段執(zhí)行安全性分析,確定在哪些模塊容易引發(fā)安全問題;在編碼階段使用API密鑰、SSH公鑰等保護(hù)代碼安全;在構(gòu)建階段執(zhí)行靜態(tài)代碼掃描來發(fā)現(xiàn)代碼中的缺陷;在測試階段檢測用戶身份驗(yàn)證、授權(quán)、SQL注入等相關(guān)的安全問題;在預(yù)發(fā)布階段使用安全分析工具進(jìn)行全面的滲透測試、漏洞掃描;在運(yùn)營運(yùn)維階段,通過一定的監(jiān)控體系搭建,不斷的監(jiān)控系統(tǒng)情況,保證系統(tǒng)高可用、高可靠。
GitOps=Git+Operators,這是基于Git(版本控制系統(tǒng),如Github、Gitlab)的基礎(chǔ)架構(gòu)和應(yīng)用程序結(jié)合的方式。GitOps更多是基于云原生的一個解決方案,在GitOps中,一切可以被描述的內(nèi)容(如部署策略、代碼配置、監(jiān)控)等都存儲在Git版本控制系統(tǒng)中、基于云原生的容器(如Kubernetes、Docker)也使用Git命令控制,不使用原有的如kubectl的方式。對于開發(fā)人員來說,都要使用Git工具進(jìn)行代碼的托管、代碼評審,GitOps降低了開發(fā)人員的學(xué)習(xí)成本,使用Git就可以自動創(chuàng)建多容器的編排了。
ITOps即IT運(yùn)維全生命周期管理,在軟件全生命周期中包含主機(jī)監(jiān)控管理、日志管理、資產(chǎn)管理、事件管理等,而ITOps提供的就是把這些管理工具集成在一起的解決方案,幫助企業(yè)全方位、全鏈路的監(jiān)控、管理。傳統(tǒng)方式中企業(yè)一般都采購不同供應(yīng)商的不同解決方案(取其優(yōu)勢),然后再組建個團(tuán)隊或找其中的某個供應(yīng)商把這些解決方案都打通,但因?yàn)槊總€供應(yīng)商的標(biāo)準(zhǔn)、技術(shù)設(shè)計都不一樣,因此打通其實(shí)是很耗費(fèi)成本。因此ItOps也正在上云,供應(yīng)商開始通過收購或自研提供一整套的ItOps解決方案。
NetOps即網(wǎng)絡(luò)運(yùn)維,是在網(wǎng)絡(luò)的全生命周期進(jìn)行運(yùn)維的解決方案。在設(shè)備入網(wǎng)的時候,進(jìn)行批量的刷入、監(jiān)控、目標(biāo)版本升級,設(shè)備入網(wǎng)后進(jìn)行業(yè)務(wù)配置、業(yè)務(wù)驗(yàn)證,業(yè)務(wù)上線后進(jìn)行定期的批量審計、巡檢,保證故障識別與解決。NetOps在DevOps環(huán)境中可以更加的靈活,通過自動化、虛擬化的方式提高解決網(wǎng)絡(luò)問題的速度。
AiOps,即人工智能運(yùn)維,通過機(jī)器學(xué)習(xí)算法自動的從海量運(yùn)維數(shù)據(jù)中不斷的學(xué)習(xí),結(jié)合領(lǐng)域?qū)<业闹笇?dǎo)不斷訓(xùn)練模型,最終通過模型來分析決策,達(dá)到智能運(yùn)維,在IT系統(tǒng)中總共會產(chǎn)生五類數(shù)據(jù):機(jī)器數(shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù)、代理數(shù)據(jù)、探針數(shù)據(jù)。機(jī)器數(shù)據(jù)是IT系統(tǒng)自己產(chǎn)生的數(shù)據(jù),;網(wǎng)絡(luò)數(shù)據(jù)是網(wǎng)絡(luò)通信過程中產(chǎn)生的數(shù)據(jù);代理數(shù)據(jù)則是通過在應(yīng)用程序中插入代理程序,獲取應(yīng)用程序中函數(shù)調(diào)用次數(shù)時長、調(diào)用堆棧等數(shù)據(jù);探針數(shù)據(jù)則是通過撥測模擬用戶請求對系統(tǒng)進(jìn)行檢測獲得的數(shù)據(jù)。獲取數(shù)據(jù)后再結(jié)合人工智能算法,如邏輯回歸、關(guān)聯(lián)關(guān)系挖掘、聚類、決策樹、隨機(jī)森林、支持向量機(jī)、蒙特卡洛樹搜索、隱式馬爾科夫、多示例學(xué)習(xí)、遷移學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)等,最后實(shí)現(xiàn)故障自動檢測、自動修復(fù)、自動預(yù)測。
NoOps即無運(yùn)維,完全自動化的運(yùn)維。在NoOps中不再需要開發(fā)人員、運(yùn)營運(yùn)維人員的協(xié)同,從微服務(wù)、低代碼、無服務(wù)全結(jié)合起來,開發(fā)者在軟件生命周期中只需要聚焦業(yè)務(wù)開發(fā)即可,所有的維護(hù)都交由云廠商來完成。NoOps的目標(biāo)就是去除在軟件開發(fā)過程中所有可能出現(xiàn)的人為因素影響,提高交付速度、交付質(zhì)量。
整個開發(fā)運(yùn)維的發(fā)展趨勢是從ItOps、DevOps、NetOps、AiOps、DevSecOps、GitOps、NoOps,而ItOps、NetOps、AiOps更多是運(yùn)維域的解決方案,DevOps、DevSecOps、GitOps是開發(fā)運(yùn)維域的解決方案,NoOps是終極解決方案。現(xiàn)在這些概念你都清晰了嗎?