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