電信行業業務支撐系統的異地雙活解決方案思考

背景

      電信行業在1G/2G時代,業務支撐系統以分散的單體系統架構爲主,採用IOE高端硬件支撐。3G/4G時代開始了集約化的進程,業務支撐系統轉爲傳統集中系統,以服務化、分佈式和容器化等核心技術爲主。未來5G時代,電信行業均以互聯網化爲目標演進,以“平臺+應用”的模式,業務支撐系統均向雲化改造,以分佈式架構和能力共享爲目標。
      隨着電信業務的不斷增長,集中系統的規模也不斷擴大,以某運營商的核心業務支撐系統統計,X86主機量自系統建設初期的182臺增長至4450臺,增長量超過2445%倍,單數據中心基本已到達容量極限,但當業務體量大到一定程度時,單個數據中心已經無法滿足裝下整個系統,存在單地域資源瓶頸的問題。業務的增長帶來了業務流量的不斷增大,80GB出口網絡鏈路帶寬峯值使用量90%,業務峯值流量超過鏈路網絡帶寬。業務影響的範圍也隨着集中系統的模式日益擴大化,故障、變更造成的業務中斷影響的涉及全部業務區域的全部用戶,數據安全、服務容錯、機房容災直接影響系統的高。

傳統容災解決方案的不足

      傳統的容災解決方案以異地冷備、同城雙活、兩地三中心最爲代表,但其均有各自不足。異地冷備方案簡單、對業務侵入少,但不提供在線服務,應用和數據都是冷備,當發生故障時難以保證切換的可靠性。同城雙活方案已有一定的提升,數據採用熱備模式,應用分擔,數據可讀,但只能同城部署,也就是系統的兩個節點必須在100公里以內,無法支持跨省間長距離的無縫切換。兩地三中心方案是以上二種方案的結合體,但是勢必會造成建設成本的浪費,關鍵時刻仍不敢切換,數據單點寫也存在瓶頸。綜上,傳統容災解決方案存在這成本高,資源浪費,地域限制,切換可靠性差的一些列問題

異地多活的介紹

       異地多活,英文Multi-Site High Availability,顧名思義就是分佈在異地多個站點同時對外提供服務。與傳統的災備的最主要區別就是“多活”裏的所有站點都是同時在對外提供服務的,具體有以下幾點不同:
1.傳統的災備中心平時不提供服務,關鍵時刻無法確定切換到災備中心是否可以切換成功;
2.傳統的災備中心平時不提供服務,整個災備資源會處於浪費狀態,成本比較高;
3.傳統的災備中心平時不提供服務,所以平時提供服務的數據中心還停留在單地域,當業務體量大到一定程度時,這種模式無法解決單地域資源瓶頸的問題;
      “異地雙活”和“異地多活”僅是數據中心數量的差別,但“同城雙活”則是完全不同的技術。同城雙活,整個模式是應用層是雙活的,兩邊的業務都有,用戶訪問過去都會處理請求,但是存儲層都是主備的,存儲主在A機房,備在B機房,不會同時用,嚴格意義上來講,這裏僞雙活,因爲數據不是真正意義的雙活。採用哪一種,完成取決自己的多個數據分佈在同城還是異地,以及以後的業務擴展方向問題。
     異地多活本質上就是通過自上而下的全域流量隔離來解決的了數據同步的延時無法突破物理限制的問題,但異地多活也不是銀彈,他也有其適合場景,且不同的場景來做異地多活的成本也不一樣。

異地多活思路

     多數據中心實現業務分擔,應用系統在多個數據中心同時部署,各數據中心業務同時在線對外提供服務。其關鍵點在於按規則的業務流量路由和數據的雙向同步。其中按規則的流量路由要求按照業務數據維度進行數據切片,作爲流量路由的規則,業務調用按照數據切片進行支撐,服務不跨數據中心調用;數據雙向同步則要求各數據中心的數據庫同時在線讀寫,且數據雙向同步,多數據中心實現數據最終一致。那麼這樣的需求,異地多活不只需要解決數據庫主備的問題,還需要在現有的中間件、數據庫等系統組件上進行相應的服務路由、調用和集羣冗餘設計和支撐,此外還需要結合業務特點進行合理的規劃和設計,以滿足多數據中心業務同時在線。

異地多活的設計原則

      1.選取分區維度:選擇一個數據維度來做數據切片,進而實現業務可以分開部署在不同的數據中心
      2.確定改造範圍:選擇與所選數據維度相關的業務範圍來做多活
      3.單元封閉:儘量讓調用發生在本單元,儘量避免跨數據中心的調用,一方面爲了用戶體驗,本地調用RT更短,另一方面爲了穩定性,防止一個數據中心出了問題,其它數據中心受影響
      4.無法接受最終一致的數據要進行單點寫:對於一些實時性要求極高,無法接受最終一致的數據只能進行單點寫

單元化設計

      結合新客服系統的業務特點和互聯網行業對於異地多活技術的研究成果,將新客服應用進行梳理和分析,將其劃分成單元化服務、中心服務、共享服務:
      1.單元服務:服務的調用必須按照單元規則來進行調用,根據RouterId和業務類型來進行正確的選址和調用保護。只有服務所在單元和RouterId歸屬單元一致,服務才能正常發起調用。單元服務調用遵循單元封閉的原則。
      2.中心服務:無法接受最終一致的服務應標記成強中心服務。無法按照單元規則劃分的服務,一般作爲中心服務部署在全局單元。中心服務應該儘量的少,中心服務存在跨單元調用的 rt 延時,需要衡量業務是否可接受。
      3.共享服務:無單元維度屬性,但又被單元服務依賴的服務,一般是隻讀的,如字典服務,公共參數等,各個單元提供的服務功能一致。

單元化服務調用

      異地雙活通過將新客服業務數據分片、異地單元化部署、單元間數據雙向同步和入口統一控制,實現新客服單元化業務異地多活。
      接入層統一控制:用戶流量通過智能DNS按地域將流量發送到相應的單元數據中心;流量進入單元數據中心後,進入多活接入層時,接入層按照路由規則對流量進行校驗,對不正確的流量進行糾錯,並重定向到正確的單元數據中心
      應用層單元化部署:根據路由規則對服務調用進行糾錯和寫入保護,實現封閉的訪問結構,實現單應用中心的調用同機房調用
      數據層雙向同步:根據路由規則確保僅有本單元的流量具備寫權限,通過數據雙向同步實現數據最終一致性

異地多活方案的效益和價值

      1.提供了更先進的容災&高可用能力:實現業務跨省機房的無縫切換,應對機房及數據中心級別災難故障,快速隔離故障,提升業務連續性。替代了傳統的異地冷備、同城雙活、兩地三中心的容災方案,解決了傳統解決方案的成本高、資源浪費、切換可靠性差的一系列問題,可節省至少50%的容災建設成本。
      2.解決了容量異地擴展的問題:打破單數據中心容量限制,支撐跨數據中心/地域擴建系統節,在一定程度上提前解決了大型集中系統未來需要面對的單地域/機房資源有限制、單點寫入有瓶頸的風險,節約系統遷移割接帶來的大量成本投入。
      3.提供流量隔離的能力:通過對接入流量的控制可以實現生產業務能力隨流量在多個數據中心切換,在保障業務連續和用戶感知的同時,可爲某數據中心中基礎設施或平臺架構進行在線升級,提供了更便捷和靈活的運營保障模式。
      4.驅動互聯網化進程中業務創新:在互聯網化進程中,同樣基於這種流量隔離能力,商業上也可以產生一些新的模式,如把VIP和普通用戶分級運營、真實用戶和機器人分離支撐、按地域就近提供服務等。

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