Nacos 2.0 性能提高十倍,貢獻者 80% 以上來自阿里以外

1.png

來源 | 阿里巴巴雲原生公衆號編程

3 月 20 日,Nacos 2.0 正式發佈。Nacos 是阿里巴巴在 2018 年開源的一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺,也能夠理解爲微服務的註冊中心 + 配置中心。安全

Nacos 目前在獲取用戶和開源社區運維上都取得了不錯的成績。據 Nacos 聯合創始人李豔林介紹,在一次 2245 人樣本的開發者調研中顯示,用戶在註冊中心的選擇上,選擇 Nacos 的開發者已經達到了 49%。Nacos 在同領域中已是國內開發者的首選。網絡

此外 Nacos 開源社區的貢獻者有 80% 以上來自阿里以外,貢獻了 Nacos 的 20% 左右的代碼,尤爲 Nacos 多語言部分,所有由外部開發者貢獻,而且保持着不錯的迭代速度。架構

而這次大升級,相較 1.x 版本,Nacos 2.0 性能提高了 10 倍,內核進行了分層抽象,而且實現插件擴展機制。將來 Nacos 計劃經過集成主流 Sidecar 技術完成對 Nacos 多語言生態和雲原生生態的整合。框架

爲進一步瞭解 Nacos 是如何完成 2.0 架構大升級,實現 10 倍性能提高的,以及 Nacos 社區運營經驗和將來規劃。OSCHINA 邀請 Nacos 聯合創始人爲咱們作了深刻解讀。運維

Nacos 之於微服務 = Etcd 之於 K8s

Q:首先介紹下本身吧,如我的背景、與 Nacos 項目是如何結緣的等等?socket

A:你們好,我是李豔林,花名彥林,阿里雲軟負載團隊負責人,Nacos 聯合創始人。阿里雲產品 MSE 創始人。編程語言

隨着開源對雲計算行業影響愈來愈大,2018 年阿里加大了對開源的投入,我有幸參與 Nacos 開源工做,圍繞着 Dubbo/Spring-cloud-alibaba 阿里微服務生態,提供開發者完整的微服務解決方案。分佈式

Q:介紹下 Nacos 誕生、發展的歷史吧ide

A:Nacos 在阿里巴巴起源於 2008 年五彩石項目(完成微服務拆分和業務中臺建設),成長於十年雙十一的洪峯考驗,沉澱了簡單易用、穩定可靠、性能卓越的核心競爭力。隨着雲計算興起,2018 年咱們深入感覺到開源軟件行業的影響,所以決定將 Nacos(阿里內部 Configserver/Diamond/Vipserver 內核) 開源,輸出阿里十年的沉澱,推進微服務行業發展。

2.png

2018 年咱們將 Nacos 正式開源,並快速成爲國內最受關注開源產品,虎牙也最先跟進參與了 Nacos 的開發,而且大規模生產落地,後續視頻行業快速跟隨採用。

3.png
<p style="text-align:center">2018 年 Nacos 開源,meetup @ 深圳</p>

2019 年咱們發佈 Nacos 1.0版本,標誌着 Nacos 功能穩定成熟,而且支持了幾乎全部的微服務框架和編程語言,由此 Nacos 被普遍使用,Nacos 也進入了高速發展期。

4.png
<p style="text-align:center">2019 年 Nacos 1.0 發佈,Nacos Meetup @ 杭州</p>

2020 年新年伊始 Nacos Star 數破萬,而且咱們陸續發 1.X 多個版本,完成了存儲和一致性模型的抽象分層,架構跟清晰和穩健,Nacos 也進入大規模使用期。

2021 年咱們發佈 Nacos2.0 版本,性能提高十倍,Nacos 進入第二發展曲線,以性能、高可用、生態爲核心競爭力,繼續保持高速發展。

Q:您認爲 Nacos 在雲原生中間件江湖中的地位如何

A:Nacos 首先在同領域中已是國內開發者的首選,Nacos 2.0 發佈後有開發者自發發起調研,看你們註冊中心的選項,從調研結果來看,選擇 Nacos 的開發者已經達到了 49%。隨着 2.0 發佈,Nacos 的競爭優點正在不斷擴大。

5.png

Nacos 表明的註冊中心和配置中心在雲原生中間件中就是最核心的服務,由於分佈式後首先要解決的就是尋址問題。

我也能夠作一個類比,Nacos 相對於微服務的地位,就跟 Etcd 相對 K8s 地位是同樣的。

2.0 架構升級

Q:Nacos 2.0 服務發現、配置管理性能提高 10 倍具體是怎麼作到的,具體是哪些場景,測試方式是什麼?背後對應的是哪些技術架構的升級

A:18 年開源的時候考慮到簡單易用,咱們基於內部產品內核作了一些取捨,如通訊協議改爲了 http 模式,這樣簡單,多語言容易實現,可是短連接確實性能弱了一些。

服務模型上咱們有持久化和非持久化兩種模式,開源的時候咱們考慮持久化模式能夠作更多的服務治理能力,可是發展一段時間夠發現外面主流場景都是非持久化服務,可是也爲性能問題埋了一些坑,主要模型不太匹配,固然咱們如今作了很好的抽象和統一才能比較好的解決這個問題。對於 Dubbo 和 Spring-cloud-alibaba 這種最常規的非持久化服務性能提高最明顯。

測試方式主要是針對服務和配置的關鍵的使用場景構建了幾個典型的壓測模型進行壓測。

核心升級了通訊協議、一致性模型、架構分層和抽象。

Q:此次升級到 2.0 過程當中有沒有遇到一些技術難題,是怎麼解決的

A

  • 長鏈接協議選型:咱們內部有一個私有長連接協議,市場上有 gRPC/Rsocket 兩個主流選擇,咱們爲了兼容必須作好擴展抽象,爲了多語言容易實現和集成咱們也作了不少壓測驗證。最終選擇了 gRPC。從模型上看 Rsocket 的推模型對於 Nacos 更合適,在生態和多語言支持上 gRPC 更合適,綜合平衡咱們選擇了 gRPC,而且作好擴展,以便後續有更好的選擇。
  • 服務一致性模型:Nacos 底層服務分爲持久化服務和非持久化服務,在一致性模式和存儲方式上有比較大差異,通過漫長時間打磨,咱們把模型作好了抽象和融合,把每一個場景性能都發揮到極致。
  • 無縫升級方案:通常開源產品協議的跨代升級基本都是不考慮兼容的,可是因爲 Nacos 有普遍用戶基礎,所以咱們仍是消耗了巨大的精力作好兼容工做,以便讓全部用戶可以升級享受到這些紅利。

Q:據說阿里內部已經有了百萬實例的案例,具體是指什麼,能夠詳細介紹下嗎
A:2020 年面對雲原生大的趨勢和阿里內部實例規模突破百萬的大背景下,咱們發起了中間件 4.0 項目,核心解決擴展性和標準化問題。實例指的是微服務實例節點,微服務實例節點。對於 Nacos 模型來講,關鍵性能指標一個是實例規模(業務發佈啓動寫頻繁),一個是單實例註冊的服務規模(須要維持心跳消耗內存和網絡),後續咱們能夠找一個單獨機會,我詳細給你們分享一下阿里百萬實例軟負載的實踐。

6.png
<p style="text-align:center">2020 年內部 KO,中間件 4.0 開啓雲原生中間件時代</p>

Q:Nacos 在阿里內外部的落地狀況如何?能夠對比介紹下嗎

A:目前 Nacos 已經完成了自研、開源、商業化三位一體的建設,阿里內部的釘釘、考拉、餓了麼、優酷等業務域已經所有采用雲產品 MSE 中的 Nacos 服務,而且與阿里和雲原生的技術棧無縫整合。

發展規劃及商業化

Q:Nacos 2.X 規劃中,不少關於插件的方面的優化,這樣設計的緣由和目標是什麼

A:隨着 Nacos 代碼庫日益龐大,以前耦合比較緊密的代碼不方便擴展,用戶定製性有比較高,又提交不到社區,如安全功能,所以經過擴展機制提高用戶根據本身場景定製能力,固然也能更好的跟各個生態集成。

Q:官宣 2.0 版本時提到,Nacos 之後會向 Mesh 化方向深刻探索。這裏的 Mesh 是指 Service Mesh 嗎,有什麼技術難點,具體要作哪些事情

A:是的,因爲 Service Mesh 經過 Sidecar 模式能比較好的解決多語言問題,所以咱們指望經過集成主流 Sidecar 技術完成對 Nacos 多語言生態和雲原生生態的整合。

目前核心是 Istio 目前的性能指標挑戰還很大,Sidecar 目前自動灰度升級是一個挑戰,對於中小公司目前落地風險可控。 

Q:Nacos 做爲一款產品來看,其發展目標是偏向爲阿里業務作好支撐,仍是但願能發展更多外部用戶?若是是後者,有沒有大體的商業計劃

A:從 2020 年開始,阿里雲就提出了「三位一體」理念,即將「自研技術」、「開源項目」、「商業產品」造成統一的技術體系,最大化技術的價值。經過開源擴大生態,經過阿里集團場景鍛造高性能和高可用能力,經過雲產品構建產品化能力。

2020 年 1 月,咱們就發佈了 Nacos 有對應的商業化產品-微服務引擎(Micro Service Engine)簡稱 MSE,並對外提供商業化服務。它是一個面向業界主流開源微服務生態的一站式微服務平臺, 提供註冊中心、配置中心全託管(兼容 Nacos/ZooKeeper/Eureka),網關(兼容 Zuul/Kong/Spring Cloud Gateway),和無侵入的開源加強服務治理能。

2020 年雙 11 ,咱們就全面使用 EDAS、Dubbo、RocketMQ、AHAS、ARMS、MSE、PTS 等阿里云云產品來支撐雙 11,作到了和客戶在同一架「飛機」上。能夠說阿里巴巴集團是阿里雲的最大的公有云用戶,目前已經有大量業務已經跑在阿里雲 MSE 託管的 Nacos 上面了。預計 2021 年雙十一阿里集團將 100% 跑到咱們公有云產品上面。目前阿里雲上已有數萬企業採用了咱們商業化產品 MSE 中託管的 Nacos,並且咱們會加大對此投入,以便更好的服務阿里雲用戶。

最後,咱們但願廣大的開發者能夠經過 Nacos 的開源,享受到阿里微服務體系的技術紅利;另外經過阿里雲的規模效應,企業用戶能夠經過 Nacos 商業化產品 MSE,得到比開源自建更穩定、成本更經濟的產品紅利。

Nacos 開源社區

Q:Nacos 2.0 發佈以後開發者的熱烈反響,爲何,怎麼作開發者維護的

A:首先 Nacos 通過近三年發展已經成爲國內首選,有着普遍的羣衆基礎;其次 Nacos2.0 是一個跨代產品,性能提高十倍,誠意十足的貢獻了阿里核心能力,最後感謝媒體朋友,在這開放的時代讓好的產品、技術大規模推廣。

咱們在開發者關係上簡單分爲貢獻者和使用者。對於幾百名貢獻者,咱們是經過按期週會機制交流一些前沿技術的想法和貢獻的思路,根據貢獻程度授予不一樣的社區名譽,幫助咱們貢獻者擴大技術影響力。

對於使用者,咱們經過按期的 Meetup 和要求用戶分享最佳實踐的方式進行互通。從而造成正向循環。另外咱們很是重視下降新手使用者使用 Nacos 的門檻,因此咱們在文檔建設、教程建設上都投入了不少精力。今年,咱們將在知行動手實驗室上線完整的 Nacos 入門教程,幫助開發者們更好地上手。

Q:Nacos 開源社區現況如何?是否調查過貢獻者構成

A:目前應該也是二八定律,80% 以上是外面的貢獻者,貢獻了 Nacos 的 20% 左右的代碼,其中 chuntaojun、KeRan21353九、paderlol、horizonzy 等小夥伴一直保持貢獻。這個對於中國開源是有很是重要的意義,尤爲 Nacos 多語言部分,所有是外部開發者貢獻,並且保持着不錯的迭代速度。

在社區數字化運營上,咱們聯合 X-lab,經過數據化、自動化的方式,清晰地展現出 Nacos 和對標的項目的活躍度、關注度趨勢,和社區協做網絡圖,能快速定位社區裏的活躍開發者。

藉此機會感謝咱們 200 多名爲 Nacos 貢獻代碼的小夥伴!也指望更多的小夥伴可以參與到 Nacos 開源工做中來,一塊兒把 Nacos 作強。

相關文章
相關標籤/搜索