重磅!阿里巴巴新開(kāi)源項(xiàng)目Nacos發(fā)布第一個(gè)版本,助力構(gòu)建Dubbo生態(tài)(阿里巴巴 開(kāi)源項(xiàng)目)
作者 | 阿里中間件團(tuán)隊(duì)
編輯 | 小智
1 貢獻(xiàn) Dubbo 生態(tài),阿里 Nacos 發(fā)布 v0.1.0 版本
在 6 月份 Aliware 技術(shù)行上海站 Dubbo 開(kāi)發(fā)者沙龍上,阿里巴巴高級(jí)技術(shù)專家郭平 (坤宇) 宣布了阿里巴巴的一個(gè)新開(kāi)源項(xiàng)目 Nacos,在上周五凌晨 (7 月 20 日) 低調(diào)發(fā)布了第一個(gè)版本。
坤宇在上一次線下活動(dòng)中介紹了這個(gè)開(kāi)源項(xiàng)目的初衷,他表示 “將通過(guò) Nacos 項(xiàng)目將阿里巴巴在建設(shè)共享服務(wù)體系中使用的服務(wù)發(fā)現(xiàn)、配置及服務(wù)管理平臺(tái)貢獻(xiàn)給開(kāi)源社區(qū),通過(guò)打造 Dubbo Nacos 的經(jīng)典組合進(jìn)一步釋放 Dubbo 在云原生及 Service Mesh 時(shí)代中,在大規(guī)模微服務(wù)治理、流量治理、服務(wù)集成與服務(wù)共享等服務(wù)平臺(tái)能力建設(shè)上的威力,同時(shí) Nacos 會(huì)非常關(guān)注對(duì)主流開(kāi)源社區(qū),如 Spring Cloud 和 Kubernetes 云原生體系的無(wú)縫對(duì)接與支持”。
該項(xiàng)目目前的計(jì)劃是通過(guò)未來(lái) 6~8 個(gè)月的持續(xù)努力,release 的 0.8 版本開(kāi)始達(dá)到生產(chǎn)可用的狀態(tài),同時(shí)計(jì)劃堅(jiān)持社區(qū)化發(fā)展,在未來(lái)一年里計(jì)劃吸收至少 10 名外部 Committer 和 5 個(gè)外部 PMC.
2 什么是 Nacos /nɑ:k??s/?
Nacos 是阿里巴巴的新開(kāi)源項(xiàng)目,Nacos 發(fā)布 v0.1.0 版本的同時(shí)也發(fā)布了中英雙語(yǔ)的官網(wǎng),從其官網(wǎng)描述來(lái)看,其核心定位是 “一個(gè)更易于幫助構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺(tái)”。
Nacos 有三大主要功能:
-
服務(wù)發(fā)現(xiàn)與服務(wù)管理
在采用以“服務(wù) (Service)”為中心的諸如微服務(wù)及云原生方式的現(xiàn)代應(yīng)用架構(gòu)時(shí),動(dòng)態(tài)服務(wù)發(fā)現(xiàn)至關(guān)重要。 Nacos 同時(shí)支持基于 DNS 和基于 RPC(如 Dubbo/gRPC)的服務(wù)發(fā)現(xiàn),并為您提供服務(wù)的實(shí)時(shí)的健康檢查以防止將請(qǐng)求發(fā)送給不健康的主機(jī),基于 Nacos 您也可以更方便的實(shí)現(xiàn)服務(wù)斷路器。Nacos 提供的強(qiáng)大的服務(wù)的元數(shù)據(jù)管理,路由及流量管理策略也能夠幫助您更好的構(gòu)建更強(qiáng)壯的微服務(wù)平臺(tái)。
-
動(dòng)態(tài)配置管理
動(dòng)態(tài)配置服務(wù)允許您在所有環(huán)境中以集中和動(dòng)態(tài)的方式管理所有應(yīng)用程序或服務(wù)的配置。動(dòng)態(tài)配置消除了配置更新時(shí)重新部署應(yīng)用程序和服務(wù)的需要??梢愿奖愕膸椭鷮?shí)現(xiàn)無(wú)狀態(tài)服務(wù),更輕松地實(shí)現(xiàn)按需彈性擴(kuò)展服務(wù)實(shí)例。
-
動(dòng)態(tài) DNS 服務(wù)
支持權(quán)重路由的動(dòng)態(tài) DNS 服務(wù)使您可以更輕松地在數(shù)據(jù)中心內(nèi)的生產(chǎn)環(huán)境中實(shí)施中間層負(fù)載平衡,靈活的路由策略,流量控制和簡(jiǎn)單的 DNS 解析服務(wù),動(dòng)態(tài) DNS 服務(wù)也幫你更容易的實(shí)現(xiàn)以 DNS 協(xié)議為基礎(chǔ)的服務(wù)發(fā)現(xiàn),以消除耦合到廠商私有服務(wù)發(fā)現(xiàn) API 上的風(fēng)險(xiǎn)。
3 為什么開(kāi)源 Nacos
阿里巴巴為什么選擇這么一個(gè)時(shí)間點(diǎn)開(kāi)源 Nacos,其背后的思考是什么,在更早的線下技術(shù)活動(dòng)中,@坤宇也給出了詳細(xì)的解讀,坤宇表示主要基于以下幾點(diǎn):
-
圍繞著 Service 為中心的分布式基礎(chǔ)設(shè)施正在變的越來(lái)越重要
世界正在變的更快,創(chuàng)新和市場(chǎng)競(jìng)爭(zhēng)的節(jié)奏正在變得愈發(fā)劇烈,如何超快速實(shí)現(xiàn)業(yè)務(wù)增長(zhǎng)成為商業(yè)競(jìng)爭(zhēng)的主旋律,幾乎一夜之間共享單車(chē)就火遍全國(guó),不到幾年滴滴就改變了我們的打車(chē)方式,騰訊三班倒實(shí)現(xiàn)全民“吃雞”,現(xiàn)在企業(yè)估值在從 0 到 100 億所需的時(shí)間越來(lái)越短,而企業(yè)的平均壽命從標(biāo)普的數(shù)據(jù)來(lái)看卻從上世紀(jì) 60 年代的 60 年下降到了今天的 15 年,一切都表示創(chuàng)新和競(jìng)爭(zhēng)的速度和烈度在加強(qiáng)。
另一方面技術(shù)基礎(chǔ)設(shè)施的敏捷和有效性在商業(yè)成功的要素上占據(jù)的比重越來(lái)越大,云計(jì)算在資源和服務(wù)交付模式上的變革,帶來(lái)了效率的革命性提升,帶來(lái)了更敏捷的基礎(chǔ)設(shè)施(創(chuàng)業(yè)不用再買(mǎi)機(jī)器并找機(jī)房托管,從以前的半年準(zhǔn)備周期到現(xiàn)在在云上的小時(shí)級(jí)創(chuàng)建全套服務(wù)),而在應(yīng)用架構(gòu)層面,微服務(wù)架構(gòu)模式帶來(lái)的靈活性、韌勁,快速組合和聚合原子服務(wù)從而創(chuàng)新,給業(yè)務(wù)快速創(chuàng)新和試錯(cuò)提供了條件,已經(jīng)被越來(lái)越多的應(yīng)用平臺(tái)證明其有效性,技術(shù)基礎(chǔ)設(shè)施的更敏捷,給商業(yè)的敏捷和商業(yè)的競(jìng)爭(zhēng)優(yōu)勢(shì)提供了基礎(chǔ)。
在今天,無(wú)論是云計(jì)算,微服務(wù)還是圍繞 Kubernetes 為中心的云原生,都在強(qiáng)調(diào)以“服務(wù)”為內(nèi)核的應(yīng)用架構(gòu)模式,如果說(shuō) 15 年前我們?cè)谟懻摗耙磺薪允菍?duì)象”構(gòu)建單體系統(tǒng),那么今天我們就是在談?wù)摗耙磺薪允欠?wù)”,10 年前淘寶服務(wù)化改造順應(yīng)了這種趨勢(shì),8 年前微服務(wù)架構(gòu)思想也順應(yīng)了這個(gè)趨勢(shì),今天面向“服務(wù)”的各種分布式基礎(chǔ)設(shè)施正在變得越來(lái)越重要,站在阿里巴巴 10 年的服務(wù)化發(fā)展經(jīng)驗(yàn)上看,在大規(guī)模服務(wù)發(fā)現(xiàn)和服務(wù)治理和服務(wù)共享領(lǐng)域現(xiàn)有的開(kāi)源解決方案是不是都已經(jīng)非常完美了呢?根據(jù)阿里巴巴服務(wù)化走過(guò)的這些年的生產(chǎn)經(jīng)驗(yàn)來(lái)看,我們覺(jué)得并沒(méi)有。
-
阿里巴巴在 “共享服務(wù)體系” 建設(shè)上的經(jīng)驗(yàn)可以在各個(gè)行業(yè)大規(guī)模復(fù)用
阿里巴巴中臺(tái)理念和體系,與云原生在精神的“道”上完全契合,即“厚技術(shù)平臺(tái),薄應(yīng)用” 支持業(yè)務(wù)的快速創(chuàng)新與試錯(cuò),從而贏得市場(chǎng),中臺(tái)體系倡導(dǎo)雙引擎架構(gòu),略過(guò)“大數(shù)據(jù)”不談,但看業(yè)務(wù)中臺(tái),就是一個(gè)大的以“服務(wù)”為中心的共享服務(wù)平臺(tái),在線服務(wù)沉淀業(yè)務(wù)數(shù)據(jù),同步到大數(shù)據(jù)平臺(tái)計(jì)算和挖掘,大數(shù)據(jù)平臺(tái)則通過(guò)數(shù)據(jù)回饋,指導(dǎo)業(yè)務(wù)及服務(wù)的創(chuàng)新,支成可沉淀和可共享“服務(wù)”體系的服務(wù)注冊(cè)與服務(wù)治理平臺(tái)是這個(gè)體系的關(guān)鍵要素之一。
-
“服務(wù)治理,服務(wù)沉淀、服務(wù)共享和服務(wù)的可持續(xù)發(fā)展”是“共享服務(wù)體系”的核心價(jià)值主張
支持創(chuàng)新從小苗長(zhǎng)成參天大樹(shù),服務(wù)平臺(tái)不斷演進(jìn),這一切需要一個(gè)強(qiáng)大的服務(wù)平臺(tái)和服務(wù)基礎(chǔ)設(shè)施的支撐。
-
阿里巴巴將通過(guò) Dubbo Nacos 以及一系列開(kāi)源項(xiàng)目打造服務(wù)發(fā)現(xiàn)、服務(wù)及流量管理、服務(wù)共享平臺(tái)
4 Nacos 與 主流開(kāi)源生態(tài)的關(guān)系
Nacos 不會(huì)是個(gè)封閉的體系,除了對(duì)于阿里開(kāi)源生態(tài)體系如 Dubbo 等自身的支持,也非常強(qiáng)調(diào)融入其它的開(kāi)源生態(tài),這里就包括 Java 的微服務(wù)生態(tài)體系 Spring Cloud,Kubernetes/CNCF 云原生生態(tài)體系,正如 Nacos 的未來(lái)全景圖展示的那樣
-
Dubbo Nacos, 專為 Dubbo 而生的注冊(cè)中心與配置中心
在阿里巴巴生產(chǎn)環(huán)境上,Dubbo 和 Nacos 天然就是長(zhǎng)在一起的,因?yàn)?Nacos 的缺失,傳統(tǒng)的注冊(cè)中心解決方案讓 Dubbo 在服務(wù)治理、流量治理、服務(wù)運(yùn)營(yíng)和管理等方面的威力被限制和削弱了,Nacos 的開(kāi)源和開(kāi)放會(huì)在采用 Dubbo 的用戶環(huán)境中釋放這些威力
-
Nacos 會(huì)完全兼容 Spring Cloud
Nacos 會(huì)無(wú)縫支持 Spring Cloud,為 Spring Cloud 用戶其提供更簡(jiǎn)便的配置中心和注冊(cè)中心的解決方案,使用 Nacos 不用再僅僅為服務(wù)和配置就需要在生產(chǎn)上 hold 住 Eureka,Spring Cloud Config Server,Git,RabbitMQ/Kafka 起碼四個(gè)開(kāi)源產(chǎn)品。
-
Nacos 支持 Kubernetes DNS-based Service Discovery
在演講中坤宇也表示,阿里巴巴這么多年在 VIPServer DNS-based Service Discovery 上的實(shí)踐證明,在云原生時(shí)代,應(yīng)用會(huì)更關(guān)注與基礎(chǔ)設(shè)施的解耦合、多語(yǔ)言乃至多云的訴求,服務(wù)發(fā)現(xiàn)的未來(lái)一定是基于標(biāo)準(zhǔn)的 DNS 協(xié)議做,而不是像 Eureka 或者像 ZooKeeper 這樣的私有 API 或者協(xié)議做, 同時(shí)在云上,在服務(wù)發(fā)現(xiàn)場(chǎng)景中,注冊(cè)中心更關(guān)注的是可用性而不是數(shù)據(jù)一致性,所以 Nacos 會(huì)首推 DNS-based Servcie Discovery,并優(yōu)先關(guān)注可用性,而這也正是 Nacos 可以無(wú)縫融合進(jìn) Kubernetes 服務(wù)發(fā)現(xiàn)體系的原因所在
-
Nacos 會(huì)填補(bǔ) Spring Cloud 體系與 Kubernetes 體系的鴻溝
未來(lái)會(huì)有越來(lái)越多 java 生態(tài)的用戶會(huì)選擇 Kubernetes Spring Cloud 組合,但不幸的是,在服務(wù)發(fā)現(xiàn)和配置管理的解決方案上,這 2 個(gè)體系都采用了完全不同的方案,這給同時(shí)采用 2 個(gè)體系的用戶在注冊(cè)中心和配置中心的需求上帶來(lái)了非常大的不必要的復(fù)雜性。Nacos 會(huì)嘗試填補(bǔ) 2 者的鴻溝,以便在 2 套體系下可以采用同一套服務(wù)發(fā)現(xiàn)和配置管理的解決方案,這將大大的簡(jiǎn)化使用和維護(hù)的成本。
-
Nacos 與 Service Mesh
5 Nacos v0.1.0 特性預(yù)覽
-
特性預(yù)覽
相較于 @坤宇 6 月份對(duì) Nacos v1.0 版本的部分特性給的整體預(yù)覽
Nacos v0.1.0 還處于剛起步階段,從 CHANGELOG.md 看
Nacos v0.1.0 這個(gè)版本主要是發(fā)布了基本的 Server 端代碼, OpenAPI 以及 JavaSDK.
-
快速開(kāi)始
從 Nacos 的快速開(kāi)始來(lái)看,Nacos 確實(shí)是極易上手,幾乎免安裝,只需要簡(jiǎn)單的解壓包, 啟動(dòng) server 即可
核心的服務(wù)注冊(cè) & 發(fā)現(xiàn),配置管理的 Demo API
也非常簡(jiǎn)單和直白:
從 Nacos 的文檔 (https://nacos.io/#/docs/architecture.md?lang=en-us) 來(lái)看,在部署形態(tài)上,Nacos 會(huì)支持多種部署形態(tài),包括注冊(cè)中心與配置中心的分離部署,同時(shí)在阿里云上提供 Nacos 相應(yīng)商業(yè)化版本的免費(fèi)的 SaaS 化服務(wù),可以直接在阿里云上開(kāi)通賬戶免費(fèi)體驗(yàn) Nacos 對(duì)應(yīng)的商業(yè)產(chǎn)品,在開(kāi)源與商業(yè)化版本差別上,商業(yè)化的 ACM (https://www.aliyun.com/product/acm) 以及 EDAS ANS (https://www.aliyun.com/product/edas) 更強(qiáng)調(diào)與阿里云其它云服務(wù)以及其它 Aliware PaaS 的商業(yè)產(chǎn)品的集成體驗(yàn)以及提供商業(yè)服務(wù)。
6 Nacos 的主要產(chǎn)品里程碑及計(jì)劃
Nacos v0.8.0 – Production Ready Version
在 Nacos 社區(qū) RoadMap 文檔 (https://nacos.io/#/docs/roadmap.md?lang=en-us) 中,也大概公布了 Nacos 后續(xù)的 1.0 及 2.0 的主要里程碑和版本研發(fā)計(jì)劃, 同時(shí)特別強(qiáng)調(diào)了 Nacos v0.8.0 Production Ready 之前不建議在生產(chǎn)上大規(guī)模使用。
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.
看來(lái)因?yàn)?Nacos 是脫胎于阿里巴巴的生產(chǎn)代碼,整體體系可能非常龐雜,在代碼梳理、重構(gòu)和剝離與內(nèi)部的耦合上是一個(gè)漸進(jìn)的過(guò)程,Nacos 整體研發(fā)計(jì)劃是在未來(lái) 6-8 個(gè)月將達(dá)到生產(chǎn)可用的狀態(tài)。
7 社區(qū)化發(fā)展,歡迎加入并貢獻(xiàn)社區(qū)
DISS is cheap, show me your hand 比吐槽更重要的是搭把手,參與社區(qū)一起發(fā)展 Nacos
與阿里巴巴早期的開(kāi)源不同,阿里巴巴新一輪的開(kāi)源包括 RocketMQ,Pouch Container,Dubbo, Nacos, Sentinel 等開(kāi)源產(chǎn)品更強(qiáng)調(diào)社區(qū)化的發(fā)展與社區(qū)的多樣性,鼓勵(lì)更多的公司和更多的開(kāi)發(fā)者參與到開(kāi)源項(xiàng)目中來(lái),依托于社區(qū)將產(chǎn)品做得更好,同時(shí)一開(kāi)始就會(huì)關(guān)注國(guó)際化,與國(guó)外同類產(chǎn)品的直面競(jìng)爭(zhēng)。
Nacos 初步計(jì)劃,在第一年就吸收至少超過(guò) 5 名來(lái)自其它公司的 PMC, 至少 10 名的外部 Committer, 而且 Nacos 處在項(xiàng)目開(kāi)源的初期,有大把的空間讓有想法、有熱情、有能力的開(kāi)發(fā)者參與進(jìn)來(lái),如果您對(duì) Nacos 這個(gè)開(kāi)源項(xiàng)目感興趣,可以加入 Nacos 社區(qū)。你可以通過(guò)掃 “超哥”的微信二維碼,讓“超哥” 幫你加入 “Nacos 社區(qū)交流群” 。
8 如何貢獻(xiàn) Nacos 社區(qū)?
Nacos 本身在很多方面都急需要社區(qū)的幫助,以下幾個(gè)方面都是可貢獻(xiàn)和共建的重點(diǎn)方向:
-
在未來(lái)的產(chǎn)品和生產(chǎn)計(jì)劃中使用、集成、共建 Nacos
UI 前端及視覺(jué)大牛指導(dǎo) Nacos 管控 UI 建設(shè)
提供與 Spring Cloud、Kubernetes、Service Mesh 等關(guān)聯(lián)開(kāi)源體系融合與集成代碼和項(xiàng)目
貢獻(xiàn)多語(yǔ)言客戶端
提交需求,proposal,PR
貢獻(xiàn)文檔
分享自己與 Nacos 相關(guān)的故事
在 github 上 star Nacos, 鼓勵(lì)一下程序員們
今日薦文
點(diǎn)擊下方圖片即可閱讀
WebIDE:在瀏覽器中寫(xiě)代碼的時(shí)代即將來(lái)臨?
極客時(shí)間大咖留聲機(jī),100 位 CTO 的成長(zhǎng)心經(jīng)
聽(tīng)聽(tīng)技術(shù)之外,身經(jīng)百戰(zhàn)的技術(shù)大牛們都走過(guò)的哪些路。