1. 程式人生 > >還在為 Eureka 閉源擔心?Nacos 來了

還在為 Eureka 閉源擔心?Nacos 來了

強調 -o ans 一切都 創新 如何 commit 競爭優勢 服務架構

摘要: 1、貢獻 Dubbo 生態,阿裏 Nacos 發布 v0.1.0 版本 在 6 月份 Aliware 技術行上海站 Dubbo 開發者沙龍上,阿裏巴巴高級技術專家郭平 (坤宇) 宣布了阿裏巴巴的一個新開源項目 Nacos,在上周五淩晨 (7 月 20 日) 低調發布了第一個版本。

1、貢獻 Dubbo 生態,阿裏 Nacos 發布 v0.1.0 版本
在 6 月份 Aliware 技術行上海站 Dubbo 開發者沙龍上,阿裏巴巴高級技術專家郭平 (坤宇) 宣布了阿裏巴巴的一個新開源項目 Nacos,在上周五淩晨 (7 月 20 日) 低調發布了第一個版本。

https://nacos.io/#/?lang=zh-cn

坤宇在上一次線下活動中介紹了這個開源項目的初衷,他表示 “將通過 Nacos 項目將阿裏巴巴在建設共享服務體系中使用的服務發現、配置及服務管理平臺貢獻給開源社區,通過打造 Dubbo + Nacos 的經典組合進一步釋放 Dubbo 在雲原生及 Service Mesh 時代中,在大規模微服務治理、流量治理、服務集成與服務共享等服務平臺能力建設上的威力,同時 Nacos 會非常關註對主流開源社區,如 Spring Cloud 和 Kubernetes 雲原生體系的無縫對接與支持”。

該項目目前的計劃是通過未來 6~8 個月的持續努力,release 的 0.8 版本開始達到生產可用的狀態,同時計劃堅持社區化發展,在未來一年裏計劃吸收至少 10 名外部 Committer 和 5 個外部 PMC.

2、什麽是 Nacos /nɑ:k??s/?
Nacos 是阿裏巴巴的新開源項目,Nacos 發布 v0.1.0 版本的同時也發布了中英雙語的官網,從其官網描述來看,其核心定位是 “一個更易於幫助構建雲原生應用的動態服務發現、配置和服務管理平臺”。

技術分享圖片

Nacos 有三大主要功能:

? 任務發現與服務管理
在采用以“服務 (Service)”為中心的諸如微服務及雲原生方式的現代應用架構時,動態服務發現至關重要。 Nacos 同時支持基於 DNS 和基於 RPC(如 Dubbo/gRPC)的服務發現,並為您提供服務的實時的健康檢查以防止將請求發送給不健康的主機,基於 Nacos 您也可以更方便的實現服務斷路器。Nacos 提供的強大的服務的元數據管理,路由及流量管理策略也能夠幫助您更好的構建更強壯的微服務平臺。

? 動態配置管理
動態配置服務允許您在所有環境中以集中和動態的方式管理所有應用程序或服務的配置。動態配置消除了配置更新時重新部署應用程序和服務的需要。可以更方便的幫助您實現無狀態服務,更輕松地實現按需彈性擴展服務實例。

? 動態 DNS 服務
支持權重路由的動態 DNS 服務使您可以更輕松地在數據中心內的生產環境中實施中間層負載平衡,靈活的路由策略,流量控制和簡單的 DNS 解析服務,動態 DNS 服務也幫你更容易的實現以 DNS 協議為基礎的服務發現,以消除耦合到廠商私有服務發現 API 上的風險。

3、為什麽開源 Nacos
阿裏巴巴為什麽選擇這麽一個時間點開源 Nacos,其背後的思考是什麽,在更早的線下技術活動中,@坤宇也給出了詳細的解讀,坤宇表示主要基於以下幾點:

? 圍繞著 Service 為中心的分布式基礎設施正在變的越來越重要

技術分享圖片

世界正在變的更快,創新和市場競爭的節奏正在變得愈發劇烈,如何超快速實現業務增長成為商業競爭的主旋律,幾乎一夜之間共享單車就火遍全國,不到幾年滴滴就改變了我們的打車方式,騰訊三班倒實現全民“吃雞”,現在企業估值在從 0 到 100 億所需的時間越來越短,而企業的平均壽命從標普的數據來看卻從上世紀 60 年代的 60 年下降到了今天的 15 年,一切都表示創新和競爭的速度和烈度在加強。

另一方面技術基礎設施的敏捷和有效性在商業成功的要素上占據的比重越來越大,雲計算在資源和服務交付模式上的變革,帶來了效率的革命性提升,帶來了更敏捷的基礎設施(創業不用再買機器並找機房托管,從以前的半年準備周期到現在在雲上的小時級創建全套服務),而在應用架構層面,微服務架構模式帶來的靈活性、韌勁,快速組合和聚合原子服務從而創新,給業務快速創新和試錯提供了條件,已經被越來越多的應用平臺證明其有效性,技術基礎設施的更敏捷,給商業的敏捷和商業的競爭優勢提供了基礎。

在今天,無論是雲計算,微服務還是圍繞 Kubernetes 為中心的雲原生,都在強調以“服務”為內核的應用架構模式,如果說 15 年前我們在討論“一切皆是對象”構建單體系統,那麽今天我們就是在談論“一切皆是服務”,10 年前淘寶服務化改造順應了這種趨勢,8 年前微服務架構思想也順應了這個趨勢,今天面向“服務”的各種分布式基礎設施正在變得越來越重要,站在阿裏巴巴 10 年的服務化發展經驗上看,在大規模服務發現和服務治理和服務共享領域現有的開源解決方案是不是都已經非常完美了呢?根據阿裏巴巴服務化走過的這些年的生產經驗來看,我們覺得並沒有。

? 阿裏巴巴在 "共享服務體系" 建設上的經驗可以在各個行業大規模復用

技術分享圖片

阿裏巴巴中臺理念和體系,與雲原生在精神的“道”上完全契合,即“厚技術平臺,薄應用” 支持業務的快速創新與試錯,從而贏得市場,中臺體系倡導雙引擎架構,略過“大數據”不談,但看業務中臺,就是一個大的以“服務”為中心的共享服務平臺,在線服務沈澱業務數據,同步到大數據平臺計算和挖掘,大數據平臺則通過數據回饋,指導業務及服務的創新,支成可沈澱和可共享“服務”體系的服務註冊與服務治理平臺是這個體系的關鍵要素之一。

? “服務治理,服務沈澱、服務共享和服務的可持續發展”是“共享服務體系”的核心價值主張
支持創新從小苗長成參天大樹,服務平臺不斷演進,這一切需要一個強大的服務平臺和服務基礎設施的支撐。

技術分享圖片

? 阿裏巴巴將通過 Dubbo + Nacos 以及一系列開源項目打造服務發現、服務及流量管理、服務共享平臺

技術分享圖片

4、Nacos 與 主流開源生態的關系
Nacos 不會是個封閉的體系,除了對於阿裏開源生態體系如 Dubbo 等自身的支持,也非常強調融入其它的開源生態,這裏就包括 Java 的微服務生態體系 Spring Cloud,Kubernetes/CNCF 雲原生生態體系,正如 Nacos 的未來全景圖展示的那樣

技術分享圖片

? Dubbo + Nacos, 專為 Dubbo 而生的註冊中心與配置中心

在阿裏巴巴生產環境上,Dubbo 和 Nacos 天然就是長在一起的,因為 Nacos 的缺失,傳統的註冊中心解決方案讓 Dubbo 在服務治理、流量治理、服務運營和管理等方面的威力被限制和削弱了,Nacos 的開源和開放會在采用 Dubbo 的用戶環境中釋放這些威力
技術分享圖片

? Nacos 會完全兼容 Spring Cloud

Nacos 會無縫支持 Spring Cloud,為 Spring Cloud 用戶其提供更簡便的配置中心和註冊中心的解決方案,使用 Nacos 不用再僅僅為服務和配置就需要在生產上 hold 住 Eureka,Spring Cloud Config Server,Git,RabbitMQ/Kafka 起碼四個開源產品。

技術分享圖片

? Nacos 支持 Kubernetes DNS-based Service Discovery

在演講中坤宇也表示,阿裏巴巴這麽多年在 VIPServer DNS-based Service Discovery 上的實踐證明,在雲原生時代,應用會更關註與基礎設施的解耦合、多語言乃至多雲的訴求,服務發現的未來一定是基於標準的 DNS 協議做,而不是像 Eureka 或者像 ZooKeeper 這樣的私有 API 或者協議做, 同時在雲上,在服務發現場景中,註冊中心更關註的是可用性而不是數據一致性,所以 Nacos 會首推 DNS-based Servcie Discovery,並優先關註可用性,而這也正是 Nacos 可以無縫融合進 Kubernetes 服務發現體系的原因所在

技術分享圖片

? Nacos 會填補 Spring Cloud 體系與 Kubernetes 體系的鴻溝

未來會有越來越多 java 生態的用戶會選擇 Kubernetes+Spring Cloud 組合,但不幸的是,在服務發現和配置管理的解決方案上,這 2 個體系都采用了完全不同的方案,這給同時采用 2 個體系的用戶在註冊中心和配置中心的需求上帶來了非常大的不必要的復雜性。Nacos 會嘗試填補 2 者的鴻溝,以便在 2 套體系下可以采用同一套服務發現和配置管理的解決方案,這將大大的簡化使用和維護的成本。

技術分享圖片

? Nacos 與 Service Mesh
技術分享圖片

5、Nacos v0.1.0 特性預覽
? 特性預覽

相較於 @坤宇 6 月份對 Nacos v1.0 版本的部分特性給的整體預覽

技術分享圖片

Nacos v0.1.0 還處於剛起步階段,從 CHANGELOG.md 看

技術分享圖片

Nacos v0.1.0 這個版本主要是發布了基本的 Server 端代碼, OpenAPI 以及 JavaSDK.

? 快速開始

從 Nacos 的快速開始來看,Nacos 確實是極易上手,幾乎免安裝,只需要簡單的解壓包, 啟動 server 即可

技術分享圖片

核心的服務註冊 & 發現,配置管理的 Demo API 也非常簡單和直白:

技術分享圖片

從 Nacos 的文檔 (https://nacos.io/#/docs/architecture.md?lang=en-us) 來看,在部署形態上,Nacos 會支持多種部署形態,包括註冊中心與配置中心的分離部署,同時在阿裏雲上提供 Nacos 相應商業化版本的免費的 SaaS 化服務,可以直接在阿裏雲上開通賬戶免費體驗 Nacos 對應的商業產品,在開源與商業化版本差別上,商業化的 ACM (https://www.aliyun.com/product/acm) 以及 EDAS ANS (https://www.aliyun.com/product/edas) 更強調與阿裏雲其它雲服務以及其它 Aliware PaaS 的商業產品的集成體驗以及提供商業服務。

技術分享圖片

6、Nacos 的主要產品裏程碑及計劃
Nacos v0.8.0 - Production Ready Version

在 Nacos 社區 RoadMap 文檔 (https://nacos.io/#/docs/roadmap.md?lang=en-us) 中,也大概公布了 Nacos 後續的 1.0 及 2.0 的主要裏程碑和版本研發計劃, 同時特別強調了 Nacos v0.8.0 Production Ready 之前不建議在生產上大規模使用。

We plan to make Nacos available for production from Nacos 0.8.0. Prior to this release, we recommend that you use it only in development and test environments.

Our current plan is to strive to make Nacos production ready in the 6-8 months. The plan might be adjusted due to various factors, including the priority adjustment according to the voice of the community, but the overall plan is that it should not take longer than one year.

看來因為 Nacos 是脫胎於阿裏巴巴的生產代碼,整體體系可能非常龐雜,在代碼梳理、重構和剝離與內部的耦合上是一個漸進的過程,Nacos 整體研發計劃是在未來 6-8 個月將達到生產可用的狀態。

7、社區化發展,歡迎加入並貢獻社區
DISS is cheap, show me your hand 比吐槽更重要的是搭把手,參與社區一起發展 Nacos

與阿裏巴巴早期的開源不同,阿裏巴巴新一輪的開源包括 RocketMQ,Pouch Container,Dubbo, Nacos, Sentinel 等開源產品更強調社區化的發展與社區的多樣性,鼓勵更多的公司和更多的開發者參與到開源項目中來,依托於社區將產品做得更好,同時一開始就會關註國際化,與國外同類產品的直面競爭。

Nacos 初步計劃,在第一年就吸收至少超過 5 名來自其它公司的 PMC, 至少 10 名的外部 Committer, 而且 Nacos 處在項目開源的初期,有大把的空間讓有想法、有熱情、有能力的開發者參與進來,如果您對 Nacos 這個開源項目感興趣,可以加入 Nacos 社區。你可以通過掃 “超哥” 的微信二維碼,讓“超哥” 幫你加入 “Nacos 社區交流群” 。
技術分享圖片

8、如何貢獻 Nacos 社區?
Nacos 本身在很多方面都急需要社區的幫助,以下幾個方面都是可貢獻和共建的重點方向:

? 在未來的產品和生產計劃中使用、集成、共建 Nacos
? UI 前端及視覺大牛指導 Nacos 管控 UI 建設
? 提供與 Spring Cloud、Kubernetes、Service Mesh 等關聯開源體系融合與集成代碼和項目
? 貢獻多語言客戶端
? 提交需求,proposal,PR
? 貢獻文檔
? 分享自己與 Nacos 相關的故事
? 在 github 上 star Nacos, 鼓勵一下程序員們

原文鏈接

本文為雲棲社區原創內容,未經允許不得轉載。

還在為 Eureka 閉源擔心?Nacos 來了