摘要:?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, 鼓勵一下程序員們
本文為云棲社區原創內容,未經允許不得轉載。
評論
查看更多