1. 程式人生 > >支持Dubbo生態發展,阿裏巴巴啟動新的開源項目 Nacos

支持Dubbo生態發展,阿裏巴巴啟動新的開源項目 Nacos

discovery 思考 不必要 dfa none 通過 可用 open hold

摘要: 上周六的Aliware技術行上海站Dubbo開發者沙龍上,阿裏巴巴高級技術專家郭平(坤宇)宣布了阿裏巴巴的一個新開源計劃,阿裏巴巴計劃在7月份開啟一個名叫Nacos的新開源項目, 在活動演講中,坤宇介紹了這個開源項目的初衷,他表示 “將通過Nacos項目將阿裏巴巴在建設共享服務體系中使用的服務發現、.

貢獻Dubbo生態,阿裏Nacos開源計劃

在上周六的Aliware技術行上海站Dubbo開發者沙龍上,阿裏巴巴高級技術專家郭平(坤宇)宣布了阿裏巴巴的一個新開源計劃,阿裏巴巴計劃在7月份開啟一個名叫Nacos的新開源項目, 在活動演講中,坤宇介紹了這個開源項目的初衷,他表示 “將通過Nacos項目將阿裏巴巴在建設共享服務體系中使用的服務發現、配置及服務管理平臺貢獻給開源社區,通過打造Dubbo + Nacos的經典組合進一步釋放Dubbo在雲原生及Service Mesh時代中,在大規模微服務治理、流量治理、服務集成與服務共享等服務平臺能力建設上的威力,同時Nacos會非常關註對主流開源社區,如Spring Cloud和Kubernetes雲原生體系的無縫對接與支持”。該項目預計在7月中旬之前開放首個測試預覽版本,並計劃在未來6~8個月release的0.8版本開始達到生產可用的狀態。

活動的 視頻回放

什麽是 Nacos /nɑ:k??s/?

Nacos 是阿裏巴巴的新開源項目,其核心定位是 “一個更易於幫助構建雲原生應用的動態服務發現、配置和服務管理平臺”。

技術分享圖片

Nacos 有三大主要功能:

  • 服務發現與服務管理

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

  • 動態配置管理

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

  • 動態DNS服務

支持權重路由的動態DNS服務使您可以更輕松地在數據中心內的生產環境中實施中間層負載平衡,靈活的路由策略,流量控制和簡單的DNS解析服務,幫助您更容易的實現DNS-based服務發現。

為什麽開源 Nacos

阿裏巴巴為什麽選擇這麽一個時間點開源Nacos,其背後的思考是什麽,坤宇也給出了詳細的解讀,在演講中,坤宇表示主意基於以下幾點:

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

技術分享圖片

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

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

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

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

技術分享圖片

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

  • “服務治理,服務沈澱、服務共享和服務的可持續發展”是“共享服務體系”的核心價值主張

支持創新從小苗長成參天大樹,服務平臺不斷演進,這一切需要一個強大的服務平臺和服務基礎設施的支撐。

技術分享圖片

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

技術分享圖片

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

技術分享圖片

Nacos 部分特性預覽

同時在會上,坤宇對Nacos 1.0版本的部分特性給大家做了預覽

技術分享圖片

每個產品都有自己的風格和標簽,坤宇在演講中表示,團隊會通過持續的貢獻和努力,希望未來給Nacos貼上四個方面的標簽

技術分享圖片

在部署形態上,Nacos會支持多種部署形態,包括註冊中心與配置中心的分離部署,同時在阿裏雲上提供Nacos的SaaS化部署服務,感興趣的可以直接在阿裏雲上開通賬戶免費體驗Nacos服務,在開源與商業化版本差別上,商業化的ACM以及EDAS ANS更強調與阿裏雲其它雲服務以及其它Aliware PaaS的商業產品的集成體驗以及提供商業服務。

技術分享圖片

Nacos 的主要產品裏程碑及計劃

羅馬不是一天建成的,吾將上下而求索

因為Nacos是脫胎於阿裏巴巴的生產代碼,整體體系非常龐雜,在代碼梳理、重構和剝離與內部的耦合上是一個漸進的過程,所以@坤宇特別提醒社區在Nacos 0.8達到生產可用狀態前,不建議用於生產,不過可以在開發和測試環境嘗試使用,在0.8版本開始,大家可以放心的用於生產環境,Nacos整體研發計劃是在未來6-8個月將達到生產可用的狀態,未來會很快啟動將Nacos貢獻給開源基金會進一步社區化發展。

技術分享圖片

Nacos 與相關開源產品的對比

君子和而不同

如上面對整體業務及技術形式的判斷,我們可以看到 Nacos 與同類競品的主要不同主要在於理念,@坤宇介紹說,嚴格來說這些市面上的產品並不與Nacos完全對標,只是與Nacos裏面的服務發現部分對標,Nacos的未來更看重在這些產品的基礎上構建服務平臺的能力,而不僅僅是在基礎的服務發現能力上。

技術分享圖片

社區化發展,歡迎加入並貢獻社區

DISS is cheap, show me your hand
比吐槽更重要的是搭把手,參與社區一起發展Nacos

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

Nacos初步計劃,在第一年就吸收至少超過5名來自其它公司的PMC,至少10名的外部Committer, 而且Nacos處在項目開源的初期,有大把的空間讓有想法、有熱情、有能力的開發者參與進來,Nacos本身在很多方面都急需要社區的幫助,這裏面就急需包括前端及UI建設,Spring Cloud、Kubernetes、Service Mesh體系融合與集成,多語言客戶端等各方面的技術領導者的參與,如果您對Nacos這個開源項目感興趣,歡迎加入Nacos社區。

原文鏈接


支持Dubbo生態發展,阿裏巴巴啟動新的開源項目 Nacos