導(dǎo)讀:人們需要了解云計算供應(yīng)商區(qū)域隔離方法的差異將如何影響工作負載性能。
谷歌公司最近的宕機事件表明,可用性區(qū)域并不是獲得高可用性的靈丹妙藥。人們需要了解云計算供應(yīng)商區(qū)域隔離方法的差異將如何影響工作負載性能。
對于大規(guī)模運營的云計算提供商而言,云平臺發(fā)生故障和中斷是可以理解的(也可能是不可避免的)。AWS、Google、Microsoft這三個主要的云計算供應(yīng)商必須在運營效率和高可用性之間取得平衡,運營效率通過自動化得到改善,而高可用性則通過物理上不同的區(qū)域得到改善。
可用性區(qū)域旨在提供冗余性,但仍可能在其中發(fā)生廣泛的系統(tǒng)故障。云計算區(qū)域提供了更大程度的邏輯分離,但它們?yōu)榭鐓^(qū)域復(fù)制工作負載的組織帶來了一些問題。
盡管存在復(fù)雜性和權(quán)衡,企業(yè)需要了解與區(qū)域隔離相關(guān)的變量,以便他們可以設(shè)計高可用性和對系統(tǒng)性故障更具彈性的應(yīng)用程序。
可用性區(qū)域和云區(qū)域如何協(xié)同工作
AWS、Microsoft Azure和谷歌云都依賴于相互連接的云計算設(shè)施的三個層次結(jié)構(gòu):數(shù)據(jù)中心、松散耦合的可用性區(qū)域,以及地理分隔的云區(qū)域。
可用性區(qū)域是兩個或多個地理位置相近的數(shù)據(jù)中心的集合,通常位于同一個都市區(qū),并通過冗余、超高速、低延遲的網(wǎng)絡(luò)電路連接。而多個可用性區(qū)域可以組成一個云區(qū)域。
云區(qū)域通過專用的高性能線路連接,微軟公司稱之為“延遲定義的周邊”。云計算提供商通常在一個國家擁有多個云區(qū)域。例如,AWS公司在美國有四個商業(yè)性云區(qū)域,另外兩個云區(qū)域?qū)iT用于公共部門。
許多云計算服務(wù)(包括一些數(shù)據(jù)庫、存儲層和負載平衡器)旨在跨可用性區(qū)域自動配置資源。其他服務(wù)(如AWS身份和訪問管理或Azure CDN)可在所有云區(qū)域自動使用。正如谷歌中斷事件所示,數(shù)據(jù)中心的耦合可能導(dǎo)致整個可用性區(qū)域在適當(dāng)?shù)臈l件下發(fā)生故障。
云計算提供商方法中的變量
谷歌公司的中斷事件還突出了云計算供應(yīng)商管理可用性區(qū)域的不同之處。例如,AWS公司聲稱擁有最大程度的設(shè)施獨立性。亞馬遜公司首席技術(shù)官Werner Vogels 2018年在博客中表示,如果一個可用性區(qū)域電力中斷,不會影響另一個可用性區(qū)域運營,而一個可用性區(qū)域中的軟件錯誤不太可能蔓延到另一個可用性區(qū)域。他補充說,AWS公司為此還專門構(gòu)建了工具和程序,因此它們不會影響多個云區(qū)域。
與此同時,微軟公司在推出可用性區(qū)域方面進展緩慢,截至目前,其54個全球云區(qū)域中只有10個云區(qū)域有這些可用性區(qū)域。去年9月,缺乏廣泛的可用性區(qū)域?qū)е挛④汚zure在美國中南部的云區(qū)域發(fā)生大規(guī)模的中斷。
Azure Post Mortem強調(diào)了可用性區(qū)域內(nèi)低延遲連接的價值,指出跨區(qū)域復(fù)制為許多服務(wù)增加了太多的延遲。就這些數(shù)據(jù)中心之間的連接而言,云計算運營商對其內(nèi)部設(shè)施、系統(tǒng)和網(wǎng)絡(luò)的設(shè)計細節(jié)是眾所周知的隱私。然而,一些公開的細節(jié)也暴露了它們的規(guī)模和復(fù)雜性。
AWS公司表示,連接其各種數(shù)據(jù)中心和云區(qū)域的專用網(wǎng)絡(luò)建立在通過跨洋電纜連接的全球冗余并行100 GbE城域光纖網(wǎng)絡(luò)上。
谷歌公司運營著一個全球私有網(wǎng)絡(luò),估計占全球所有互聯(lián)網(wǎng)流量的25%左右。谷歌公司在2018年表示,在過去三年中花費了300億美元來建設(shè)其云計算基礎(chǔ)設(shè)施,包括增加新的區(qū)域和幾條海底光纜。
谷歌公司使用自行開發(fā)的軟件定義網(wǎng)絡(luò)和分布式控制平臺以及網(wǎng)絡(luò)結(jié)構(gòu)管理器,通過跨多個數(shù)據(jù)中心復(fù)制和共享配置數(shù)據(jù)來提供高可用性(HA)。它還使用容器集群來支持實時工作負載遷移和“無中斷”數(shù)據(jù)平臺升級。
微軟Azure表示其云區(qū)域旨在將故障隔離到一個云區(qū)域中,并且一個云區(qū)域中的故障不應(yīng)影響其他區(qū)域。
使用云內(nèi)和云平臺之間的區(qū)域
跨多個云區(qū)域分發(fā)應(yīng)用程序工作負載和數(shù)據(jù)庫是通過云計算基礎(chǔ)設(shè)施實現(xiàn)高可用性的最佳方式。但是,組織必須在這樣做時必須理解和設(shè)計網(wǎng)絡(luò)性能的可變性。
云計算提供商在路由流量方面存在差異,這會顯著影響網(wǎng)絡(luò)延遲。沒有一個云計算提供商可以保證甚至公布其區(qū)域間性能的數(shù)據(jù)。
然而,網(wǎng)絡(luò)監(jiān)控供應(yīng)商ThousandEyes公司于2018年11月進行的詳細研究提供了大量有用的見解。雖然其演示文稿的觀點還需要一些探討和研究,但以下是云計算廣域網(wǎng)性能的一些關(guān)鍵點。
1 可用性區(qū)域內(nèi)的性能優(yōu)異,一致性滿足低于2ms網(wǎng)絡(luò)延遲的目標(biāo)。
2 云區(qū)域之間表現(xiàn)在美國和歐洲最好,在亞洲和大洋洲表現(xiàn)最差。美國和歐洲地區(qū)之間的表現(xiàn)也相當(dāng)不錯。
3 亞洲的各供應(yīng)商的績效差異很大,其中AWS公司具有最高的網(wǎng)絡(luò)可變性。
4 AWS、Azure、谷歌云將網(wǎng)絡(luò)彼此對等,這意味著它們之間的流量不會流經(jīng)主干,并遍歷公共互聯(lián)網(wǎng)。因此,在云平臺之間移動數(shù)據(jù)時存在疏忽的數(shù)據(jù)包丟失和抖動,盡管在單個云場景中區(qū)域間延遲會有相同的差異。
在使用多個云區(qū)域來提高應(yīng)用程序可用性時,需要考慮應(yīng)用程序流量的來源(大多數(shù)最終用戶所在的位置)以及區(qū)域間網(wǎng)絡(luò)延遲的可變性,以及三大云計算提供商在路由全球流量的差異。