虎年云原生落地技术趋势
今天是立春,虎年第一天。去年我寫過一篇 牛年 dotnet云原生技術趨勢[1],今天再來寫一篇虎年云原生落地技術趨勢,去年局限在.NET 平臺上的云原生落地,我今年在去年探索云原生落地的基礎上從多語言云原生技術落地的趨勢來談談。
在 2020 年的時候,云原生理念就被提到得越來越多,但是真正呈現出爆發形態、真正被所有的云廠商、用戶廣泛使用的是在 2021 年。國內三大云廠商都在2020年發布了云原生2.0 路線圖,而且這些頭部廠商的云原生落地到達了一個里程碑式的關鍵節點,代表性事件就是各大互聯網公司基本完成了云原生化,所有業務百分之百上云。云原生的核心技術如容器、微服務、服務網格等的可用性和成熟度都已經可以支撐起頭部互聯網的體量。每個行業的云原生進度不一樣,頭部互聯網公司跑得比較靠前,基本都做到了全面云原生化。未來幾年,其他行業會逐步追隨互聯網的腳步全面走向云原生化。
隨著直播、5G、IoT 等領域的興起,讓業務對于云的形態需求更高,大家希望云能夠更貼近數據的產生點,因此相應的邊緣云、本地云、混合云的形態越來越多。現在,整個云計算有一個很重要的趨勢,就是呈現一云多形態的模式,用戶在各個地方都能用到云計算的能力。但這也對云的基礎設施提出了比較大的挑戰。用戶以前就是用一朵云,管理復雜度是可以接受,但多朵云形態后,挑戰難度就比較大了。
云原生技術天然能夠比較好地解決云變成多形態后的統一界面管理問題,包括混合云帶來的復雜度挑戰。下面兩張圖是我在2021年實踐云原生的一個路線圖總結:
CNCF 里面有非常多的開源項目,里面的項目已經超過一千了。這些開源項目圍繞著云計算在展開競爭,CNCF孵化項目成熟度模型分為三個級別,分別對應到鴻溝理論劃分的三個目標客群:
沙箱級(Sandbox):對應創新者群體
孵化級(Incubating):對應早期使用者群體
畢業級(Graduated):對應早期多數群體
項目從孵化級向畢業級過渡最為關鍵,需要跨越鴻溝(The Chasm)。在此跨越過程中,孵化項目需要向有影響力的公司和組織證明自己提供的能力能夠改進生產流程、提升效率、降低成本,并且足夠穩定可靠以保證在生產環境使用。截至2022年2月3日,從CNCF成功畢業的項目有16個,進入孵化級別的是27個項目,具體參看CNCF的畢業和孵化項目[2]。
在2022年云原生在各行各業開始進入全面落地階段,CNCF在推進云原生發展過程中已經形成了幾大比較關鍵的標準:
最早出現的是容器,解決了應用打包標準化和應用發布標準化的問題。在此之前,虛擬機等方式的標準化程度是不夠的,Docker 終結了這一問題。隨著 Docker 的不斷演進和推廣,在應用編排、資源調度等又出現了新的問題,當時的 Docker ?Swarm、Mesos 和 Kubernetes 互相競爭,最后 Kubernetes 勝出,并帶來了新的資源編排方面的事實標準。現在 Kubernetes 已經成為一個事實標準。而應用層之前也是百家爭鳴的情況,每個企業都在做自己的云原生應用,現在有越來越多的開源標準出現,如OAM(Open ?Application ?Model) 和SMI(Service Mesh Interface)等,大家都在嘗試定義應用層的標準, OAM 和 SMI 尚未形成事實標準,他們有成為事實標準的潛力,2022年就是非常關鍵的一年,在云原生項目落地的過程中以OAM 標準的代表項目Dapr 目前在多運行時框架領域是一個非常耀眼的項目,落地的案例也非常多了。云原生的多語言是必然趨勢。國內后端開發最火的語言是Java,已經有很多公司(騰訊、字節)在用 Go 作為主要開發語言,PHP 的使用也非常廣泛。每種語言的特點不太一樣,很多企業會根據業務需要選擇一種合適的語言。這時可能會出現多種語言,業務部門覺得用 Java/C#比較好,偏前端的想要 PHP 或者 Node.js,多語言在企業內部越來越普遍。開發人員想用什么語言就用什么語言,但是運維人員就會面臨很大的挑戰,如多語言環境下的服務治理怎么能統一做等。Java 之前在阿里基本處于統治地位,但現在阿里內部也多語言了。阿里收購了非常多的企業,如餓了么、飛豬、高德等,但不可能讓所有并購進來的公司都改變編程語言,這是很難的。由于公司并購,阿里內的編程語言已經變得多元化了。企業足夠大的話,就一定是多語言的。如果是初創公司或者體量還不夠大,語言統一確實能帶來便捷。所以阿里和微軟主導了開源項目Dapr,詳細內容可以參看 Dapr 在阿里云原生的實踐[3], 高德 Serverless 平臺建設及實踐[4]。
云原生實踐在支持多語言這個技術方案上還有Service Mesh,Service Mesh出現的時間上比Dapr 更長久, 目前也處于混戰階段,Istio 并不在CNCF 社區里,微軟聯合眾多廠商在CNCF里提出了SMI(Service Mesh Interface), 主要的Service Mesh框架都實現了SMI,微軟主導的Open Service Mesh 遵循SMI 規范,最近也發布了1.0 版本,我昨天體驗后寫了一篇體驗文章 體驗 正式發布 的OSM v1.0.0 版本[5],Open Service Mesh 相對于Istio 來說,確實很輕量。SMI 處理了所有你期望的標準服務 Mesh 功能,包括使用 mTLS 確保服務之間的通信安全,管理訪問控制策略,服務監控等,Dapr 和 OSM 是非常好的一個實踐多運行時架構的組合。
國內有很多企業已經在虛擬機、物理機環境使用Spring Cloud,這些企業轉向云原生時,如果還是簡單把spring cloud 部署到kubernetes 環境,spring cloud的很多基礎架構能力是和kubernetes相重疊的,想充分享受kubernetes 帶來的自動化方面的能力,最好的選擇是卸下Spring Cloud,通過Dapr提供的分布式能力讓解決方案在各種環境中自由適配,而且Spring Boot 版本可自主升級,不再與Spring Cloud 存在兼容性問題。
我看到有些企業是為了技術而去做云原生,這樣最后不一定有好的結果,更多時候還是先從業務價值角度出發考慮要做什么事情,再選擇相應的技術。一方面,企業有業務驅動,便會有足夠多的資源投入。另一方面,企業在做技術選型和落地的時候會有足夠多的實踐。從領域來講,我給大家的建議就是先把基礎打好,之后再完善一些生產必備的技能。容器技術是所有的基石,在這之后是一些比較關鍵的像可觀測性、CICD、微服務等企業內部落地真正需要的一些關鍵技術。
[1]牛年dotnet云原生技術趨勢:https://www.cnblogs.com/shanyou/p/14398499.html
[2]CNCF的畢業和孵化項目:https://www.cncf.io/projects/
[3]Dapr 在阿里云原生的實踐:https://developer.aliyun.com/article/785943?
[4]高德 Serverless 平臺建設及實踐:https://xie.infoq.cn/article/686a83fccba14504517ec6fe5?
[5]體驗 正式發布 的OSM v1.0.0 版本 :?https://www.cnblogs.com/shanyou/p/15861828.html
總結
以上是生活随笔為你收集整理的虎年云原生落地技术趋势的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 回到地球之后,这个男人创建了Ubuntu
- 下一篇: redis缓存设计要点随谈