極光筆記|極光消息推送服務的云原生實踐
發布時間:2024-03-07 13:46:49 | 來源:中國網 | 作者:辛文 | 責任編輯:趙茜摘要
極光是多年深耕開發者服務領域的公司,極光推送(JPush),是國內行業的領導者。極光推送(JPush)本質上是一種軟件付費應用程序,結合當前主流云廠商基礎施設,逐漸演進成了云上SaaS服務。做為SaaS服務,必然要考慮云原生架構。因此,在極光推送(JPush)日益成熟的今天,也開啟了云原生架構的演進之路。
云原生簡介
云原生,即Cloud + Native,Cloud表示使用云服務,通常結合傳統云廠商提供的基礎設施;Native表示應用服務從服務設計開始就考慮接入云廠商的基礎設施,充分利用云平臺的彈性和分布式優勢。
云原生技術理論,經多年發展,其主要可概括歸納為以下四點:微服務、DevOps、持續交付和容器化。

其中,
微服務和容器化,主要是指以k8s為底座的微服務和容器化,利用k8s平臺的能力,快速搭建穩定性和可靠性更好的應用。
持續交付和DevOps,則是指以CI/CD為核心,結合各種發布和運維工具,提供小步快跑,持續迭代,持續交付的全套開發、發布及運維的自動化流程,提高運維效率,降低運維出錯風險。
總之,云原生技術,借助云計算平臺(通?;A設施包括IaaS和PaaS)快速發展的東風,再結合虛擬化和分布式框架技術的成熟和普及,傳統SaaS應用走向云原生化已是大勢所趨。
云原生服務的優勢
云原生架構服務之所以備受青睞,主要因為其有如下優勢:
高效:開發人員無需依賴特定硬件,而是使用DevOps流程構建隨時可部署的容器化應用,可在不關閉應用的情況下輕松快速完成服務更新。
高可用:云原生服務通過分布式能力,使應用具備超強的彈性和高可用能力。
降成本:一方面,利用云廠商的基礎設施,不用再購買價格高昂的服務器;另一方面,利用云原生服務的彈性能力,可以快速便捷的動態調整使用的資源,即根據服務的高峰期和低谷期,更合理的使用資源。
云原生消息推送服務改造
為了適配好云原生相關技術,極光推送(JPush)相應也進行了大規模的服務改造。其中,包括微服務架構優化,服務容器化改造,Kubernetes平臺適配,可觀測性改造,以及服務安全改造等等。
微服務架構改造
微服務架構的改造,主要包含以下幾點:
業務架構優化
1.合理的云服務組件切換,如云廠商的存儲和緩存服務,提升系統的穩定性
2.業務流程梳理優化,精簡調用流程
3.服務調用方式優化,合理使用RPC和消息隊列傳遞消息,兼顧性能與消息傳遞解耦能力
服務微服務化改造
1.選擇合適的微服務化框架對服務進行改造,更好的契合云原生架構
2.優化微服務的請求失敗重試,熔斷,過載保護,以及負載均衡的策略,提升系統可靠性
3.選擇合適服務注冊中心,極光服務選擇了nacos,并線上實踐了大規模集群的管理能力
服務容器化改造
1.微服務的容器化改造,去掉如本地緩存,服務進程間共享內存等依賴
2.適配k8s,并搭建可視化平臺管理工具,方便快速支持k8s的線上容器管理和運維
可觀測性改造
服務的可觀測性也是云原生服務重要的一環,可觀測性包括,監控告警、日志和鏈路追蹤三大塊。
監控告警
1.通過Prometheus,自定義業務與資源的上報指標,并制定監控和告警規則
2.通過Grafana,將上報的監控指標整理成可視化監控大盤
3.通過消息,郵件,電話的方式上報不同級別的錯誤告警,及時做好線上問題的跟進
日志
1.搭建ELK的系統化日志管理平臺,方便追蹤和定位線上問題
鏈路追蹤
1.通過opentrace搭建部分關鍵服務間調用的鏈路追蹤,及時關注重要消息的軌跡
2.優化業務層消息生命周期數據,完善服務推送消息的鏈路追蹤統計
服務安全改造
極光在云原生化服務的過程中,也非常重視安全問題,主要做了以下幾點改造:
對API進入極光服務集群的流量,嚴格執行零信任安全策略,對入網中的一切行為不信任,做到始終驗證,持續監測
使用云廠商的DDos防護能力,為線上服務防攻擊做好保障
云原生改造實踐收獲
通過極光服務的云原生化改造的不斷推進落地,JPush服務也收獲頗豐:
穩定性的持續提升,SLA持續保持99.9%以上
開發和運維效率的持續提升,可以使用更少的人力維護好更大規模的服務,通過監控告警等可觀測能力快速便捷的了解系統實時的運行狀態,以及線上問題的及時跟進和修復
更好的關注資源實時使用的情況,及時控制服務成本
未來演進之路
極光推送(JPush),作為國內行業的領導者,也將持續致力于服務好我們的客戶。除了繼續迭代我們的硬產品能力,我們也還會繼續深入的完善服務的云原生化,在服務的易用性、穩定性和效率上做持續的迭代和建設。未來,我們也將在以下幾個方面繼續努力:
基于云原生技術,搭建更完善的服務管理發布平臺,完善好開發和運維工具,更好的提高服務管理運維效率
由于極光消息服務體量較大,我們還會持續優化提升更大量級,更高峰值消息實時推送性能