<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          混合云應(yīng)用雙活容災(zāi)最佳實踐

          共 1487字,需瀏覽 3分鐘

           ·

          2022-01-09 06:40


          作者:遠跖

          01
          前言

          Cloud Native


          越來越多的企業(yè)在數(shù)字化轉(zhuǎn)型和上云進程中選擇混合云的形態(tài)(云+自建 IDC 或云+其他廠商云)來進行容災(zāi)建設(shè),一方面不會過度依賴單一云廠商,另一方面還能充分利用已有的線下 IDC 資源。


          MSHA 云原生多活容災(zāi)解決方案[1],也發(fā)布了混合云多活容災(zāi)產(chǎn)品能力。本文會通過一個業(yè)務(wù) Demo 案例,介紹混合云容災(zāi)建設(shè)的難點,以及如何基于 MSHA 來快速搭建應(yīng)用雙活架構(gòu)并具備分鐘級業(yè)務(wù)恢復(fù)能力。

          02

          業(yè)務(wù)混合云容災(zāi)實踐

          Cloud Native

          1
          ?業(yè)務(wù)背景信息

          A 企業(yè)是一個零售行業(yè)電商交易平臺,業(yè)務(wù)系統(tǒng)部署在自建 IDC 機房,存在以下痛點:

          • 業(yè)務(wù)僅在 IDC 單機房部署,缺少容災(zāi)能力。

          • IDC 容量不足,物理機器升級替換周期長,不足以支撐業(yè)務(wù)的快速發(fā)展。

          業(yè)務(wù)在快速發(fā)展過程中,多次遇到的容量不足以及故障問題引起了公司高層的重視,決心進行容災(zāi)能力建設(shè)。由于自建 IDC 是公司已有資產(chǎn)且穩(wěn)定使用多年,同時不希望過度依賴于云,因此期望建立 IDC+云 的混合云形態(tài)容災(zāi)架構(gòu)。

          當前應(yīng)用部署架構(gòu)


          電商交易平臺包含的應(yīng)用:

          • frontend:Web 應(yīng)用,負責和用戶交互。

          • cartservice:購物車應(yīng)用,提供購物車添加、存儲和查詢服務(wù)。

          • productservice:商品應(yīng)用,提供商品、庫存服務(wù)。

          技術(shù)棧:

          • SpringBoot。

          • RPC 框架:SpringCloud、Dubbo,注冊中心使用自建的 Nacos、Zookeeper。

          • 數(shù)據(jù)庫 Redis 和 MySQL。


          2
          ?混合云容災(zāi)目標


          業(yè)務(wù)容災(zāi)需求歸納如下:

          • 云上云下互容災(zāi),切換 RTO 為分鐘級。期望云上云下相互容災(zāi),繼續(xù)發(fā)揮 IDC 的價值,且不 100% 依賴于云。面對 IDC 或云故障場景,關(guān)鍵時刻要敢切換、能切換,且切換 RTO 要求小于 10 分鐘。

          • 無數(shù)據(jù)一致性風險。云上云下的兩個數(shù)據(jù)中心數(shù)據(jù)強一致,日常態(tài)和容災(zāi)切換過程中都要避免存在臟寫等數(shù)據(jù)一致性風險。

          • 一站式管控。業(yè)務(wù)容災(zāi)涉及的技術(shù)棧框架和云產(chǎn)品,需要統(tǒng)一管控、統(tǒng)一運維、統(tǒng)一切換,操作收斂在一站式管控平臺,方便故障場景快速白屏化操作,自動化執(zhí)行。

          • 實施周期短,改造成本低。業(yè)務(wù)存在多個產(chǎn)品線,依賴關(guān)系復(fù)雜、調(diào)用鏈路長,且處于高速發(fā)展頻繁迭代時期,期望容災(zāi)建設(shè)不會給業(yè)務(wù)研發(fā)團隊帶來改造負擔。

          3
          ?建設(shè)難點



          • 流量管理難度高

            • 若采用 DNS 將流量按權(quán)重解析到云上和云下,存在修改 DNS 解析生效時間長的問題(通常為十分鐘或小時級,參見?DNS 解析生效時間 FAQ[2]),不能滿足容災(zāi)切換小于 10 分鐘的要求。

            • 業(yè)務(wù)應(yīng)用所依賴的 Redis 和 MySQL,IDC內(nèi)采用開源自建而云上直接使用云產(chǎn)品,要實現(xiàn)開源自建+云產(chǎn)品的容災(zāi)切換能力難。

          • 容災(zāi)切換數(shù)據(jù)質(zhì)量保障難

            • 容災(zāi)切換過程中,可能因數(shù)據(jù)同步延遲導(dǎo)致讀到舊數(shù)據(jù),以及切換規(guī)則推送到分布式應(yīng)用節(jié)點時間不一致等原因可能造成云上云下數(shù)據(jù)庫同時讀寫而出現(xiàn)臟寫的問題,整個切換過程數(shù)據(jù)質(zhì)量保障是個關(guān)鍵點,同時也是難點。

          • 無業(yè)務(wù)代碼侵入難

            • 要實現(xiàn) Redis、MySQL 容災(zāi)切換能力,通常需要業(yè)務(wù)應(yīng)用配合改造,對業(yè)務(wù)代碼侵入大。

          4
          ?解決方案


          結(jié)合業(yè)務(wù)容災(zāi)需求和混合云 IDC+云形態(tài)的特點,采用應(yīng)用雙活架構(gòu)能夠較好的滿足業(yè)務(wù)容災(zāi)訴求。

          應(yīng)用雙活架構(gòu)


          架構(gòu)簡圖:


          架構(gòu)規(guī)范:

          • 選擇離 IDC 物理距離<=200km 的云上 Region,網(wǎng)絡(luò)延遲較低(約 5~7ms)。

          • 應(yīng)用、中間件云上云下冗余對稱部署,同時對外提供服務(wù)(應(yīng)用雙活)。

          • 數(shù)據(jù)庫異地主備,異步復(fù)制備份。應(yīng)用讀寫同一數(shù)據(jù)中心的數(shù)據(jù)庫,避免考慮一致性問題。

          詳細方案



          • 應(yīng)用流量雙活

          業(yè)務(wù)應(yīng)用云上云下對稱部署,并基于 MSHA 接入層集群,來承接入口 HTTP/HTTPS 流量,按照比例或精準路由規(guī)則云上云下分流。多活控制臺提供 MSFE 集群界面白屏化的部署、擴縮容、監(jiān)控等常規(guī)運維能力,以及應(yīng)對故障場景的分鐘級切流能力。


          • 服務(wù)互通和同單元優(yōu)先調(diào)用

          業(yè)務(wù)應(yīng)用需要按業(yè)務(wù)產(chǎn)品線分批上云,過程中存在下游應(yīng)用僅 IDC 部署的情況。利用 MSHA 注冊中心同步功能,可實現(xiàn)云上云下服務(wù)互通,助力業(yè)務(wù)上云。同時基于 MSHA-Agent 的切面能力,在 Dubbo/SpringCloud 服務(wù)調(diào)用時,Consumer 優(yōu)先調(diào)用同單元內(nèi)的Provider,從而避免跨機房調(diào)用帶來的網(wǎng)絡(luò)延遲,減小業(yè)務(wù)請求 RT。


          • 數(shù)據(jù)同步&數(shù)據(jù)庫連接切換

          數(shù)據(jù)庫異地主備部署,云上云下應(yīng)用日常態(tài)均讀寫云上 Redis 和 RDS 數(shù)據(jù)庫,無需考慮數(shù)據(jù)一致性問題。MSHA 控制臺通過集成 DTS 同步組件,支持云上云下的數(shù)據(jù)同步(異步復(fù)制)。同時基于 MSHA-Agent 切面能力,具備應(yīng)用數(shù)據(jù)庫訪問連接的切換能力,云上 Redis 或 RDS 故障則可將讀寫訪問連接切換到 IDC 內(nèi)的 Redis 或 MySQL,反之亦然。切換過程中還具備禁寫保護能力,避免產(chǎn)生讀到舊數(shù)據(jù)以及臟寫等數(shù)據(jù)質(zhì)量問題。


          • 一站式管控&無業(yè)務(wù)代碼侵入

          MSHA 控制臺,支持 HTTP、數(shù)據(jù)庫訪問流量的統(tǒng)一管控、統(tǒng)一切換,操作收斂在一站式管控平臺,方便故障場景快速白屏化操作,自動化執(zhí)行。同時針對業(yè)務(wù)應(yīng)用 MSHA 提供了 Agent 接入方式,無需業(yè)務(wù)代碼改造即可獲得相關(guān)容災(zāi)切換能力。

          5
          ?改造內(nèi)容


          • 應(yīng)用上云

            • 選擇跟自建 IDC 較近的阿里云地域,云上完全冗余的部署一套應(yīng)用、中間件和數(shù)據(jù)庫,以便搭建云上云下雙活容災(zāi)架構(gòu)。在這個 Demo 案例中,選擇杭州 Region 作為容災(zāi)單元。

          • 網(wǎng)絡(luò)打通:

            • 接入 CEN 云企業(yè)網(wǎng),實現(xiàn)云上云下網(wǎng)絡(luò)互通(詳見多接入方式構(gòu)建企業(yè)級混合云文檔[3])。

          • 接入集群部署和配置:

            • 云上云下部署 MSHA 接入層集群(MSFE),上掛 SLB 用于公網(wǎng)接入以及 MSFE 集群的負載均衡(參見使用文檔[4])。

            • 錄入域名、URI 和后端應(yīng)用地址,從而具備云上云下分流和分鐘級切流能力(參見使用文檔[5])。

          • 應(yīng)用:

            • 云上分批部署業(yè)務(wù)應(yīng)用。

            • JAVA 應(yīng)用安裝 MSHA-Agent,并使用 Nacos 作為管控命令下發(fā)通道,從而具備微服務(wù)同單元優(yōu)先調(diào)用以及數(shù)據(jù)庫訪問連接切換能力(參見使用文檔[6])。

          • 中間件和數(shù)據(jù)庫:

            • 云上部署 MSE 托管 ZK/Nacos 注冊中心、云數(shù)據(jù)庫 Redis 和 RDS,建議使用跨可用區(qū)部署高可用版本,具備同城雙活容災(zāi)能力。

            • 若存在某應(yīng)用僅 IDC 部署的情況,需要配置注冊中心的服務(wù)同步(參見使用文檔[7])。

            • 配置云數(shù)據(jù)庫 Redis/RDS 和自建 Redis/MySQL 的數(shù)據(jù)同步(參見使用文檔[8])。


          改造后的應(yīng)用部署架構(gòu)


          日常場景:IDC+云上同時承擔業(yè)務(wù)流量--應(yīng)用雙活


          訪問電商 Demo 首頁,查看實際流量調(diào)用鏈:概率性的訪問到北京或杭州單元,均讀寫北京單元內(nèi)的數(shù)據(jù)庫。


          6
          ?容災(zāi)能力

          • RPO:<=1min(依賴于 DTS 同步性能)

          • RTO:<=1min(依賴于 DTS 同步延遲,MSHA 組件實現(xiàn)秒級切換。整體 RTO<=1min)

          7
          ?容災(zāi)能力驗證


          基于 MSHA 完成應(yīng)用雙活架構(gòu)建設(shè)后,還需驗證業(yè)務(wù)容災(zāi)能力是否符合預(yù)期。接下來將制造真實的故障,來驗證容災(zāi)恢復(fù)能力。

          7.1 演練準備


          1. 進入 MSHA 控制臺,在左側(cè)菜單欄選擇監(jiān)控大盤。頁面頂部,下拉選擇切換到實際使用的命名空間


          2. 查看頁面中的各項監(jiān)控指標。


          說明:演練前,基于 MSHA 流量監(jiān)控或其他監(jiān)控產(chǎn)品,確定業(yè)務(wù)穩(wěn)態(tài)的監(jiān)控指標(如日常情況 RT<=200ms,錯誤率<1%),以便在故障發(fā)生時判斷故障影響面以及在故障恢復(fù)后判斷業(yè)務(wù)的實際恢復(fù)情況。


          7.2 應(yīng)用故障注入


          這里我們使用阿里云故障演練產(chǎn)品,對阿里云-北京商品應(yīng)用注入故障。

          1. 進入?Chaos 故障演練產(chǎn)品控制臺[9],頂部選擇切換到相應(yīng)地域,左側(cè)導(dǎo)航欄選擇我的空間


          2. 我的空間選擇配置好的演練(50% 概率網(wǎng)絡(luò)丟包),然后單擊執(zhí)行演練



          故障注入成功后,打開電商首頁或進行下單,有概率出現(xiàn)訪問異常,符合預(yù)期。


          7.3 切流恢復(fù)


          在北京單元的商品應(yīng)用故障的情況下,可以通過 MSHA 切流功能,將云上入口流量切 0,快速恢復(fù)業(yè)務(wù)。


          預(yù)期


          100% 流量切換到杭州單元后,業(yè)務(wù)完全恢復(fù),不受北京單元的故障影響。


          切流操作


          1. 進入 MSHA 控制臺,在左側(cè)導(dǎo)航欄選擇切流>異地應(yīng)用雙活切流


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


          3. 單擊執(zhí)行預(yù)檢查,在切流檢查區(qū)域,單擊確認,開始切流。


          4. 在切流任務(wù)頁面的當前狀態(tài)顯示切流完成,表示切流已成功。



          5. 刷新電商 Demo 首頁,多次訪問均能正常展示,符合預(yù)期。


          查看實際流量調(diào)用鏈:流量始終訪問到杭州單元,讀寫北京單元內(nèi)的數(shù)據(jù)庫。


          7.4 數(shù)據(jù)庫故障注入


          從上面調(diào)用鏈可以看出,杭州單元內(nèi)的應(yīng)用仍然訪問的是北京單元的 Redis、MySQL 數(shù)據(jù)庫。我們繼續(xù)使用?Chaos 故障演練[10]產(chǎn)品對北京單元的 Redis、MySQL 數(shù)據(jù)庫注入故障,制造數(shù)據(jù)庫故障場景。


          故障注入成功后,打開電商首頁或進行下單始終訪問異常,符合預(yù)期。

          7.5 切換數(shù)據(jù)庫進行恢復(fù)


          在北京單元的數(shù)據(jù)庫故障的情況下,可以通過 MSHA 數(shù)據(jù)庫切換功能,將應(yīng)用訪問的 Redis/MySQL 的連接切換至杭州單元的數(shù)據(jù)庫(切換過程中會等待數(shù)據(jù)同步追平,期間會短暫禁寫)。


          預(yù)期


          應(yīng)用連接的數(shù)據(jù)庫切換到杭州后,業(yè)務(wù)完全恢復(fù),不受北京單元的故障影響。



          切流操作


          1. 進入 MSHA 控制臺,在左側(cè)導(dǎo)航欄選擇異地應(yīng)用雙活>數(shù)據(jù)層配置


          2.在數(shù)據(jù)保護規(guī)則列表中,找到商品、訂單、購物車數(shù)據(jù)庫,逐個點擊主備切換



          3. 點擊主備切換后,會進入預(yù)檢查頁面,確認各檢查項狀態(tài)正常后,點擊在確認執(zhí)行,則進入切換詳情頁,并自動執(zhí)行切換流程。



          4. 主備切換詳情頁,可以看到切換進度和切換結(jié)果,任務(wù)進度 100% 后,表示切換完成。



          5. 商品、訂單、購物車數(shù)據(jù)庫都主備切換完成后。多次訪問電商 Demo 首頁或進行下單,發(fā)現(xiàn)均已正常,主備切換后業(yè)務(wù)功能完全恢復(fù),符合預(yù)期。



          03

          總結(jié)

          Cloud Native


          在本篇文章中,我們介紹了 MSHA 多活容災(zāi)助力企業(yè)進行混合云應(yīng)用雙活容災(zāi)建設(shè)的實踐案例,給出了容災(zāi)架構(gòu)建設(shè)實踐方法,同時利用 Chaos 故障演練產(chǎn)品注入真實故障,來驗證故障場景業(yè)務(wù)容災(zāi)能力是否符合預(yù)期。

          最后,歡迎大家掃描下方二維碼或搜索群號(31623894)進釘釘群進行咨詢和交流,群名稱:多活容災(zāi)(MSHA)交流釘釘群。



          04

          相關(guān)閱讀

          Cloud Native


          [1]?MSHA 云原生多活容災(zāi)解決方案

          https://www.aliyun.com/product/aliware/ahas/msha


          [2]?DNS 解析生效時間 FAQ

          https://help.aliyun.com/document_detail/39837.html


          [3]?多接入方式構(gòu)建企業(yè)級混合云文檔

          https://help.aliyun.com/document_detail/181844.html


          [4]?使用文檔

          https://help.aliyun.com/document_detail/184980.html


          [5]?使用文檔

          https://help.aliyun.com/document_detail/328617.html


          [6]?使用文檔

          https://help.aliyun.com/document_detail/295852.html


          [7]?使用文檔

          https://help.aliyun.com/document_detail/369539.html


          [8]?使用文檔

          https://help.aliyun.com/document_detail/184971.html


          [9]?Chaos?故障演練產(chǎn)品控制臺

          https://common-buy.aliyun.com/?commodityCode=ahas_001#/buy


          [10]?Chaos 故障演練

          https://common-buy.aliyun.com/?commodityCode=ahas_001#/buy


          延伸閱讀


          • MSHA 多活容災(zāi)解決方案首頁:
            https://www.aliyun.com/product/aliware/ahas/msha

          • MSHA 支持的 4 種容災(zāi)架構(gòu)介紹:
            https://help.aliyun.com/document_detail/338374.html

          • Chaos 故障演練產(chǎn)品首頁:
            https://www.aliyun.com/product/aliware/ahas/chaos


          文章轉(zhuǎn)載:??????????????????????????阿里巴巴云原生
          (版權(quán)歸原作者所有,侵刪)


          點擊下方“閱讀原文”查看更多

          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩曹比无码三级 | 黄色A级视频 | 亚洲AV蜜桃永久无码精品性色 | 国产精品久久久久久久久绿色 | 亚洲欧美在线视频一区 |