新形勢下的推送系統架構公升級

2021-09-17 19:15:48 字數 2695 閱讀 9253

一年一度的雙十一大促帷幕即將拉開,作為國內第三方推送服務的領導者,極光(jiguang)會採取哪些措施來應對高併發推送服務?同時,極光基於 ice 打造高可用雲推送平台,其背後有哪些技術細節值得探索?

\\ 為此,我們採訪了負責極光開發者服務後台推送系統,大規模高併發分布式雲計算體系架構總體設計研發的極光首席架構師王丰,他伴隨著極光一路成長,見證了極光推送使用者數量從0到數十億的飛躍,經歷了極光推送在架構上的重構、由 vm 全面轉向容器化、微服務化等過程,在推送上有自己的見解。

\\極光推送所經歷的重構

\\ 軟體系統在開發和演進過程中,經常會經歷較大規模的重構,極光推送服務經歷過三次較大規模的重構:\\

轉向容器化、微服務化的推送技術

\\ 未來,極光在技術架構上由 vm 全面轉向容器化、微服務化是出於什麼考慮?這一步走的算不算晚呢?

\\ 對此,王丰回答說,微服務是一種新的服務設計模式,開發、測試、生產三個環境可以統一,給開發工作帶來了極大的靈活性。容器封裝了所有必須的庫,原來的版本依賴問題不存在了,由單純的開發、運維兩階段合併成開發運維(devops),各方面的效率都將得到很大的提公升。

\\ 極光研發團隊很早就關注容器技術了,那時版本還是0.x。沒有著急使用容器技術,主要是考慮到初始版本 bug 比較多,社群反饋問題也很多,所以就一直在等待容器技術相對成熟和穩定之後再使用。推送提供的是電信級的服務,最重要的指標是穩定、及時;極光的集群規模很大,很多模組都是上百個節點,基礎模組出問題將是災難性的。對於新技術,極光以開放的心態接納吸收,以小心謹慎的方式驗證使用。

\\ 在實現推送功能的同時,安全性也是要極光重點考慮的因素。為了保證安全性,極光推送服務沒有在資料傳輸過程中採用雙層協議方案。王丰說,安全方面,api 全面切換到 https。使用者接入方面,現在已經提供了對稱加密版本。如果還有更高的要求,還可以提供 ssl 連線需求。

\\基於 ice 打造高可用雲推送平台

\\ 極光研發團隊基於 ice 來打造高可用雲推送平台,在擴容縮容、系統配置集中統

一、自動負載均衡等方面更加便利,那是不是雲推送平台有了 ice 就一 勞永逸了?

\\ 僅僅 ice 是不夠的。

\\ ice 是乙個分布式的網路中介軟體,提供了通訊層的完全封裝,能自動處理網路異常,負載均衡,業務部署等基礎性的工作,避免在這些地方重**明輪子,省時省力,讓研發人員的工作變得更輕鬆。

\\ 但是,還是需要做一些調整工作,比如負載的排程策略、計畫支援客戶端語言選擇,以及 ice 物件的設計。推送系統是多種技術結合的綜合體系,需要 快取、需要資料庫、需要 mq 等大量的其它技術配合。

\\ 這裡可以介紹一下 ice 的體系架構(下圖),這個 c/s 架構左邊藍色**部分,是通過 idl 生成的相應平台的介面,各平台下可以直接呼叫;右邊是對應的介面骨架類,用來容納具體的服務端業務邏輯。

\\ ice 本身提供的原生服務如 ice grid,它可以管理 glacier2,極光內部服務節點很多都是在內網,如果需要跨網訪問的時候要跨外網,不可能把成千上萬節點都給它,可以通過這樣做乙個流量的**,就是防火牆穿越。

\\ ice patch2 是乙個自動化的部署,有點像交付,它提供專用的服務,把 server 放在這樣乙個目錄結構裡面更新一下,重新計算數值後發通知,所有的節點會全部更新。在更新的過程中,節點可能會停一下或重啟。正在處理的請求處理完之後,再重新啟動。請求不會在啟動和停止之間丟失,因為 ice 的客戶端會把這個請求正常定位到其他正在執行的節點上,客戶端的呼叫是沒有感知的。  

\\像 dbagent、stc、tagalias 等集群都用到了 ice,在研發過程中能節省不少精力,例如不需要從 socket 做起,通過 idl 簡化協議設計,提高效率;擴容縮容方便;不用再專門處理容災;不同語言之間的差異由框架代勞;系統配置集中統一;自動負載均衡,連線池管理等等。

\\ 雙十一臨近,極光在架構上也會做好充分準備,以確保推送服務後台系統平穩運作,主要措施如下:\\

在開發極光推送服務過程中的一些感悟

\\ 王丰說,儘管業務量巨大,極光的後台架構開發團隊卻始終保持小規模,短小精悍。開發採用敏捷模式,快速迭代驗證,灰度上線。

\\ 最後,王丰也談了乙個比較輕鬆的關於架構師修煉方面的問題,除了開發能力與設計能力以外,「有效溝通」也是架構師很重要的一項技能。和專案經理、銷售、開發、測試人員清楚、精準地表達自己的想法,是不是需要有些技巧?

\\ 王丰說,溝通是天天在做的事情,研發團隊的需求來自產品經理,和銷售商務沒有直接的溝通。和產品經理之間主要是反覆確認有疑問的需求點,比如 a/b 測試,拿到需求之後,開會討論、郵件、面對面的溝通業務流程。

\\ 而對於開發測試人員來說,詳細講解業務的功能點,介面為什麼這麼設計、服務模組劃分的考慮因素、是否需要採用新的技術、使用者將來如何用,不光知其然,還要知其所以然。讓每個開發測試人員將自己的角色轉換成使用者來體驗,確保準確的理解業務流程。

\\嘉賓介紹

新形勢下的移動安全應變之道

移動安全風險演變 移動安全風險演變過程 移動安全解決之道作為國內領先的移動安全服務商,網易易盾推出了集移動應用加固 風險監控及業務反作弊的一站式綜合解決方案,讓企業能夠通過主動防禦的方式,抵禦各種移動端威脅。移動應用加固保護 支援多平台的應用加固保護 靜態保護 目前網易易盾移動應用加固方案已服務上千...

新形勢下的菸草商業資料中心建設

菸草行業是國家財政收入的主要命脈,雖然管理體制相對落後,但菸草行業也需要對大量主題資料進行採集和分析,如工業生產 物流運輸 商業銷售與投放 市場品 與競爭 零售戶管理與經營指導等等。同時,大資料和雲計算的落地,也在不斷衝擊著各行各業。在這樣的新形勢下,菸草行業如何與其他行業 如電信金融等 在技術上齊...

新視角 新形勢下工廠裝置管理的5大誤區

在全球智慧型製造的浪潮下,我國製造業積極公升級轉型,自動化 數位化 網路化水平大大提高,生產裝置日益走向整合化 智慧型化,裝置資料視覺化程度提高 操作更加簡單。但伴隨而來的是裝置的維護修理難度加大 維護成本提高,裝置維護保養的作用也越來越凸顯。未來工廠會是什麼景象呢?筆者在高階製造的代表企業tcl華...