Nacos 2.0 性能提升十倍,貢獻者 80% 以上來自阿里之外 Nacos 之於微服務 = Etcd 之於 K8s 2.0 架構升級 發展規劃及商業化 Nacos 開源社區

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

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

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 項目是如何結緣的等等?

A:大家好,我是李豔林,花名彥林,阿里雲軟負載團隊負責人,Nacos 聯合創始人。阿里雲產品 MSE 創始人。

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

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

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

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

2018 年 Nacos 開源,meetup @ 深圳

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

2019 年 Nacos 1.0 發佈,Nacos Meetup @ 杭州

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

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

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

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

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 模型來說,關鍵性能指標一個是實例規模(業務發佈啓動寫頻繁),一個是單實例註冊的服務規模(需要維持心跳消耗內存和網絡),後續我們可以找一個單獨機會,我詳細給大家分享一下阿里百萬實例軟負載的實踐。

2020 年內部 KO,中間件 4.0 開啓雲原生中間件時代

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、KeRan213539、paderlol、horizonzy 等小夥伴一直保持貢獻。這個對於中國開源是有非常重要的意義,尤其 Nacos 多語言部分,全部是外部開發者貢獻,而且保持着不錯的迭代速度。

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

藉此機會感謝我們 200 多名爲 Nacos 貢獻代碼的小夥伴!也期望更多的小夥伴能夠參與到 Nacos 開源工作中來,一起把 Nacos 做強。

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章