北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成為企業(yè)急需解決的問題。
韌性是應(yīng)用程序抵御中斷或從中恢復(fù)的能力,包括與基礎(chǔ)設(shè)施、依賴服務(wù)、錯誤配置、網(wǎng)絡(luò)問題和負(fù)載激增相關(guān)的中斷。在亞馬遜云科技,構(gòu)建云韌性是一項最基礎(chǔ)的工作。亞馬遜云科技從一開始并持續(xù)在其基礎(chǔ)設(shè)施、服務(wù)設(shè)計與部署、運營模式和機(jī)制中將韌性考慮其中。在此基礎(chǔ)上,亞馬遜云科技還提供一套全面的服務(wù)、最佳實踐等,進(jìn)一步幫助客戶提升自身的韌性。
亞馬遜云科技的韌性始于全球基礎(chǔ)設(shè)施
亞馬遜云科技全球基礎(chǔ)設(shè)施地理位置分散,遍及34個地理區(qū)域的108個可用區(qū)。為了避免單點故障的影響范圍,亞馬遜云科技最小化全球基礎(chǔ)設(shè)施之間的互聯(lián)性。每個區(qū)域都獨立于其他區(qū)域,區(qū)域之間的這種隔離機(jī)制確保單個區(qū)域發(fā)生服務(wù)故障時,其他區(qū)域不受影響仍正常運營。每個區(qū)域由三個或更多個相互獨立,且在物理上分隔的可用區(qū)組成。每個可用區(qū)都有獨立的電力、制冷和物理安全設(shè)施,同一區(qū)域內(nèi)的可用區(qū)之間的物理距離也經(jīng)過精心計算——通常是100公里以內(nèi)??捎脜^(qū)的這種隔離機(jī)制,既能防止如供電、冷卻等常見故障點,也能避免同時受到如地震、洪水等大規(guī)模災(zāi)害的影響??捎脜^(qū)之間又通過冗余的超低延遲網(wǎng)絡(luò)連接,可實現(xiàn)可用區(qū)間單位毫秒級延遲的數(shù)據(jù)同步復(fù)制。為了獲得高可用性的同時可以實現(xiàn)更大的容錯能力,客戶可以將他們的應(yīng)用程序設(shè)計為在多個可用區(qū)中運行。
亞馬遜云科技將韌性根植于服務(wù)及架構(gòu)設(shè)計中
亞馬遜云科技構(gòu)建的服務(wù)均滿足極高的可用性目標(biāo)。在服務(wù)/系統(tǒng)設(shè)計時,亞馬遜云科技使用通過對服務(wù)的控制平面和數(shù)據(jù)平面進(jìn)行隔離設(shè)計,并采用"單元架構(gòu)"設(shè)計模式,減少故障發(fā)生的可能,并盡可能降低故障發(fā)生時的影響范圍。
亞馬遜云科技服務(wù)分為控制平面和數(shù)據(jù)平面,并對他們進(jìn)行分離設(shè)計,即數(shù)據(jù)平面不依賴于控制平面而獨立運行,當(dāng)控制平面發(fā)生故障的情況下數(shù)據(jù)平面仍能繼續(xù)正常運行。其中,控制平面提供用于創(chuàng)建、讀取/描述、更新、刪除和列出(CRUDL)資源的管理 API,例如啟動新的 Amazon EC2 實例、創(chuàng)建 Amazon S3 存儲桶以及描述 Amazon SQS 隊列等。數(shù)據(jù)平面是提供服務(wù)的主要功能,例如正在運行的 Amazon EC2 實例本身、讀取和寫入 Amazon EBS 卷、在 Amazon S3 存儲桶中獲取和放置對象等??刂破矫嫱菑?fù)雜的協(xié)調(diào)和聚合系統(tǒng),會執(zhí)行多項任務(wù);數(shù)據(jù)平面則沒那么復(fù)雜,相比控制平面其發(fā)生故障事件的可能性要小。這類似于火車系統(tǒng),控制平面相當(dāng)于指揮中心,數(shù)據(jù)平面則是鐵路線路,當(dāng)指揮中心如通訊系統(tǒng)出現(xiàn)臨時故障時,火車仍然能按照既定線路運行。
亞馬遜云科技根據(jù)區(qū)域和可用區(qū)的隔離機(jī)制以及控制平面和數(shù)據(jù)平面分離的原則,提供三種服務(wù)類型:全局(Global)服務(wù)、區(qū)域級(Region)服務(wù)、可用區(qū)級(AZ)服務(wù)。全局服務(wù)的控制平面和數(shù)據(jù)平面不是在每個區(qū)域中獨立存在。全局服務(wù)以 Amazon Identity and Access Management(Amazon IAM)為例,該服務(wù)是全局服務(wù),它的數(shù)據(jù)平面獨立存在于每個區(qū)域(Region),該區(qū)域中的每個云服務(wù)都直接與 Amazon IAM 數(shù)據(jù)平面交互。Amazon IAM 有獨立的控制平面,客戶可以使用它來管理身份和策略等 IAM 資源。當(dāng) IAM 控制平面故障的情況下,無需任何更改,每個區(qū)域的身份驗證和授權(quán)(即 IAM 的數(shù)據(jù)平面)都可以繼續(xù)正常運行。
區(qū)域級服務(wù)是建立在多個可用區(qū)域之上的服務(wù),數(shù)據(jù)平面和控制平面都是區(qū)域級別。以 Amazon S3 為例,將請求和數(shù)據(jù)分布在多個可用區(qū)之間,可以自動從可用區(qū)故障中恢復(fù)。
可用區(qū)級服務(wù)可在一個區(qū)域內(nèi)的每個可用區(qū)中獨立運行,不依賴于其他可用區(qū)中的組件,可用區(qū)服務(wù)可以指定將資源部署到哪個可用區(qū),如 Amazon EC2 屬于可用區(qū)級服務(wù)??蛻艨梢酝ㄟ^部署多可用區(qū)架構(gòu)運行具有更高可用性、容錯能力和可擴(kuò)展性的生產(chǎn)級工作負(fù)載。當(dāng)工作負(fù)載使用多個可用區(qū)架構(gòu)時,可以更好地隔離和保護(hù)客戶免受影響單個可用區(qū)物理基礎(chǔ)設(shè)施問題的影響,即使一個可用區(qū)出現(xiàn)故障,工作負(fù)載也能保持運行。
此外,為了進(jìn)一步降低故障發(fā)生時的影響范圍即"爆炸半徑",亞馬遜云科技還采用了"單元架構(gòu)"設(shè)計模式。該模式將服務(wù)切分為多個部署堆棧,每個部署堆棧稱為"單元" ,每個單元之間都是互相獨立的,不共享任何內(nèi)容,包括數(shù)據(jù)庫,每個單元服務(wù)于一個或多個客戶。采用了單元架構(gòu)后,以可用區(qū)級別的服務(wù)為例,服務(wù)發(fā)生故障的影響范圍就限制在單元內(nèi),而不是整個可用區(qū)。
"經(jīng)驗沒有壓縮算法"——通過卓越的運營和機(jī)制確保云服務(wù)的韌性
亞馬遜云科技還建立內(nèi)部運營機(jī)制,通過服務(wù)責(zé)任模型、運營就緒審查、安全/持續(xù)部署以及錯誤流程糾錯來確保云服務(wù)的韌性。其中,亞馬遜云科技的工程和產(chǎn)品管理工作由小型多學(xué)科團(tuán)隊領(lǐng)導(dǎo),他們對所提供的服務(wù)擁有強(qiáng)大的所有權(quán)——不僅負(fù)責(zé)設(shè)計和發(fā)布服務(wù),還負(fù)責(zé)在生產(chǎn)過程中運營服務(wù),并在出現(xiàn)問題時隨時待命。
在一項服務(wù)發(fā)布之前,亞馬遜云科技還會使用"運營就緒審查"流程來審核所有新服務(wù)的運營準(zhǔn)備情況。當(dāng)對部署軟件進(jìn)行服務(wù)更新或推出新服務(wù)時,亞馬遜云科技會使用安全、持續(xù)的部署管道。為了最大限度地減少錯誤部署對生產(chǎn)造成的潛在影響,亞馬遜云科技通過使用廣泛的預(yù)生產(chǎn)測試、自動回滾和交錯生產(chǎn)部署,將自動化部署安全構(gòu)建到發(fā)布過程中。例如,一項服務(wù)的更新會從小處開始,首先部署到可用區(qū)內(nèi)的單個最小單元,并經(jīng)過指定的等待期以驗證沒有出現(xiàn)問題,再逐步部署到整個可用區(qū)的其余部分、其他可用區(qū)、單個區(qū)域,最后部署到其余區(qū)域。
此外,亞馬遜云科技還利用"糾錯流程",對客戶事件進(jìn)行分析、研究,找出根本原因,減少其他服務(wù)發(fā)生類似問題的可能性,防患于未然。
亞馬遜云科技賦能客戶利用"云韌性"提升"云中韌性"
構(gòu)建韌性是一個持續(xù)的過程,而不是一次性的努力。為了幫助客戶更輕松地提升云中應(yīng)用的韌性,亞馬遜云科技基于自身以及多年服務(wù)客戶的廣泛經(jīng)驗,總結(jié)了一套包含了服務(wù)、策略和架構(gòu)最佳實踐的"韌性系統(tǒng)建設(shè)生命周期框架"。該框架包含五個階段:設(shè)定目標(biāo)、設(shè)計和實施、驗證和測試、持續(xù)運營以及響應(yīng)和改進(jìn)。
亞馬遜云科技在每個階段都為客戶提供了適用的工具和服務(wù)。例如,客戶可以使用 Amazon Resilience Hub 來設(shè)置目標(biāo),根據(jù)這些目標(biāo)評估韌性狀況,并根據(jù)Amazon Well-Architected Framework和 Amazon Trusted Advisor 的建議實施改進(jìn)措施。在 Resilience Hub 中,客戶可以創(chuàng)建和運行 Amazon Fault Injection Service 實驗,這些實驗允許客戶測試其應(yīng)用程序?qū)⑷绾雾憫?yīng)某些類型的中斷。其他服務(wù),如 Amazon Backup、Amazon Elastic Disaster Recovery (Amazon DRS) 和 Amazon Route53 Application Recovery Controller (Route 53 ARC),可以幫助客戶快速響應(yīng)和從中斷中恢復(fù)。
結(jié)語
正如亞馬遜首席信息官 Werner Vogels 曾說過"Everything fails all the time"(故障總在情理之中、意料之外),這也是亞馬遜云科技從開始并始終加強(qiáng)和發(fā)展韌性的原因。亞馬遜云科技將持續(xù)為客戶提供廣泛、深入的架構(gòu)及運營最佳實踐服務(wù)、工具和指導(dǎo),幫助客戶在云中構(gòu)建和運行韌性的應(yīng)用程序。