我們總結了 3 大使用建議,並首次公開 Nacos 3.0 規劃圖 | Nacos 開源 4 週年

作者:於懷

Nacos 是什麼?

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母簡稱,定位於一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。從 2018 年 7 月開始宣佈開源以來,已經走過了第四個年頭,在這四年裏,備受廣大開源用戶歡迎,共收穫 23.3K 的 star 數10.3K 的 Fork 數,在開源中國發布的 2021 年度 OSC 中國開源項目評選中,Nacos 被評爲雲原生領域人氣指數 Top5 的項目,發佈電子書《Nacos 架構與原理》6w+閱讀量,2w 下載量,發佈半年的時間裏在阿里雲藏經閣歷史下載榜前十。Nacos 在社區共同的建設下不斷成長,逐步的開始幫助用戶解決實際問題,助力企業數字化轉型,目前已經廣泛的使用在國內的公司中,根據微服務領域調查問卷,Nacos 在註冊配置中心領域已經成爲國內首選,佔有 50%+國內市場份額,被頭部企業廣泛使用!

《2022 中國開源發展藍皮書》由中國開源軟件推進聯盟(COPU)牽頭,聯合中國開發者網絡(CSDN)、北京開源創新委員會、開放原子開源基金會、中國電子信息產業發展研究院、中科院軟件研究所等 85 家企業及行業機構、120 多位開源專家和志願者共同協作編撰完成,旨在全面展現當前中國開源發展的全景圖,爲國家政府相關管理部門、科研院所、科技企業以及開源從業者提供更多的理論參考和數據支撐,進一步助力我國開源生態的蓬勃發展。

根據最近剛發佈的《2022 中國開源發展藍皮書》報告中顯示,Github 中國項目活躍度 TOP 20,Nacos 排名全國第六,作爲基礎類型雲原生中間件,能有如此活躍度是非常不容易的,在上一年度《2021 中國開源發展藍皮書》中,Nacos 排名全國第十,也表現 Nacos 不僅僅維持高的項目活躍度,而且項目關注度和活躍度還在逐步提高。

1.png

2.png

同時阿里巴巴在國內企業中開源影響力排行第一,在《2022 中國開源發展藍皮書》中介紹:“阿里巴巴是國內參與開源技術生態建設的企業典範。自 2011 年至今,阿里累計開源項目超過 3000 個,代表性的項目包括龍蜥操作系統、Apache RocketMQ、Apache Dubbo、Spring Cloud Alibaba、 Nacos、Seata、PolarDB-X、PolarDB for PostgreSQL 等”。

Nacos 是阿里巴巴微服務領域開源項目的活躍度排行第一,也得益於開源協作模式,並且在 Nacos 中有大量國內外知名公司的核心貢獻者,其中也包含就職在騰訊、華爲、小米等等知名企業的同學,也正是社區整體的貢獻者和用戶在幫助 Nacos 成長,讓 Nacos 逐步完善生態,支持幾乎所有主流語言,整合更多開源生態,也正是用戶和社區貢獻者讓 Nacos 爲企業數字化轉型首選產品。

3.png

Nacos 使用上的 3 點重要建議

Nacos 版本選擇

Nacos 經過 4 年的發展,目前在大版本演進上已經到了第二代 Nacos 架構,即 Nacos 2.x 版本,Nacos 2.x 版本是基於 Nacos 1.x 中用戶反饋使用習慣以及產品演進方向而構建的產品能力,中間包含了比如一致性算法升級,對性能的 10 倍提升,以及支持插件化來滿足社區的定製訴求。並且保障了很好的兼容性,在服務能力上 Nacos 2.x 是完全兼容 Nacos 1.x 的協議,也就是 Nacos 2.x 服務端是完全兼容 Nacos 1.x 的客戶端。

4.png

在基本能力上,Nacos 2.x 一致性協議複用了阿里在該領域最佳實踐,以長連接爲基礎,減低通信損耗,基於 Distro 協議原有協議進行升級,在存儲模型、保活模型上進行了重構,並且用推送機制代替了之前的輪訓機制,進一步提升了產品的高可用以及穩定性,整體也複用了阿里百萬實例的基礎模型,在 CAP 理論基礎上,根據場景來去選擇最適合的協議,貼合場景來平衡一致性、高可用以及分區容災,做到服務發現以及配置管理每個場景下,都做到穩定性、高可用、高性能的保障。

5.png

在拓展能力上,Nacos 2.x 版本開始支持插件化能力,基於插件化是更方便的支持用戶各種場景,很多用戶公司內部有完善的體系基於 Nacos 可以簡單的改造就可以融合進入,在鑑權、配置加解密場景都可以做到按照用戶需求進行定製,並且給出默認的開源實現供用戶選擇,加解密爲例,開源給出的默認實現是基於 AES,用戶也可以進行自定義。並且目前數據庫的插件已經在路上,後續還會在安全等更多方面支持可插拔的插件化能力。

6.png

Nacos 支持還能支持哪些場景

Nacos 基本核心能力是面向於整體分佈式的服務註冊與發現,以及分佈式節點配置管理,使用領域可以說是非常廣泛的,比較常用的包含,微服務領域、高可用領域、內容領域以及數據庫領域等,目前在微服務領域 Nacos 基本能力使用最廣,微服務領域定位在一站式解決了用戶應用的尋址、流量、配置場景服務平臺,在高可用領域 Nacos 積累了大量的經驗,可以實現大量降級、容災、多活的高可用場景,也可以支持內容分發以及數據庫分庫分表、主備切換等場景的基礎能力,可以說分佈式的場景下,基本都可以跟 Nacos 進行構建,也幫助業務後續拓展留足了準備。

7.png

Nacos 排查問題最佳實踐

註冊配置中心在分佈式節點交互中起着重要的作用,在業務分佈式場景出現問題的時候需要快速進行診斷,判斷是否是註冊配置中心出現了問題,還是業務層的問題。

8.png

在註冊中心中,服務發現是業務排查問題第一優先級需要定位的,服務發現具體對應的就是服務地址數據是否同步到了業務節點上,那在 Nacos 場景上,推送記錄就是最關鍵的一個特性能力,這部分能力可以通過 Nacos 日誌查詢到,目前 Nacos 社區已經開始計劃設計事件中心來支撐這部分能力,爲了更好的演示,這裏也通過阿里雲微服務引擎 MSE 展現一下白屏化的推送軌跡能力,用戶可以通過服務名稱或者客戶端 IP,進行查詢變更的時間以及變更的內容,就可以快速明確當前註冊中心是否存在問題,並且能幫住業務進一步定位具體原因。

9.png

在配置中心鏈路,同樣存在第一時間定位的問題,這裏也通過阿里雲微服務引擎 MSE 的最佳實踐,推送軌跡能力展現排查的思路,可以通過配置名稱或者訂閱者客戶端 IP 進行查詢配置的變更時間,以及推送時間,以及推送內容 MD5 值進行匹配。

10.png

並且在分佈式配置管理領域,通過補全推送軌跡能力,加上已經支持的歷史版本查詢能力,可以幫助業務全流程的觀測配置的生命週期。

11.png

關於註冊配置中心排查問題的思路上,總結是兩個重點,一是數據變更確認,二是快速確定關係並且進行恢復。大多數場景如果是業務變更引起的,一定要第一時間進行回顧變更,避免給業務帶來問題。在穩定性要求比較高的領域,建議業務體系上面向 1-5-10(故障 1 分鐘發現,5 分鐘上線處理,10 分鐘恢復)建設穩定性,這部分也是比較通用的能力建設,這裏就不進行詳細拓展,後續有機會可以單獨聊一下。

Nacos 規劃

Nacos 已經經歷了兩個重要階段,初創期和高速發展期,目前正處於被大規模使用的 Nacos 的第三階段是成爲基礎設施,需要面向於基礎設施進行演進,幫助企業數字化轉型,深度的擁抱各個領域內的場景,並且更深度的幫助企業解決問題。Nacos 社區目前面向於第三階段,開始籌備 Nacos 3.0 架構設計進行規劃討論,並且逐步開始進行落地。

目前針對 Nacos 3.0 的建設規劃大圖主要包含三部分,第一部分是開源品牌和社區的升級,主要是面向於社區建立更緊密的聯繫。第二部分是面向更多生態進行深度融合,包含 K8s 數據整合、以及多生態數據打通,第三部分是最基礎的部分,產品能力升級,基於 Nacos2.x 的協議進行增強,並且支持統一控制面、多數據中心等基礎能力,用於支撐 Nacos 3.0 生態建設以及品牌升級。

目前 Nacos 3.0 部分已經隨着社區核心貢獻者開展中,大多數還在規劃階段,後續會通過 Github issues 進行開放,隨之會打上 Nacos 3.0 的標籤,歡迎大家進行領取一起參與到 Nacos 3.0 的貢獻。

12.png

參加開源建議

最後部分整合我個人意見,向沒有參與過開源的同學給出一些參與開源的建議,首先我認爲開源對於開發者以及社區貢獻都是非常有益的,如果你有時間並且也想參與開源,那我建議你從以下四個步驟進行深入:

第一步找到自己感興趣的方向,這個點比較重要,會影響你後續貢獻的持久程度,當然這個也是在逐步摸索中的,不過如果對於方向確認好後,應對的產品列表選擇就會比較明朗了,在這個步驟考慮興趣是我首要建議的,其次我建議,也可以考慮當前項目一些詳細信息,重點考慮是否能幫助個人把價值的放大,使用範圍越廣的項目就越能讓你的貢獻在社會價值放大,也正向會提高成就感。

第二步是熟悉項目和產品,找到了方向和項目之後,就可以開始着手熟悉當前產品的細節,熟悉當前項目的運營機制,以及面向於產品開始接觸對應領域問題,領域問題最後會沉澱成爲你對這個領域的經驗。

第三步其實就可以貢獻開源了,這一個步驟其實面向於前兩步驟是可以適當提前並行做,關鍵是從小問題入手做起,這樣可以幫助你在前兩個步驟中更快的找到感覺,也能從小問題開始幫助他人,在社區中建立個人影響力。

第四步其實是水到渠成的,面向於活躍的社區,當你足夠熟悉該領域該產品之後,有了足夠的貢獻,就會在開源中逐步主導社區的決策,也能在社區中幫助更多的人發展共建。

13.png

上邊是對個人貢獻開源產品流程建議,適用於大多數開源項目的貢獻。額外在開源上我覺得 Nacos 是不錯的選擇,首先產品定位是比較基礎,能幫助開發者沉澱更通用的領域能力,社區活躍度能保持全國第六,並且在微服務領域已經被廣泛使用,能幫助個人很好的放大價值。

再就是 Nacos 的熟悉產品也會比較簡單,Nacos.io 官網可以幫助你快速入門,也有 Nacos 電子書免費下載幫助你深度瞭解 Nacos 架構設計。貢獻開源上可以從 Nacos 社區倉庫中 good first issues 開始,跟着產品演進的方向,從小事開始在社區中發聲,最後在 Nacos 社區有很多核心模塊需要主導者,並且在社區中成爲核心貢獻者有社區投票權利,主導未來 Nacos 發展方向,並且作爲社區核心成員,會有很多線上線下分享的機會,幫助個人以及企業建立更多社會影響力。總之在開源領域其實只要你願意熟悉,一定會有所收穫,祝願每一位開發者在自己喜歡的領域能做出你想要的產品。最後感謝 Nacos 開源社區每一位同學!

MSE 註冊配置首購 8 折,首購 1 年及以上 7 折。MSE 雲原生網關預付費全規格享 9 折優惠。點擊此處,即享優惠!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章