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