了解最新公司動態(tài)及行業(yè)資訊
一、寫在上面
最近被多次問到:“隨著云原生的逐步建立和深入應(yīng)用,NoOps(零運維)時代真的要來了嗎?作為運維人員,我們應(yīng)該如何應(yīng)對這些趨勢? ?”。云原生架構(gòu)不斷融入數(shù)字化轉(zhuǎn)型應(yīng)用后,IT運維真的沒了嗎?仁者見仁,智者見智。但我個人認(rèn)為,如果我們能先充分理解“云原生”,再思考“在云原生下,是不是真的不需要運維”,會更準(zhǔn)確一些。
二、什么是云原生?
Cloud () 是一個復(fù)合詞,Cloud+。云意味著應(yīng)用程序位于云端,而不是傳統(tǒng)的數(shù)據(jù)中心;這意味著應(yīng)用程序的設(shè)計從一開始就考慮到了云環(huán)境。彈性+分布式優(yōu)勢。
三、云原生的主要特點?
該公司的 Matt Stine 在 2013 年首次提出云原生,他定義了云原生的四個關(guān)鍵點:微服務(wù) + 容器 + 持續(xù)交付 +。
微服務(wù):幾乎所有云原生的定義都包含微服務(wù)。與微服務(wù)相比,它是一個單體應(yīng)用程序。微服務(wù)有一個理論基礎(chǔ),即康威定理,它指導(dǎo)如何分割服務(wù)。決定產(chǎn)品形態(tài)的是組織結(jié)構(gòu)。微服務(wù)架構(gòu)的用處是切割后服務(wù)是前饋的,內(nèi)聚力更強,變更更容易;另一種定義服務(wù)的方法似乎是基于 DDD。
容器化:是應(yīng)用最廣泛的容器引擎。容器化為微服務(wù)提供實現(xiàn)保障,起到應(yīng)用隔離的作用。K8S 是一個容器編排系統(tǒng),用于容器管理、容器之間的負(fù)載均衡,K8S 是用 Go 編寫的。
:這是一個組合詞,Dev+Ops,就是開發(fā)和運維的組合。與開發(fā)和產(chǎn)品不同的是,它們經(jīng)常相遇。事實上,它還應(yīng)該包括測試。它是一種敏捷思維、一種溝通文化和一種組織方法。為云原生提供持續(xù)交付能力。
持續(xù)交付:持續(xù)交付是開發(fā)不延遲,更新不停機,小步逃走,是一種反傳統(tǒng)的瀑布式開發(fā)模式,需要開發(fā)版本和穩(wěn)定版本并存,雖然需要很多流程和工具的支持。
在實際實現(xiàn)中,符合云原生架構(gòu)的應(yīng)用特點是:使用開源棧(K8S+)進(jìn)行容器化,基于微服務(wù)架構(gòu)提高靈活性和可維護(hù)性,采用敏捷方法,支持持續(xù)迭代和人工運維,借助云平臺設(shè)施,可以實現(xiàn)彈性伸縮,動態(tài)調(diào)度,優(yōu)化資源利用率。
四、為什么會出現(xiàn)云原生,解決了哪些痛點?
讓我們從云估計開始。在云計算普及之前,如果一個應(yīng)用要發(fā)布,企業(yè)需要購買幾臺服務(wù)器,安裝在IDC機房。連接是安裝Linux系統(tǒng)和部署應(yīng)用程序。我們假設(shè)我們已經(jīng)用 Java 編寫了一個 Web 應(yīng)用程序,如何部署它?先配置服務(wù)器,將編譯好的war包上傳到服務(wù)器,使用FTP,對安全意識稍有了解的選擇SCP,然后配置Nginx和MySQL等服務(wù),然后調(diào)試最后一關(guān)運行應(yīng)用,甚至如果它還活著。這些化工機器有很多缺點,但主要痛點如下:
擴展和維護(hù)困難。由于是化工機,所以需要先購買,再安裝到機房。當(dāng)業(yè)務(wù)量激增時,再擴容已經(jīng)來不及了。就術(shù)語而言,這意味著估計的資源是不靈活的;治安太差了。熟悉Linux的運維工程師很少服務(wù)器運維,精通的也很少。但系統(tǒng)安全只是一方面,應(yīng)用部署的權(quán)限和流程會導(dǎo)致更大的安全漏洞;需求無法快速響應(yīng)。開發(fā)、測試和運維是矛盾的,缺乏手動測試和部署。應(yīng)用系統(tǒng)的上線部署是一個重大的變化,涉及大量的規(guī)劃和多輪測試,
解決方案是上云。上云并不能解決所有痛點,而是部分解決了前兩個痛點:
與化工機相比,虛擬機的創(chuàng)建、維護(hù)和銷毀都比化工機簡單得多,并且可以隨時擴展容量,很大程度上解決了“彈性估計”的問題。至于彈性程度,取決于應(yīng)用。建筑和設(shè)計水平;與絕大多數(shù)中小企業(yè)相比,云服務(wù)商在網(wǎng)絡(luò)和服務(wù)器安全方面要強幾個數(shù)量級。只要選擇合適的官方鏡像,并配合使用防火墻規(guī)則,系統(tǒng)層面的安全問題就大大減少,重點可以放在應(yīng)用本身的安全上。
所以第三個痛點“無法快速響應(yīng)業(yè)務(wù)需求”云測算不能很好的解決。要實現(xiàn)持續(xù)交付和快速迭代,需要改變應(yīng)用架構(gòu)和軟件開發(fā)方式。這時候,云原生“微服務(wù)、容器”等特點的優(yōu)勢就凸顯出來了。
五、使用云原生后會給應(yīng)用系統(tǒng)開發(fā)帶來哪些變化?
1.本地部署的傳統(tǒng)應(yīng)用往往是用c/c++和企業(yè)級java編寫的,而云原生應(yīng)用則需要用以網(wǎng)絡(luò)為中心的go、node.js等新興語言編寫,而不是Java不能用,只說GO語言更適合云原生適配。2.本地部署的傳統(tǒng)應(yīng)用程序可能需要停機更新服務(wù)器運維,而云原生應(yīng)用程序應(yīng)該仍然是最新的,需要支持頻繁的更改、持續(xù)交付和藍(lán)綠部署。3.傳統(tǒng)部署在本地的應(yīng)用無法動態(tài)擴展,往往需要冗余資源來抵御流量高峰,而云原生應(yīng)用則利用云的彈性來手動擴展和共享,降低成本,提高效率。4. 部署在本地的傳統(tǒng)應(yīng)用對網(wǎng)絡(luò)資源有依賴,比如ip、端口等,甚至是硬編碼,而云原生應(yīng)用對網(wǎng)絡(luò)和存儲則沒有這些限制。5.傳統(tǒng)的本地部署的應(yīng)用一般都是手動運維的,而云原生的應(yīng)用都是手動操作的。6.本地部署的傳統(tǒng)應(yīng)用一般依賴系統(tǒng)環(huán)境,而云原生應(yīng)用不硬連接任何系統(tǒng)環(huán)境,而是依賴具體的基礎(chǔ)設(shè)施,從而實現(xiàn)了良好的可移植性。7.本地部署的一些傳統(tǒng)應(yīng)用是單體()應(yīng)用或者是強依賴,
那么,在云原生應(yīng)用之后,似乎今天面臨的所有運維的棘手問題都消失了?
六、云原生使用現(xiàn)狀如何?
之前看過國外大中型企業(yè)的調(diào)查報告,顯示“60%以上的用戶在生產(chǎn)環(huán)境中應(yīng)用了容器技術(shù),1000節(jié)點規(guī)模的容器集群可以滿足生產(chǎn)需求近 80% 的用戶。” 作為容器的主要應(yīng)用場景,80% 的用戶已經(jīng)使用或計劃使用微服務(wù)。與此同時,該技術(shù)明顯升溫,近 30% 的用戶已經(jīng)將其應(yīng)用到生產(chǎn)環(huán)境中,但用戶在部署過程中仍面臨諸多挑戰(zhàn)。甚至預(yù)測“到2025年,95%的數(shù)字化運維將得到云原生平臺的支持”。這個數(shù)據(jù)和我目前接觸過的客戶的申請情況差不多,無論是ToB還是ToC,無論是標(biāo)準(zhǔn)化產(chǎn)品還是多元化。產(chǎn)品在云原生改進(jìn)方面取得了長足的進(jìn)步,最重要的原因是:“快速迭代和持續(xù)交付”。
七、使用云原生后會給IT運維帶來哪些變化?
云原生運維需要解決幾個關(guān)鍵問題: 1.標(biāo)準(zhǔn)化:標(biāo)準(zhǔn)化可以促進(jìn)開發(fā)團隊和運維團隊的溝通協(xié)作。標(biāo)準(zhǔn)化也有助于生態(tài)分工,促進(jìn)更多手工工具的出現(xiàn)。2.手動:只有手動運維才能支撐互聯(lián)網(wǎng)規(guī)模的挑戰(zhàn),才能持續(xù)支撐業(yè)務(wù)的快速迭代和穩(wěn)定性。3.數(shù)字化智能:人工運維,數(shù)據(jù)提升,人工智能化已成為未來發(fā)展的必然趨勢
上述問題對運維人員的變化是:
原本標(biāo)準(zhǔn)化的工作流程是用來協(xié)調(diào)人高效完成工作的,通過標(biāo)準(zhǔn)化流程轉(zhuǎn)化為人工化;
傳統(tǒng)上,通過開發(fā)人工處理模型來訓(xùn)練AI,將知識積累以提高團隊能力轉(zhuǎn)化為運維能力的提升;
在微服務(wù)、多云環(huán)境和 IaaS 下,應(yīng)用系統(tǒng)和基礎(chǔ)設(shè)施都被劃分為足夠小的業(yè)務(wù)服務(wù),以實現(xiàn)持續(xù)交付和迭代。這種傳統(tǒng)的人工運維方式,早已難以管理這么多的對象。運維工程師無論是軟件運維、服務(wù)器運維、操作系統(tǒng)運維還是網(wǎng)絡(luò)運維,都必須能夠在原維護(hù)對象專有技能的基礎(chǔ)上進(jìn)行人工運維。也未能推動運維工具的標(biāo)準(zhǔn)化。為此,運維工程師必須具備一定的開發(fā)能力。至于過程,傳統(tǒng)業(yè)務(wù)由人工協(xié)同完成,而在云源旗下,每只藍(lán)籌股的工作都由相應(yīng)的人工工具完成。這樣,在原有流程能力的基礎(chǔ)上,運維流程主管必須具備安排不同自動化組件的能力,以實現(xiàn)從資源規(guī)劃、軟件部署、自動化業(yè)務(wù)驗證(測試)等一系列工作。事實上,運維的工作不會消失,只是運維工程師在云原生環(huán)境下沒有編程和開發(fā)能力是很難做到的。在原有流程能力的基礎(chǔ)上,運維流程總監(jiān)必須具備安排不同自動化組件的能力,以實現(xiàn)從資源規(guī)劃、軟件部署、自動化業(yè)務(wù)驗證(測試)等一系列工作。事實上,運維的工作不會消失,只是運維工程師在云原生環(huán)境下沒有編程和開發(fā)能力是很難做到的。在原有流程能力的基礎(chǔ)上,運維流程總監(jiān)必須具備安排不同自動化組件的能力,以實現(xiàn)從資源規(guī)劃、軟件部署、自動化業(yè)務(wù)驗證(測試)等一系列工作。事實上,運維的工作不會消失,只是運維工程師在云原生環(huán)境下沒有編程和開發(fā)能力是很難做到的。
傳統(tǒng)的運維工具,無論是監(jiān)控還是運維流程,都以保證業(yè)務(wù)穩(wěn)定性和保證快速響應(yīng)為核心的標(biāo)準(zhǔn)化產(chǎn)品。差異也使得自愈處理的流程不統(tǒng)一,必須通過二次開發(fā)完成。這樣,運維工具的二次開發(fā)能力將決定該工具能否落地。
八、寫在最后
數(shù)字化轉(zhuǎn)型時代已經(jīng)臨近,掃碼加入我們,以全新的思維方式學(xué)習(xí)ITIL4,數(shù)字化轉(zhuǎn)型時代必須掌握的新技能。
更多課程和服務(wù)
我們首次提出“咨詢式培訓(xùn)”的培訓(xùn)理念,指出“在培訓(xùn)學(xué)校學(xué)習(xí)方法,在專題研討中解決問題,在研討課和輔導(dǎo)課中答疑解惑”。
如果您想使用ITIL4的理論來設(shè)計和優(yōu)化IT部門的業(yè)務(wù)流程,建議您點擊以下鏈接:
如果您想利用外部專家的經(jīng)驗和實力對IT部門的業(yè)務(wù)進(jìn)行重組和重新設(shè)計,我們建議您點擊以下鏈接: