混合雲應用雙活容災最佳實踐

2022-09-19 04:54:09 字數 3284 閱讀 6368

​越來越多的企業在數位化轉型和上雲程序中選擇混合雲的形態(雲+自建 idc 或雲+其他廠商雲)來進行容災建設,一方面不會過度依賴單一雲廠商,另一方面還能充分利用已有的線下 idc 資源。

msha 雲原生多活容災解決方案[1],也發布了混合雲多活容災產品能力。本文會通過乙個業務 demo 案例,介紹混合雲容災建設的難點,以及如何基於 msha 來快速搭建應用雙活架構並具備分鐘級業務恢復能力。

a 企業是乙個零售行業電商交易平台,業務系統部署在自建 idc 機房,存在以下痛點:

業務在快速發展過程中,多次遇到的容量不足以及故障問題引起了公司高層的重視,決心進行容災能力建設。由於自建 idc 是公司已有資產且穩定使用多年,同時不希望過度依賴於雲,因此期望建立 idc+雲 的混合雲形態容災架構。

當前應用部署架構

電商交易平台包含的應用:

技術棧:

業務容災需求歸納如下:

結合業務容災需求和混合雲 idc+雲形態的特點,採用應用雙活架構能夠較好的滿足業務容災訴求。

應用雙活架構

架構簡圖:

架構規範:

詳細方案

業務應用雲上雲下對稱部署,並基於 msha 接入層集群,來承接入口 http/https 流量,按照比例或精準路由規則雲上雲下分流。多活控制台提供 msfe 集群介面白屏化的部署、擴縮容、監控等常規運維能力,以及應對故障場景的分鐘級切流能力。

業務應用需要按業務產品線分批上雲,過程中存在下游應用僅 idc 部署的情況。利用 msha 註冊中心同步功能,可實現雲上雲下服務互通,助力業務上雲。同時基於 msha-agent 的切面能力,在 dubbo/springcloud 服務呼叫時,consumer 優先呼叫同單元內的provider,從而避免跨機房呼叫帶來的網路延遲,減小業務請求 rt。

資料庫異地主備部署,雲上雲下應用日常態均讀寫雲上 redis 和 rds 資料庫,無需考慮資料一致性問題。msha 控制台通過整合 dts 同步元件,支援雲上雲下的資料同步(非同步複製)。同時基於 msha-agent 切面能力,具備應用資料庫訪問連線的切換能力,雲上 redis 或 rds 故障則可將讀寫訪問連線切換到 idc 內的 redis 或 mysql,反之亦然。切換過程中還具備禁寫保護能力,避免產生讀到舊資料以及髒寫等資料質量問題。

msha 控制台,支援 http、資料庫訪問流量的統一管控、統一切換,操作收斂在一站式管控平台,方便故障場景快速白屏化操作,自動化執行。同時針對業務應用 msha 提供了 agent 接入方式,無需業務**改造即可獲得相關容災切換能力。

改造後的應用部署架構

日常場景:idc+雲上同時承擔業務流量--應用雙活

訪問電商 demo 首頁,檢視實際流量呼叫鏈:概率性的訪問到北京或杭州單元,均讀寫北京單元內的資料庫。

基於 msha 完成應用雙活架構建設後,還需驗證業務容災能力是否符合預期。接下來將製造真實的故障,來驗證容災恢復能力。

7.1 演練準備

進入 msha 控制台,在左側選單欄選擇監控**。頁面頂部,下拉選擇切換到實際使用的命名空間

檢視頁面中的各項監控指標。

說明:演練前,基於 msha 流量監控或其他監控產品,確定業務穩態的監控指標(如日常情況 rt<=200ms,錯誤率<1%),以便在故障發生時判斷故障影響面以及在故障恢復後判斷業務的實際恢復情況。

7.2 應用故障注入

這裡我們使用阿里雲故障演練產品,對阿里雲-北京的商品應用注入故障。

進入 chaos 故障演練產品控制台[9],頂部選擇切換到相應地域,左側導航欄選擇我的空間

我的空間選擇配置好的演練(50% 概率網路丟包),然後單擊執行演練

故障注入成功後,開啟電商首頁或進行下單,有概率出現訪問異常,符合預期。

7.3 切流恢復

在北京單元的商品應用故障的情況下,可以通過 msha 切流功能,將雲上入口流量切 0,快速恢復業務。

預期100% 流量切換到杭州單元後,業務完全恢復,不受北京單元的故障影響。

切流操作

1. 進入 msha 控制台,在左側導航欄選擇切流》異地應用雙活切流

2. 在切流頁面,對北京單元點選一鍵切零

3. 單擊執行預檢查,在切流檢查區域,單擊確認,開始切流。

4. 在切流任務頁面的當前狀態顯示切流完成,表示切流已成功。

5. 重新整理電商 demo 首頁,多次訪問均能正常展示,符合預期。

檢視實際流量呼叫鏈:流量始終訪問到杭州單元,讀寫北京單元內的資料庫。

7.4 資料庫故障注入

從上面呼叫鏈可以看出,杭州單元內的應用仍然訪問的是北京單元的 redis、mysql 資料庫。我們繼續使用 chaos 故障演練[10]產品對北京單元的 redis、mysql 資料庫注入故障,製造資料庫故障場景。

故障注入成功後,開啟電商首頁或進行下單始終訪問異常,符合預期。

7.5 切換資料庫進行恢復

在北京單元的資料庫故障的情況下,可以通過 msha 資料庫切換功能,將應用訪問的 redis/mysql 的連線切換至杭州單元的資料庫(切換過程中會等待資料同步追平,期間會短暫禁寫)。

預期應用連線的資料庫切換到杭州後,業務完全恢復,不受北京單元的故障影響。

切流操作

1. 進入 msha 控制台,在左側導航欄選擇異地應用雙活》資料層配置

2.在資料保護規則列表中,找到商品、訂單、購物車資料庫,逐個點選主備切換

3. 點選主備切換後,會進入預檢查頁面,確認各檢查項狀態正常後,點選在確認執行,則進入切換詳情頁,並自動執行切換流程。

4. 主備切換詳情頁,可以看到切換進度和切換結果,任務進度 100% 後,表示切換完成。

5. 商品、訂單、購物車資料庫都主備切換完成後。多次訪問電商 demo 首頁或進行下單,發現均已正常,主備切換後業務功能完全恢復,符合預期。

在本篇文章中,我們介紹了 msha 多活容災助力企業進行混合雲應用雙活容災建設的實踐案例,給出了容災架構建設實踐方法,同時利用 chaos 故障演練產品注入真實故障,來驗證故障場景業務容災能力是否符合預期。

阿里雲 EMR最佳實踐和容災

阿里雲 emr elastic mapreduce 是一項 web 服務,簡化了大資料處理,提供的大資料框架可以讓您輕鬆 高速 經濟 安全 穩定地處理大資料,滿足如日誌分析 資料倉儲 商業智慧型 機器學習 科學模擬等業務需求。一.最佳實踐 1.混合使用包年及按需計費,節約成本 資料都存在熱 冷的差異...

為資料安全而生,阿里雲容災備份方案場景實踐解析

數字經濟時代,資料正以超出想象的速度快速增長。短短幾年,資料量已經從tb級別躍公升到pb乃至zb級別。根據相關研究機構調查結果顯示,2017 年全年資料總量將超過15.2zb,同比增長35.7 到2018 年全球資料總量達19.4zb。未來幾年全球資料的增長速度在每年25 以上,預計到2020年,全...

為資料安全而生,阿里雲容災備份方案場景實踐解析

數字經濟時代,資料正以超出想象的速度快速增長。短短幾年,資料量已經從tb級別躍公升到pb乃至zb級別。根據相關研究機構調查結果顯示,2017 年全年資料總量將超過15.2zb,同比增長35.7 到2018 年全球資料總量達19.4zb。未來幾年全球資料的增長速度在每年25 以上,預計到2020年,全...