本文介紹了異地多活解決方案的架構和應用情境,以及國稅總局和聯通新客服系統案例的實現架構和效果。
異地多活資料庫解決方案
方案背景
隨著雲端運算的蓬勃發展,越來越多的資訊系統選擇部署在雲端運算環境下,因此雲端式產品為資訊系統的服務能力和資料品質提供保障尤為重要。為了防止災難性的故障如火災、洪水、地震、地區電源中斷或者人為破壞等對資訊系統造成不可挽回的損壞,需要構建容災系統來保障資訊系統的可用性和安全性。
2007年,國務院資訊化辦公室聯合銀行、電源、民航、鐵路、證券等八大重點行業,制定發布了國家標準GB/T20988-2007《資訊系統災難恢複規範》,明確規定了容災能力的6個等級要求。企業在構建容災系統時往往會參考國標等級,或者以此作為合規要求。然而,大部分傳統容災方案如同城容災、同城雙活、異地容災、兩地三中心等很難達到國標5-6級要求,同時還存在成本浪費,災備單元健壯性不足等問題。
異地多活是新一代的容災解決方案,在保證業務持續高可用的同時還能實現成本最佳化、地區級水平擴充等能力,本文會著重介紹阿里雲主流資料庫產品在異地多活情境下的解決方案。
方案架構
異地多活從業務視角來看是通過對業務做自頂向下的流量隔離來實現的,按照某一個分流維度對業務流量進行劃分,並路由到不同的地區。整個部署架構分多個地區,每個地區稱為一個單元,其中某個單元又承擔著整個多活架構的邏輯中心角色,提供一些中心化的服務能力(如Sequence分發、強一致讀服務等),每個單元內的業務架構分為接入層、服務層、資料層:
- 接入層:業務流量通過租戶側DNS解析後按照權重分配到不同單元的接入層。進入接入層後,通過解析請求header/cookie中的分流標,對比自訂的分流規則,判斷請求是否歸屬本單元,若歸屬本單元則走到本單元的服務層。否則流量需要轉寄到對端單元,根據不同的內網連通性可以走upstream或304跳轉。
- 服務層:服務層部署的是業務應用系統,包括中介軟體等。如果使用了阿里雲的中介軟體如CSB、MQ等,或者使用RPC可以串連到多活資料庫,可以實現在服務層的流量路由和錯誤修正。針對RPC服務,在多活情境中分為:單元化服務、中心化服務、普通服務三類:
- 單元化服務:每個單元內完全自治的服務,是多活情境下的主要服務類型,會對流量進行單元歸屬判斷,並進行流量錯誤修正。
- 中心化服務:強依賴中心單元的服務,流量都會被轉寄到中心單元,通過中心單元的服務訪問中心單元的資料層。
- 普通服務:不做任何改造的服務,在本單元內進行服務調用,並訪問本單元的資料層。
- 資料層:資料層解決資料庫跨地區的部署與同步問題,並在災難發生時對流量切換動作提供相應的資料品質保護原則。針對上層業務不同的服務類型提供UNIT和COPY兩種資料同步策略:
- UNIT類型:每個單元部署獨立的資料庫系統,單元之間通過DTS進行資料雙向即時同步,保證每個單元都有全量資料。每個單元均可進行讀寫操作,讀寫流量會根據業務定製的分流策略進行單元防寫保護,這種同步策略用於支援服務層的單元化服務類型,是多活情境的核心同步策略。
- COPY類型:每個單元部署獨立的資料庫系統,單元之間通過DTS進行資料單向即時同步,保證每個單元都有全量資料。中心單元可進行讀寫,非中心單元只提供讀服務。這種同步策略用於支援中心化服務和普通服務,中心化服務路由回中心執行,普通服務可在單元內進行讀。
方案應用情境
本解決方案適用於以下業務情境:
- 容災能力要求高:異地多活可以達到國標6級的容災能力,適合對容災方面有較高要求的業務、業務流量比較敏感的業務或業務的某些核心系統。
- 流量要求精細化管理:異地多活支援多種流量管理原則,適合對流量管理有複雜需求的業務,例如按地區就近接入,按使用者資訊分配指定資料中心等。
- 業務快速發展:異地多活實現業務按照單元層級(資料中心層級)實施水平擴充,業務定義好一個單元的服務部署配比後,可以以此為鏡像快速部署多個單元,實現容量快速擴充。
- 業務讀多寫少:讀多寫少業務可以從業務行為上天然的規避資料非同步複製的各類問題,並且業務接入多活的改造成本也較低,是比較適合實施異地多活的業務情境。
方案價值
異地多活的價值具體表現在如下方面:
- 業務即容災:傳統異地災備或兩地三中心的異地災備中心常態不提供服務,當發生地區級災難時難以保證異地災備中心的可用性,存在切換成功率低的問題,異地多活架構下各個地區資料中心不區分角色,全部常態承載業務流量,時刻保證業務系統健壯,各個資料中心既是業務體系也是容災系統。
- 商務持續性保障:異地多活架構下各個資料中心常態承接業務流量,故障發生時只需調撥入口流量即可實現容災切換,實現分鐘級的容災切換。同時隨著參與多活建設的資料中心數量增加,參與調撥流量的比例會相應減少,未參與調撥的業務流量可以實現對容災切換的0感知。
- 業務高速發展支撐:業務高速發展,受限於單個地區的有限資源,尤其是資料層存在單點效能瓶頸,除異地多活以外的全部容災架構都只能在主生產中心執行寫操作。地區多活實現業務級的流量閉環,各個資料中心均可讀寫,具備水平擴充能力以及跨地區的快速擴建能力。
- 流量有效隔離:異地多活本質上是提供了一種自頂向下的流量隔離能力,業務具備在資料中心層級完全隔離的能力,各個資料中心承載的流量大小可靈活調配,在最小隔離資料中心內(例如承載1%流量),業務可靈活進行風險可控的技術演化,例如基礎設施升級、新技術驗證等。
- 成本有效控制:在考慮單個地區發生地區級災難的情境下,不論兩地三中心還是異地災備都需要在災備中心部署可承載100%流量的系統資源,加上生產中心即達到200%的成本冗餘。異地多活通過跨城多資料中心部署,有效分攤各個資料中心成本,實現成本小於200%冗餘。
案例-國稅總局
案例背景
個稅系統是國家財稅資訊化領域的重大工程,集中了全國7.8億自然人的基礎資訊和3.6億活躍申報自然人的納稅申報等敏感資訊,已成為國家重要戰略資訊資產,同時也是超大體量的政務雲平台。在此背景下,一方面要考慮業務對容災能力提出的強烈且苛刻的要求,另一方面要考慮超大體量下容災建設帶來的成本浪費問題。因此選擇多活方案在支援容災要求的同時需要解決成本、業務高速發展等問題。
案例架構
客戶基於本方案,整合了TP/AP情境的多活能力,藉助RDS、PolarDB-X、ADB、DTS、DMS、MSHA等產品,有效實施了異地多活容災能力,達到國標6級容災能力要求:
- RDS、PolarDB-X承載TP(Transaction Processing,事務型處理)類資料處理,ADB承載AP(Analytical Processing,分析型處理)類資料處理。
- MSHA實現多活流量管控和容災切換動作。
- 通過DTS實現資料的跨地區即時同步以及雲內同步。
- DMS實現日常營運變更和資料變更管理。
- DBS實現資料在第三方平台的備份功能。
案例效果
- 針對客戶不同的業務模組,實施多種分流策略,自然人電子稅務局線上業務實施基於自然人檔案號的分流,離線業務清冊查詢實施按地區分流的多活能力。
- 為客戶提供國標6級的容災效果,實現秒級容災切換並保證資料零丟失。
- MSHA實現多活流量管控和容災切換動作。
- 客戶部署了兩單元,常態每個單元承載50%的業務流量,充分利用兩單元的資源。
- 藉助多活管控靈活的流量分配策略,實現重大業務發布時的灰階放量能力。
案例-聯通新客服系統
案例背景
聯通新客服系統承擔著聯通全國的客服業務,對持續高可用能力有極高要求,同時也是聯通向全站高可用演化的起點,其業務特點以TP為主。
案例架構
客戶基於此方案,整合RDS、PolarDB-X、DTS、MSHA產品能力,實現了整個新客服系統7個業務中心的多活能力。
- RDS、PolarDB-X承載業務資料並對接多活管控系統。
- DTS實現資料的跨城即時同步和狀態上報。
- MSHA實現多活流量管控和容災切換動作。
案例效果
- 聯通新客服系統的接入中心、外呼中心、業務支撐等7個業務實現按地區多活分流。
- 實現多次容災演練,對多個省份進行切流,秒級完成切換,資料零丟失。
- 客戶部署了兩單元,常態兩個單元均承載業務流量,充分利用兩單元的資源。