迎接2023 | 北極星開源一週年,感恩禮傾情相送
北極星(Polaris Mesh)是開源的一體化服務治理平台,致力於解決分佈式和微服務架構中的服務管理、流量管理、故障容錯和配置管理問題,提供業務監控、流量監控、事件中心和操作記錄等全方位的可觀測性能力,幫助用户快速低門檻構建微服務。
截止目前,在社區各位開發者的支持下,北極星和 Spring Cloud Tencent 社區經過一年的開源運營,一共收到 5200+ Star、1400+ Fork,有 2400+ 社區愛好者加入了社區交流羣。積累了好未來、海管家等多家企業用户的案例。在這裏非常感謝使用北極星的用户,以及社區開發者和愛好者的支持。藉此機會,我們一起回顧開源一週年以來的發展歷程和未來的發展方向。
為什麼要開源北極星
企業業務架構的穩定運營離不開服務治理,業界也有一些常用的服務治理套件,比如istio,sentinel等。但是,用户在使用這些服務治理套件時候,往往會遇到以下問題:
(1)部分組件只提供治理規則的管理能力,但是,用户需要完整用起來,還需要自己去解決服務數據的存取(註冊中心),配置數據存取(配置中心),以及治理規則的可視化配置(web控制枱)的問題。
(2)部分組件與特定基礎設施和具體數據面(k8s+Envoy)綁定,沒法覆蓋非k8s的應用、以及使用Spring Cloud等服務框架的應用直連接入場景。
(3)部分組件服務治理功能不齊全,缺少動態路由、灰度發佈等微服務核心功能。
為了解決上面的問題,降低用户開發及運營微服務的門檻。北極星為服務治理提供一站式解決方案,覆蓋服務註冊中心、服務網格和配置中心的功能。用户只需要部署一套北極星,即可在任意的基礎設施上,完整的使用北極星提供的路由灰度、熔斷降級、限流鑑權等功能,快速構建微服務架構。
應用一般會基於服務框架進行構建微服務架構,在 Java 生態中,Spring Cloud 仍然是目前國內最主流的服務框架。為了讓 Spring Cloud 用户能夠更快速更全方位接入騰訊的開源微服務套件,也為了讓社區應用開發者可以多一個國產的 Spring Cloud 套件的選擇。
騰訊在同期也將 Spring Cloud Tencent 進行了開源 ,默認對接了北極星強大的微服務能力,也是國內首個支持了 Spring Boot 3.0 及 JDK17 的 Spring Cloud 套件。並且提供了SDK 以及 Java Agent 等多種接入方式,供用户可以以零代碼侵入的方式,快速將 Spring Cloud/Spring Boot 應用改造成微服務架構。
除 Spring Cloud 以外,北極星也為多款開源的多語言服務框架提供了原生的接入適配,比如 dubbo,gRPC 等,以支持所有應用的低成本接入。
一週年歷程
項目演進
北極星開源的這一年間,一共發佈了35個 release,關閉了 300+ issues。在這個過程中,我們在註冊發現、服務治理、配置中心這幾個方面,進行了全方位的升級。下面會分別進行介紹:
註冊發現優化
由於北極星在架構上支持水平擴展,集羣整體性能可以通過水平擴展提升,但是為了能節省用户的成本,提升單機版用户的體驗,我們在 1.10.0 版本,為了提升單機性能,對控制面的整體邏輯進行以下優化:
優化宂餘數據層交互:老版本北極星,為了保證服務數據一致性,單次數據的寫入,會進行多次存儲層查詢進行依賴條件校驗,新版本通過緩存+補償的方式,去掉了重複校驗的邏輯,與存儲層交互優化到只有寫入的1次。
註冊流程異步化:將客户端的同步註冊請求轉換為異步註冊請求,返回給客户端響應不在需要等待存儲層的處理結果。同時,通過自動心跳上報重註冊的方式,解決異步化後可能帶來的一致性的問題。
性能壓測:我們針對北極星控制面進行了壓測,在8C16G規格下,服務發現的TPS相比同類註冊中心有較大的提升。
服務治理的易用性提升
服務治理是北極星的核心能力之一,在開源的過程中,為了降低用户使用服務治理的成本,北極星在以下方面進行了優化:
訪問限流:從交互和限流精細化層面進行優化,支持針對請求參數、接口、主調服務的維度進行精細化限流,也同時支持網關層限流和微服務限流。
動態路由:從場景化上進行了優化,從微服務的使用場景上,細分了測試環境路由、灰度發佈等場景,並且對於無法覆蓋的場景,通過通用的自定義路由來進行覆蓋,能完全滿足所有的路由調度相關的場景訴求。
熔斷降級:從功能和交互上進行了補齊,支持了服務級、接口級、分組級等多級熔斷策略,同時支持故障探測規則,通過持續的故障探測,可以在流量小的情況下,及時發現並剔除業務中故障的實例,確保潮汐到來時業務的可用性。
周邊生態融入
北極星提供了多語言統一的服務治理 SDK(Java,Go,C++,PHP等),接入北極星的應用無需再重複開發服務治理相關的邏輯和算法。而應用往往是基於服務框架來進行構建的,業界大部分開源服務框架都提供了基礎服務治理的能力,而各個框架在實現細節上,從配置到算法上存在一定的差異。
為了統一用户的服務治理體驗、簡化用户的接入成本,在各個開源框架社區開發者的協同下,北極星也通過提供框架生態組件的方式,支持服務框架用户的無縫接入。
Spring Cloud框架:騰訊開源的Spring Cloud Tencent,通過實現Spring Cloud原生的攔截器,集成北極星的SDK,使得Spring Cloud用户可以無感的方式接入北極星微服務體系。
Dubbo框架:與Spring Cloud類似,北極星也提供了dubbo以及dubbogo框架的原生擴展,dubbo用户可以通過變更配置的方式接入北極星,無需進行代碼的修改。
其他框架:除Spring Cloud和dubbo外,北極星也支持與gRPC,Cloudwego/kitex,kratos等服務框架對接,未來也會繼續加強與其他社區合作,支持更多的服務框架接入。
存量應用無縫遷移
為了提升用户的接入體驗,支持更多企業用户可以通過更低成本,更少改造的方式接入。北極星針對存量 Spring Cloud 用户的遷移做了優化,通過接口兼容、同步工具、JavaAgent 等多種方案,支持原有 Spring Cloud 用户零代碼改造接入。
對於 Spring Cloud + Eureka 用户遷移:北極星完全兼容 Eureka 接口,通過集羣數據同步完成遷移。
對於 Spring Cloud + Nacos 用户遷移:北極星提供同步工具,支持 Nacos 與北極星之間雙向數據同步,同時也提供 JavaAgent,支持已遷移用户無縫接入北極星控制面。
展望未來
未來北極星和 Spring Cloud Tencent ,會繼續在場景化功能、開源生態融合這2方面進行建設和精細化打磨:
場景化功能:當前北極星和 Spring Cloud Tencent ,提供的是垂直的原子能力,而用户在使用過程中,面對的是業務場景,業務場景和垂直功能之間會存在一定的理解和使用成本。比方説,用户需要進行灰度發佈,這個過程中,對於灰度分組的管理、灰度的路由、灰度計劃等功能,需要結合北極星的多個原子功能來實現,存在一定操作門檻。因此,未來會提供場景化的操作體驗,會針對用户常用的業務場景(灰度發佈、過載保護等),提供一體化的配置及接入體驗,進一步降低用户接入成本。
開源生態融合:未來微服務的應用生態,無論是在開發語言,或者服務框架上,會越來越多樣化。因此北極星會在繼續完善當前主流的服務框架的功能基礎上,積極與社區的其他服務框架及基礎設施做進一步的整合,以覆蓋更多的微服務應用。同時在多語言方面,也會在Python,Rust等語言上進行更多的探索,希望社區更多的同學能加入一起建設。
感謝貢獻者
在開源的這一年時間中,北極星及 Spring Cloud Tencent 社區產生了 30+ 的committer:weihubeats, onecer、alexwanglei、lhiamgeek、shichaoyuan、astronaut0131 等,這些同學在文檔建設、事件中心、K8S適配、MTLS流量安全、動態配置管理等核心功能實現中做出了突出貢獻。
除此之外,社區還收穫了大量貢獻者,目前已有 100+ Contributors,非常感謝大家的付出!相信有大家的支持,我們可以讓北極星和 Spring Cloud Tencent 的產品和生態更加完善!!!
最後,也歡迎更多的開發者加入北極星和 Spring Cloud Tencent 的貢獻者隊伍,一起打造業界領先的雲原生服務治理中心!
一週年活動
為了感謝大家在北極星 和 Spring Cloud Tencent 社區的貢獻,我們為每一位commitor 準備了專屬文化衫。
其他小夥伴也不用着急,PolarisMesh 和 Spring Cloud Tencent 社區將從代碼/issue 提交者以及任務認領者中抽選出50位貢獻者,獻上社區精心準備的文化衫/公仔。
歡迎大家給我們反饋建議、認領任務~~戳這裏:
北極星:
https://github.com/polarismesh/polaris/issues
SCT:
https://github.com/Tencent/spring-cloud-tencent/issues
活動時間:2022.12.20-2023.1.7
本文作者:
單家駿:騰訊雲中間件團隊技術專家,北極星開源社區PMC成員
李佳南:騰訊雲中間件團隊高級產品經理
- Apache Pulsar 技術系列 - Pulsar 總覽
- 解決創新業務的三大架構難題,央廣購物用對了這個關鍵策略
- 詳解 Apache Pulsar 消息生命週期
- 8年服務百萬客户,這家SaaS公司是懂雲原生的
- 基於騰訊雲微服務引擎(TSE) ,輕鬆實現雲上全鏈路灰度發佈
- 騰訊雲基於 Apache Pulsar 跨地域複製功能實現租户跨集羣遷移
- 面向異構技術棧和基礎設施的服務治理標準化
- Pulsar 在騰訊雲的穩定性實踐
- 迎接2023 | 北極星開源一週年,感恩禮傾情相送
- Apache Pulsar 技術系列 – 基於不同部署策略和配置策略的容災保障
- 輕量級SaaS化應用數據鏈路構建方案的技術探索及落地實踐
- 微服務架構下路由、多活、灰度、限流的探索與挑戰
- PolarisMesh北極星 V1.11.3 版本發佈
- 千億級、大規模:騰訊超大 Apache Pulsar 集羣性能調優實踐
- Apache Pulsar 系列 —— 深入理解 Bookie GC 回收機制
- 騰訊雲微服務引擎 TSE 產品動態
- 千億級、大規模:騰訊超大 Apache Pulsar 集羣性能調優實踐
- TSF微服務治理實戰系列(三)——服務限流
- 如何解決 Spring Cloud 下測試環境路由問題
- TSF微服務治理實戰系列(二)——服務路由