天天看點

雲原生微服務技術趨勢解讀

作者:阿裡巴巴中間件

作者:李豔林(彥林),Nacos 開源創始人,阿裡雲微服務引擎 MSE 創始人。

筆者參與過阿裡巴巴集團電商業務微服務的更新和改造過程,并一直在支援曆年雙11的大促活動,活躍在支援一線,也參與了 Nacos 開源和社群發展,目前正在阿裡雲負責微服務的整體開源規劃和微服務引擎 MSE 的研發管理工作。是以在微服務技術的應用、開源和商業化服務上,有着比較立體的感受和思考。微服務雖已老生常談,但其生命力之強超出不少人的想象。本文将從微服務發展的行業趨勢和技術趨勢兩方面進行解讀,歡迎各位參與評論,一起交流。

2022年盤點内容:雲原生微服務技術趨勢解讀

技術趨勢推進行業變革,行業趨勢反哺技術價值,兩者互相促進,才能持續保持技術的生命力。我們先來看看這一年國内的一些重要事件,這些事件也恰恰揭示并加速着行業和技術趨勢:

  • 4月,Linux 下一代架構基金會下成立了微服務技術組 SIG(Special Interest Group),共同探讨微服務治理标準化的解決方案
  • 4月,跨不同開發語言和技術架構,微服務治理規範 OpenSergo 開源
  • 5月,Envoy 社群推出 Envoy Gateway 産品,加入下一代網關角逐
  • 6月,騰訊正式開源 Spring Cloud Tencent,打造一站式微服務解決方案
  • 7月,Ingress Nginx 項目暫停接收新功能,将專注于穩定性提升
  • 8月,CloudWeGo 正式釋出 Rust RPC 開源架構 Volo
  • 8月,直流科技釋出服務網格項目(GA 版本)
  • 11月,Apache Dubbo 首個 Rust 語言版本正式釋出
  • 11月,阿裡巴巴開源下一代雲原生網關 Higress,基于 Envoy,支援 Nginx Ingress 零成本快速遷移
  • 12月,位元組跳動開源 kube-apiserver 高可用方案 KubeGateway
  • 12月,中國開源雲聯盟釋出第二批開源成熟度評估結果,10個項目中微服務領域的開源項目有4個
  • 12月,《微服務治理白皮書》榮獲阿裡雲開發者社群年度最受歡迎電子書TOP1
  • 此外,騰訊雲&華為雲在今年先後提供了面向 Nacos 的商業版

微服務發展的行業趨勢

微服務仍在高速增長,關注度從開發效率轉向傳遞效率

開源項目 Star 在一定程度上反應了一個項目的熱度和生命力,從 Star 的增長上看,目前主流微服務開源項目每年以平均10%以上的速度在增長,每個項目均突破 2 萬,數字上呈現的是不僅是行業規模,也折射了每年新晉微服務開發者的水位。

  • Apache Dubbo:4.3w,YoY 12%
  • Istio: 3.3w, YoY 11%
  • Nacos:2.6w,YoY 23%
  • Spring Cloud Alibaba:2.5w,YoY 15%
  • Seata:2.4w,YoY 10%
  • Envoy: 2.2w, YoY 16%
  • SkyWalking:2.2w,YoY 14%
  • Sentinel:2.0w,YoY 13%

資料統計自2022年12月25日,計算主子倉庫的累加資料。

微服務的持續高速發展,使得他已經和計算、存儲、網絡、資料庫、安全一樣成為雲計算的基礎設施。隻不過在每個不同的發展階段,微服務面臨的挑戰并不相同。雲原生普及之前,微服務開發者專注的是微服務的架構、疊代、傳遞和運維。随着雲原生技術的成熟,微服務也在被雲原生化,這時候,開發者和架構師更關心的是如何借助雲的優勢,簡化微服務的運維問題,并更專注在業務的傳遞效率上。

微服務價值愈加凸顯,側重點轉向降本增效

若幹年前,阿裡巴巴在做微服務轉型的時候,看重的是微服務的可擴充性,因為要去快速應對龐大且日益增長的使用者體量。但如今,随着人力成本的不斷上升,以及雲的算力成本的不斷下降,微服務在幫助企業提高研發效率、落地靈活開發的過程中,其發揮的降本增效價值已經越來越明顯,這時候,微服務的價值側重點是發生了變化的。過去的一年,我們看到大量的中小型企業開始采用微服務,快速上量、高效疊代,并将微服務應用建立在雲上,加速邁入雲原生時代。

此外,雲拓寬了微服務的價值邊界,其價值不僅展現在開發态的效率提升,也展現在了運維态上的價值。以 Nacos 為例,注冊配置中心是一個旁路應用,但卻承載着高頻服務任務,一旦遇到可用性問題,會大面積影響線上業務,通過雲廠商提供的 Nacos 商業版,可以極大的提高微服務在運維态上的價值,提升性能、提高可用性,阿裡雲的微服務引擎 MSE,以及騰訊雲和華為雲都提供了面向 Nacos/ZooKeeper/Eureka 的商業化服務。

從網際網路走向各行各業,技術成熟度獲得業内公認

這一趨勢并不是隻在2022年才出現,提出中台概念的那時候,很多傳統企業就已經通過微服務的拆分來建構中台架構了。近一年,随着各行各業數字化程序的加速,微服務不僅出現在直面線上使用者的客戶服務、市場營銷等領域,也在幫助重構設計研發、生産制造、企業内銷售财務協作、公司治理等領域,以便企業在市場競争中保持先發優勢。例如禾連健康幫助全國2000家醫院建構線上體檢服務,緻景科技建構微服務體系打通全國紡織行業資訊流、物流和資金流,實作數智化的綜合平台,龍湖千丁借助微服務支撐全國1000+的智慧停車業務,波司登全面推動各項業務容器化、微服務化,建立立體的線上銷售體系,提升羽絨服銷量。

不僅其他行業在快速落地微服務架構,對技術引入相當嚴苛的金融行業也正積極擁抱微服務。

随着金融科技的快速發展,市場對金融服務的需求日趨多樣化和個性化,對場景金融服務創新、新業務需求敏态響應等提出諸多挑戰,這些正不斷加速金融企業的微服務架構轉型。但是在傳統金融領域,微服務架構的落地并沒有像網際網路企業那麼迅速,這主要是金融行業對系統可用性和穩定性的要求非常高。

然而在過去的幾年,随着微服務産品的成熟和技術的标準化,這一現狀得到了極大地改變,我們看到越來越多的金融企業使用微服務産品改造其核心系統。工商銀行通過 Dubbo 将基于 JEE 的單體架構改造成微服務架構,中信、光大、廣發銀行基于 Seata 的分布式事務能力,來解決交易資料間要求極高的資料一緻性難題。中原銀行的微服務平台以開源項目 SkyWalking(APM應用性能管理)為基礎,建立了分布式鍊路追蹤系統,為微服務提供分布式追蹤、度量聚合和可視化等一體化解決方案。微服務在金融這類嚴苛的行業下的實踐,也充分證明其技術的成熟度和标準化。

此外,在“誰在使用 Nacos ”的征集中,我們也看到了越來越傳統企業的身影。

雲原生微服務技術趨勢解讀

微服務發展的技術趨勢

标準化,呈現更多市場機遇

事實标準和行業标準并行發展,标準化有利于降低技術的選型和使用門檻,也是技術成熟度的一種展現,微服務領域開源領域呈現出比較明顯的頭部效應,大部分開發者傾向選擇主流方案,以下資料來自我們自行舉辦的開發者沙龍或線上直播的調研資料,僅供參考。

  • 微服務或 RPC 架構:以 Spring 為主,Apache Dubbo 有20%+的市場佔有率,在強調國産自主可控的行業,Dubbo 占比會更多些,grpc 以及一些多語言的架構也一些忠實的擁趸。
  • 注冊和配置:Nacos 占比最高,Eureka/Consul/Apollo 各有一些市場佔有率,目前這個領域未看到有的開源項目。
  • 限流降級:Sentinel 占比更高,雖然也有 Hystrix 等一些海外的開源解決方案,但由于本地化的文檔和支援比較受限,開發者會更傾向于選擇 Sentinel。
  • 分布式事務:分布式事務主要應用于對資料一緻性有較強需求的行業,且具有較高的技術門檻,開源選項并不多,目前是 Seata 更受開發者的歡迎。
  • 雲原生網關:主要分為 Nginx/Envoy 兩大技術流派,APISIX 起步比較早,在國内的開源工作推進更快些,國外的開源項目有很多,例如 Kong/Emissary/Gloo 等,我們今年也開源了基于 Ingress 标準的雲原生網關 Higress。
  • 微服務治理規範和實作:相比以上的開源項目,這是一個相對較新的領域,開源選項主要是 OpenSergo 和 Polaris。
雲原生微服務技術趨勢解讀

微服務開源領域的上下遊關系

微服務開源雖然趨于标準化,但從不綁定,各個開源項目之間都是解耦和開放的。這時候開發者選型會側重在高可用上。例如開源項目本身是否經曆過大量的生産實踐,并且是自主可控,避免一些不可控的風險;二是開源方是否會提供一些雲上的商業版。因為當雲成為基礎設施的時候,開發者會關注開源項目在雲上的穩定性、性能、易用性,這些往往是開源版所不具備的。例如面對流量有損的情況,或是版本釋出時,沒有做全鍊路灰階,一個線上故障引發全量業務受影響,沒有控制爆炸半徑,其實,這些場景都是可以通過商業版來避免的,例如 MSE 的微服務治理便可以有效降低客戶發版過程中的故障風險。

越是主流的開源項目,越是有可能聯合雲廠商來提供公共雲上的商業版。

是以,當微服務的各個領域的開源選型趨于标準化,開發者們将不再過多糾結在選型上,而是在傳遞效率和穩定性上時,将給圍繞微服務提供教育訓練、産品服務的企業呈現出更多的市場機遇,這也會反哺整個行業的良性發展。

雲原生微服務技術趨勢解讀

DevSecOps,入口安全關注度提升

在過去的一年裡,RPC 和注冊&配置中心幫助開發者解決研發效率和性能問題,領域趨于穩定;服務網格和服務治理通過流量控制提升高可用能力,領域快速演進;網關幫助企業在數字化入口建立安全和高可用防線,領域處于興起階段,開發者關注各種方案的最佳實踐和客戶案例。

從這些微服務中間件的發展過程中我們發現,以圍繞開發者為核心,提升微服務開發效率,保障生産運維高可用的 DevOps 實踐越來越多,并且正在向 DevSecOps 快速演進。以雲原生網關為例,在流量轉發等基礎運維(Ops)能力之上,企業和開發者愈加重視作為微服務網關的定制開發(Dev)能力,以及作為統一流量入口的安全(Sec)防線能力。

雲原生網關,玩家衆多、活躍度高

雲原生網關領域,新晉的競争者數量是去年同期的一倍,正在加速雲原生網關的标準化。

技術趨勢離不開内外因的合力作用。微服務的技術趨勢之是以要單列一項雲原生網關,外因是 K8s 逐漸成為雲計算的新界面,而 Ingress 作為 K8s 的網絡通信的标準規範,定義了外部流量進入叢集内部的規則描述。而内因則是網關領域長期面臨着入口網管零散、訴求各不相同的情況,例如 Nginx 發揮流量通路的網關作用,微服務網關發揮微服務體系下服務和服務之間網絡通路的作用,API 網關則實作了不同應用或系統之間的互訪。當 Ingress 統一網絡互訪協定後,就催生了雲原生網關的出現。

從技術優劣勢上看,傳統網關架構 API 定義不一緻、多層網關運維代價大、擴充性弱、規則變更連接配接抖動,越來越不能滿足視訊/IOT/海外弱網的需求,不能适應雲原生時代快速疊代、彈性帶來的穩定性挑戰。而雲原生網關将多層網關進行統一架構和建設,不僅降低了網關架構的複雜度,也提升了縮短了網關的轉發鍊路、提升網關的性能。國内最早開源的 APISIX 已經擁有 1w+ star,并且被 vivo/雪球/衆安保險/有贊雲應用于生産業務。

我們今年也順勢将在集團已經服務生産業務兩年之久的雲原生網關 Higress 對外進行開源,他具備标準化、高內建、易擴充、熱更新的優勢,目的是加速雲原生網關在國内的落地。不同于傳統的先開源後提供商業服務的路徑,MSE 雲原生網關和 Higress 則是嘗試了先提供穩定商業服務、後開源核心能力的方式,讓開發者自由選擇。

雲原生微服務技術趨勢解讀

資料面和控制面解耦,控制面重要性提升、但短期内較難标準化

随着 xDS 協定成事實标準,資料面和控制面解耦,控制面作為資料面和治理平面的連接配接越來越重要。微服務生态可以有很多靈活內建模式,簡單的場景注冊&配置中心可以直接通過 xDS 協定将服務推到資料面,複雜的場景控制面可以聚合服務和規則推送到控制面,做更靈活、更複雜的治理能力擴充。

控制面的統一将帶來諸多好處。

微服務已經從架構演進到治理,從解決如何用好微服務演進到如何管好微服務。管好微服務非常依賴微服務治理,而微服務治理是通過無損上線下、全鍊路灰階、流量防護等技術手段來減少、甚至避免釋出和管理大規模應用過程中遇到的穩定性問題,但微服務治理在落地過程中會遇到各種難題。例如:

  • 在企業内部,往往存在着不同語言、不同通信協定的微服務,這會導緻治理微服務的過程中,給業務開發者、架構師平添很多的認知負擔,而這類異構會衍生出更多的痛點。
  • 業内對服務治理的能力和邊界沒有明确的認識,每個企業所定義的服務治理概念不一緻,造成很高的了解和溝通成本。
  • 開源微服務架構衆多,對于服務治理缺乏一些标準化的約定。例如,Spring Cloud 中定義的微服務接口和 Dubbo 中定義的接口就沒有辦法互通,通過 Dubbo 和 Istio 管理的微服務也沒有辦法進行統一治理。
  • 缺少真正面向業務、能夠減輕認知負擔的抽象和标準。開發者真正想要的可能是簡單的、指定服務間的調用關系和配置規則。但現在對于業務開發者來說,不僅需要了解不同微服務架構的部署架構,也要了解不同服務治理方式的概念和能力差別,認知成本很大。

此時,控制面的統一能很好的解決以上困擾。是以我們今年和 bilibili、SphereEx、中國移動等企業,以及 Kratos、CloudWeGo、ShardingSphere、Nacos、Spring Cloud Alibaba、Dubbo 等社群聯合發起并開源 OpenSergo 項目,目的就是建構一個和語言無關、和技術形态無關,但貼近業務的統一服務治理規範和實作。另外,Linux 下一代架構基金會也正在緻力于服務治理标準的制定。但控制面的統一并非一朝一夕,需要參與方在實踐中不斷對标準進行磨合、逐漸達成共識。

雲原生微服務技術趨勢解讀

其他一些技術趨勢

多語言:Java 作為國内微服務開發最主流的語言,正在加速雲原生化演進,通過 Spring 6.0 / Spring Boot 3.0 / GraalVM 讓 Java 能在容器和 Serverless 時代更輕量、更快速運作。随着傳統客戶數字化的更新,之前 C++/C/Python/PHP 研發正在加速向 Go / Rust 演進,目前 Go 微服務生态逐漸完善,前端 Node.js 跨語言調用後端服務場景也越來越多,Rust 微服務生态開始起步,Dubbo、CloudWeGo、Nacos 都在今年釋出了 Rust 的版本,相信後續會有更多開源項目跟進。

雲原生微服務技術趨勢解讀

國産化:核心技術自主可控越加重要,整個軟體行業都在加速國産化程序,微服務開源項目需要投入資源,支援 ARM/IPv6/Dragonwell/PolorDB/OceanBase 等國産化的上下遊生态,才能獲得更多開發中的青睐。

Proxyless:xDS 協定成為事實标準,從 Lib 包依賴模式到 Sidecar 模式到 Proxyless 模式,Sidecar 模式無侵入帶來一些運維複雜度,Lib 包模式有侵入但易運維、性能好,社群嘗試 Node 級 Proxy 方式,介于兩者之間,但目前處于前期狀态;從目前的開發者體量看,Lib 包依賴是主流,Mesh 是補充。

總結

标準化、國産化、DevSecOps、雲原生網關、Proxyless、統一控制面和多語言,給微服務帶來的新的市場機遇。近一兩年,國内出現了很多圍繞這些領域的初創公司,也給很多成熟企業帶來的新的商業方向,兩股力量的互相交融延續着微服務的生命力。

阿裡雲微服務也在這一年收獲了許多,要感謝客戶、開發者、上下遊生态夥伴、技術媒體和社群、評測機構等,繼續平衡好眼前商業利益和長期理想主義,引導整個行業走向遠方。

雲原生微服務技術趨勢解讀

由阿裡雲雲原生應用平台出品的《微服務治理技術白皮書》,獲得了阿裡雲開發者社群年度最受歡迎電子書TOP1,下載下傳量超2.2w,這是微服務領域開發者群體大、增速快的最佳作證,歡迎點選“此處”免費下載下傳閱讀(推薦PC端打開、下載下傳,提供電子書版和音頻版)。