實話實說,那天直播看下來,沒有半點虛的,全是干貨,還有一份內(nèi)容詳實的《騰訊云工具指南》,感興趣的小伙伴可以點擊圖片獲取??
所以這次,就讓我從 3AZ 架構(gòu)出發(fā),和大家好好分享一下我的心得體會。
1. 介紹
下面我們會依次介紹 3AZ 架構(gòu)的基礎(chǔ)概念和實現(xiàn)原理,討論 3AZ 架構(gòu)的優(yōu)勢和關(guān)鍵因素,最后還有基于 3AZ 架構(gòu)的案例分享。
3AZ部署架構(gòu)是指在云計算環(huán)境下,將應(yīng)用程序和數(shù)據(jù)分別部署在三個可用區(qū)(Availability Zone)中的一種架構(gòu)模式??捎脜^(qū)是指在同一地域內(nèi),相互隔離且具有獨立供電和網(wǎng)絡(luò)的數(shù)據(jù)中心。三個可用區(qū)是最小部署區(qū)域,但是在不同的故障域內(nèi),它們之間通過高速網(wǎng)絡(luò)互相連接。
3AZ 部署架構(gòu)是一種為企業(yè)私有化部署設(shè)計的分布式應(yīng)用程序的架構(gòu)模式,其設(shè)計目標(biāo)和優(yōu)勢包括:
● 高可用性:將應(yīng)用程序的副本在多個可用區(qū)之間進行部署,從而提高應(yīng)用程序的可用性,減少因單個可用區(qū)故障而導(dǎo)致的停機時間。
● 數(shù)據(jù)可靠性:數(shù)據(jù)通常會在多個可用區(qū)之間進行復(fù)制和備份,以確保數(shù)據(jù)的可靠性和安全性。在出現(xiàn)故障時,系統(tǒng)可以自動將請求轉(zhuǎn)發(fā)到另一個可用區(qū),以避免數(shù)據(jù)丟失。
● 擴展性:可以將應(yīng)用程序的副本在多個可用區(qū)之間部署。當(dāng)需要增加更多的容量時,可以很容易地向可用區(qū)添加更多的服務(wù)器或?qū)嵗?,而不會影響?yīng)用程序的性能或可用性。
● 成本收益:雖然該架構(gòu)需要更多的硬件資源和更高的成本,但它提高了應(yīng)用程序的可靠性,減少了因單個可用區(qū)故障而導(dǎo)致的維修和恢復(fù)成本,降低因停機時間造成的損失。
2. 3AZ 架構(gòu)的關(guān)鍵
3AZ 架構(gòu)是一種分布式應(yīng)用程序的部署架構(gòu),通過合理的設(shè)計和實現(xiàn),可以提高應(yīng)用程序的可用性、可靠性和擴展性。
● 分散架構(gòu):每個可用區(qū)都是一個獨立的數(shù)據(jù)中心,在不同的 AZ 來部署應(yīng)用程序的不同副本。AZ 具有獨立的供電系統(tǒng)、網(wǎng)絡(luò)等。
● 網(wǎng)絡(luò)設(shè)計:需要確保多個可用區(qū)之間的網(wǎng)絡(luò)連接穩(wěn)定可靠,以便在需要時能夠快速切換到備用可用區(qū)。通常情況下,會使用專用網(wǎng)絡(luò)或者虛擬專用網(wǎng)絡(luò)(VPC)來實現(xiàn)多個可用區(qū)之間的網(wǎng)絡(luò)連接,并且需要在不同可用區(qū)之間建立冗余網(wǎng)絡(luò)連接。
● 數(shù)據(jù)存儲設(shè)計:需要將數(shù)據(jù)存儲在多個可用區(qū)之間,以確保數(shù)據(jù)的復(fù)制和備份??梢允褂脭?shù)據(jù)庫復(fù)制或者分布式文件系統(tǒng)等技術(shù)來實現(xiàn)。
● 容錯設(shè)計:需要確保系統(tǒng)能夠自動檢測和處理可用區(qū)故障。當(dāng)一個可用區(qū)出現(xiàn)故障時,系統(tǒng)需要自動將請求轉(zhuǎn)發(fā)到備用可用區(qū)??梢允褂秘?fù)載均衡器來實現(xiàn)請求的轉(zhuǎn)發(fā)和負(fù)載均衡。
3. 最佳實踐
通過實現(xiàn)高可用性架構(gòu)、自動化和監(jiān)控等措施,可以幫助 3AZ 架構(gòu)實現(xiàn)更高的可靠性和效率。
高可用性架構(gòu):為了實現(xiàn)高可用性,3AZ 架構(gòu)應(yīng)該具備以下特點:
● 網(wǎng)絡(luò)接入層:3AZ統(tǒng)一接入到骨干網(wǎng),通過骨干網(wǎng)實現(xiàn)互聯(lián)互通能力。
● 負(fù)載均衡層:通過跨AZ大集群形式部署,實現(xiàn)CLB實例的跨AZ負(fù)載及容災(zāi)能力。
● 計算及存儲-資源層:通過跨AZ的 統(tǒng)一大 VPC,可將 3AZ的云服務(wù)器劃分在同一個VPC,實現(xiàn)3層網(wǎng)絡(luò)可達(dá),不需要經(jīng)過集中式網(wǎng)關(guān)集群。業(yè)務(wù)可在 大VPC內(nèi)進行3AZ的多活實例部署。
● SDN網(wǎng)關(guān)層:通過跨AZ大集群及就近訪問能力,實現(xiàn)流量的就近接入及集群故障下的跨AZ流程接管能力。
● PaaS資源層:通過跨AZ大集群能力,用戶可創(chuàng)建的實例的多副本跨AZ分布的PaaS服務(wù)實例,應(yīng)用層無需關(guān)心PaaS實例副本間的跨AZ數(shù)據(jù)同步等處理,使用統(tǒng)一VIP進行訪問。由PaaS服務(wù)提供跨AZ容災(zāi)能力。
● 云管平臺及底座層:將整體云管平臺的容器及持久支撐服務(wù)組件實現(xiàn)跨AZ部署與調(diào)度,滿足云管平臺的跨AZ高可用,避免單一AZ故障后的平臺不可用。
下面是簡單示意圖,展示了一個應(yīng)用程序在 3AZ 架構(gòu)中的部署方式:
圖中,應(yīng)用程序被部署在每個可用區(qū)中,每個實例都將被部署在不同的子網(wǎng)和故障域內(nèi)。這樣,即使一個可用區(qū)發(fā)生故障,其他可用區(qū)仍然可以提供服務(wù)。
自動化:自動化是 3AZ 架構(gòu)中是很重要的,通過自動化可以簡化部署和管理應(yīng)用程序的過程,提高效率和降低出錯概率。
● 使用自動化工具部署和管理應(yīng)用程序、基礎(chǔ)設(shè)施,如 Helm、Ansible、DevOps、PaaS、SaaS 等平臺。
● 自動化監(jiān)控和告警,使用工具實現(xiàn)自動告警和自動恢復(fù)機制,例如 Prometheus、Grafana、Alertmanager 等。
監(jiān)控告警:通過監(jiān)控各項指標(biāo)實時了解應(yīng)用程序的運行情況,及時發(fā)現(xiàn)和解決問題,主要從以下方面監(jiān)控:
● 基礎(chǔ)設(shè)施:包括服務(wù)器、負(fù)載均衡器、數(shù)據(jù)庫等。
● 應(yīng)用程序:包括 App 各項指標(biāo)和性能參數(shù),例如響應(yīng)時間、吞吐量等。
3AZ 架構(gòu)是一種云架構(gòu),在這種架構(gòu)中,安全合規(guī)是非常重要的考慮因素。
● 訪問控制:3AZ 架構(gòu)使用身份驗證和授權(quán)來控制用戶和服務(wù)對資源的訪問??梢允褂酶鞣N身份驗證方法來保護資源。
● 可追溯性:提供完整的操作記錄和審計功能,確保符合各種合規(guī)性要求,記錄所有的訪問和操作,包括用戶、服務(wù)和資源的訪問和修改記錄。
● 網(wǎng)絡(luò)保護:提供網(wǎng)絡(luò)流量隔離功能以滿足各種合規(guī)性要求,例如虛擬專用網(wǎng)絡(luò)、網(wǎng)絡(luò)訪問控制和安全組等
4. 3AZ 架構(gòu)案例
在上面部分中,我們對 3AZ 架構(gòu)的基本要求展開了詳細(xì)說明。但對于云計算提供商來說,客戶的需求是多樣化的。我們在最新一期《騰訊云工具指南》中看到,騰訊云利用 3AZ 結(jié)構(gòu)對國內(nèi)某銀行系統(tǒng)國產(chǎn)化改造。這個項目客戶要求如下:
● 按需在同一個云內(nèi)投放多種架構(gòu)的云資源池,包括海光、鯤鵬,飛騰、X86 資源
● 對 RPO、RTO 要求極高,需要容災(zāi)能力強、未來能夠支持?jǐn)U展為多地域部署的架構(gòu)
> RPO 即數(shù)據(jù)恢復(fù)點目標(biāo),指的是業(yè)務(wù)系統(tǒng)所能容忍的數(shù)據(jù)丟失量。RTO 即恢復(fù)時間目標(biāo),主要指的是所能容忍的業(yè)務(wù)停止服務(wù)的最長時間
● laas 及 Paas 產(chǎn)品之間深度融合及配置聯(lián)動,避免傳統(tǒng)私有云的多個產(chǎn)品之間的管理、維護的割裂
● 實現(xiàn)計算資源池、存儲資源池,數(shù)據(jù)庫資源池超大池化的能力,內(nèi)置各云產(chǎn)品的日常監(jiān)控、故障處理、擴縮容、版本升級等產(chǎn)品化能力,能夠統(tǒng)一調(diào)度和運維管理
針對上述要求,騰訊云全棧云平臺 TCE 提供 IaaS/PaaS/SaaS 全量云產(chǎn)品矩陣,滿足企業(yè)的私有化部署,安全合規(guī)、自主可控的需求。并且支持各種芯片架構(gòu),滿足國產(chǎn)化需求。
> TCE 服務(wù)器類型和芯片架構(gòu)支持列表:https://cloud.tencent.com/solution/tce
騰訊專有云 PaaS 平臺,簡稱 Tencent TCS,以應(yīng)用為視角,在 Kubernetes 為代表的云原生核心技術(shù)基礎(chǔ)上構(gòu)建的云原生 PaaS 平臺,結(jié)合了云原生應(yīng)用的自動化編排、彈性擴容、灰度發(fā)布、微服務(wù)治理、高可用、DevOps 等優(yōu)勢。
對于多地域部署,容災(zāi)能力、RTO 等要求,騰訊云提供了 3 種部署架構(gòu):
仲裁區(qū)(Arbitration Zone)物理獨立于 MAZ(Multi-Active Zone) 和 SAZ(Single-Active Zone),并且網(wǎng)絡(luò)上和 MAZ,SAZ 可以互相通信,只部署需要選舉的分布式服務(wù),不部署具體業(yè)務(wù)服務(wù)。以 Other AZ 的角色加入到 TCS 整體架構(gòu)進行協(xié)同工作,使得之前的 MAZ,SAZ 從云平臺本身角度演進為平等角色,減少人工手動介入的步驟。
仲裁區(qū)本身鏈接 MAZ 和 SAZ 的網(wǎng)絡(luò)帶寬普遍比較低,時延也相對較大,因此采用策略不讓服務(wù)去連仲裁區(qū)節(jié)點,仲裁區(qū)只用作集群內(nèi)部選舉。
下面是經(jīng)過測試的,幾類中間件在不同部署架構(gòu)情況下時高可用和 RTO 情況:
對于 ES 來說:
● 2AZ 仲裁區(qū)部署架構(gòu):ES 集群被部署在兩個可用區(qū)中(和2AZ時一樣),當(dāng)一個可用區(qū)中的節(jié)點出現(xiàn)故障時,需要手動重新選舉主節(jié)點。這個過程需要消耗一定的時間,因此 2AZ + 仲裁區(qū)的恢復(fù)時間相對較長。
● 在 3AZ 環(huán)境架構(gòu)中:ES 集群被部署在三個不同的可用區(qū)中,每個可用區(qū)中都有多個節(jié)點。ES 集群在不同的可用區(qū)域中部署,數(shù)據(jù)也會在不同的可用區(qū)域中進行復(fù)制。因此,即使某個可用區(qū)域中的節(jié)點出現(xiàn)故障,數(shù)據(jù)仍然可以在其他可用區(qū)域中的節(jié)點上找到。ES 集群具有自動恢復(fù)功能,當(dāng)一個節(jié)點出現(xiàn)故障時,這種自動化的恢復(fù)過程可以大大縮短系統(tǒng)的恢復(fù)時間。
它在2AZ+仲裁區(qū)的容災(zāi)效果弱于3AZ。
對于Redis來說,以哨兵模式為例:
● 2AZ+仲裁區(qū)部署架構(gòu): 3 個 Sentinel 節(jié)點分別分布在 3 個可用區(qū)(1+1+1),2 個 Redis 數(shù)據(jù)節(jié)點部署在 2 個可用區(qū)(1+1,仲裁區(qū)不部署數(shù)據(jù)節(jié)點)。在 Redis 主從 + Sentinel 架構(gòu)模式下,Sentinel 負(fù)責(zé)集群高可用切換,當(dāng)其中任意一個可用區(qū)故障時,多數(shù)派 Sentinel 可以選出新的 Redis master,自動恢復(fù)服務(wù),保證集群高可用。
● 3AZ部署架構(gòu): 3 個 Sentinel 節(jié)點和 3 個 Redis 數(shù)據(jù)節(jié)點分別分布在 3 個可用區(qū)(Sentinel 1+1+1,Redis 數(shù)據(jù)節(jié)點 1+1+1),在 Redis 主從 + Sentinel 架構(gòu)模式下,Sentinel 負(fù)責(zé)集群高可用切換,當(dāng)其中任意一個可用區(qū)故障時,都可保證 Sentinel 多數(shù)派存活,進而選出新的 Redis master,自動恢復(fù)服務(wù),保證集群高可用。
它在2AZ+仲裁區(qū)的容災(zāi)效果近似等同3AZ。
對于系統(tǒng)整體而言,它有很多類似ES,Redis的這類服務(wù)組件,2AZ+仲裁區(qū)整體的容災(zāi)能力是介于2AZ和3AZ之間的。
5. 總結(jié)
2AZ,2AZ+仲裁區(qū)本身出現(xiàn)故障,系統(tǒng)恢復(fù)時間較長。因此,2AZ 仲裁區(qū)的環(huán)境架構(gòu)相對于 3AZ 的環(huán)境架構(gòu)來說,可用性和容錯性都有所下降。
在實際部署中,需要根據(jù)實際需求和業(yè)務(wù)情況,權(quán)衡各種因素,選擇最合適的環(huán)境架構(gòu)和部署方案。例如,對于金融行業(yè)和醫(yī)療行業(yè)等對可用性要求極高的行業(yè),更適合基于 3AZ 部署架構(gòu)。
在 3AZ 部署架構(gòu)中,可以使用騰訊云全部公有云能力,也可以私有化部署,滿足數(shù)據(jù)安全合規(guī)要求。并且兼容 Kubernetes、Docker 等云原生技術(shù),使得在 3AZ 部署架構(gòu)中進行應(yīng)用程序的開發(fā)和部署變得更加簡單和高效。
在最新一期的《騰訊云工具指南》中,騰訊云通過具體技術(shù)案例介紹了底層操作系統(tǒng)、數(shù)據(jù)庫、大數(shù)據(jù)等多個重點核心領(lǐng)域的遷移技術(shù)難點及解決方案。
對于國產(chǎn)化解決方案感興趣的小伙伴,可以點擊下方圖片下載。
??獲取最新《騰訊云工具指南》??