新聞中心
系統(tǒng)和混沌測試:實現(xiàn)云彈性的一種方法
譯文
作者:李睿 2022-01-06 09:00:00
云計算 在當(dāng)今數(shù)字技術(shù)時代,停機意味著企業(yè)的業(yè)務(wù)中斷和收入損失,因此構(gòu)建彈性云計算架構(gòu)勢在必行。例如在新冠疫情期間,由于發(fā)布出行禁令,IT維護團隊難以本地重新啟動和維護數(shù)據(jù)中心中的服務(wù)器。

為江陽等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及江陽網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、江陽網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
【51CTO.com快譯】在當(dāng)今數(shù)字技術(shù)時代,停機意味著企業(yè)的業(yè)務(wù)中斷和收入損失,因此構(gòu)建彈性云計算架構(gòu)勢在必行。例如在新冠疫情期間,由于發(fā)布出行禁令,IT維護團隊難以本地重新啟動和維護數(shù)據(jù)中心中的服務(wù)器。這可能會導(dǎo)致用戶訪問數(shù)據(jù)或軟件的巨大障礙,導(dǎo)致生產(chǎn)率下降,并在內(nèi)部部署設(shè)施停機時造成業(yè)務(wù)中斷。
此時行之有效的解決方案是將企業(yè)的業(yè)務(wù)遷移到云計算基礎(chǔ)設(shè)施,IT員工可以通過遠程工作來提供全天候的技術(shù)支持以確保安全運營。云計算在這里扮演了救世主的角色。很多企業(yè)希望充分利用云計算的潛力,因此,云計算操作的可觀察性和彈性變得勢在必行。
在技術(shù)驅(qū)動的商業(yè)經(jīng)濟中,云計算服務(wù)中斷面臨的后果將是災(zāi)難性的。任何故障和中斷都會導(dǎo)致多米諾骨牌效應(yīng),阻礙系統(tǒng)性能。因此,企業(yè)必須通過系統(tǒng)和混沌測試在其云計算架構(gòu)中構(gòu)建彈性。
混沌測試是一種可以處理大規(guī)模分布式系統(tǒng)中的混亂問題的可試驗的、基于系統(tǒng)的方法。人們需要了解彈性和可觀察性的含義,以及系統(tǒng)和混沌測試對于避免停機和業(yè)務(wù)中斷來說至關(guān)重要的原因。
為避免云計算服務(wù)中斷,企業(yè)必須通過以連續(xù)和混亂的方式對其進行測試,在其云架構(gòu)中構(gòu)建彈性。
1.可觀察性
可觀察性可以通過兩個方面來理解:一方面是通過控制理論將可觀察性解釋為通過對其外部輸出的推斷來理解系統(tǒng)狀態(tài)的過程。另一方面將可觀察性的學(xué)科和方法解釋為旨在衡量不確定性和未知數(shù)。
它有助于了解系統(tǒng)或應(yīng)用程序的屬性。云計算的可觀察性是利用不同的域、規(guī)模和服務(wù)的端到端監(jiān)控的先決條件??捎^察性不應(yīng)與監(jiān)控混淆,因為監(jiān)控用于了解應(yīng)用程序中問題和異常的根本原因。監(jiān)控會告訴IT人員什么時候出現(xiàn)了問題,而可觀察性可以幫助他們了解為什么會出錯。它們的目的不同,但卻是相互補充的。
云計算系統(tǒng)需要可觀察性和彈性,以確保更少的停機時間、更快的應(yīng)用程序速度等。
2.彈性
而遷移到云平臺的企業(yè)都應(yīng)確保并測試其系統(tǒng)的穩(wěn)定性、可靠性、可用性和彈性,其中彈性位于層次結(jié)構(gòu)的最高層。穩(wěn)定性是保證系統(tǒng)和服務(wù)器不會經(jīng)常崩潰;可用性通過將應(yīng)用程序分布在不同位置以減輕工作負載來確保系統(tǒng)正常運行;可靠性確保云計算系統(tǒng)有效運行和可用。但是,如果企業(yè)想要解決不可預(yù)見的問題,那么不斷測試彈性就變得必不可少。
彈性是指預(yù)期會出現(xiàn)問題,并且系統(tǒng)經(jīng)過測試以解決和調(diào)整自身以解決該問題。系統(tǒng)的彈性并不是自動實現(xiàn)的。彈性系統(tǒng)承認復(fù)雜的系統(tǒng)和問題,并努力逐步采取措施應(yīng)對錯誤。它需要不斷測試以減少問題或故障的影響。而持續(xù)測試可以避免云計算服務(wù)故障,以確保更高的性能和效率。
可以通過現(xiàn)場彈性設(shè)計和利用混沌測試等系統(tǒng)測試方法實現(xiàn)彈性。
傳統(tǒng)測試及其不足的原因
傳統(tǒng)測試可以確保應(yīng)用程序的無縫設(shè)置和遷移到云計算系統(tǒng),并額外監(jiān)控它們的執(zhí)行和工作效率。這足以確保云計算系統(tǒng)不會根據(jù)設(shè)計考慮改變應(yīng)用程序的性能和功能。
采用傳統(tǒng)測試是不夠的,因為它在發(fā)現(xiàn)潛在的隱藏架構(gòu)問題和異常方面效率低下。一些故障似乎處于休眠狀態(tài),因為它們僅在觸發(fā)特定條件時才變得可見。
云計算的高可用性承諾
微軟公司云計算業(yè)務(wù)主管Scott Guthrie在談到云計算的未來和發(fā)展前景時說,“我們看到數(shù)字空間的發(fā)展速度加快。云計算讓我們能夠按照摩爾定律的速度進行擴展,而且還能快速擴展并使用更少的基礎(chǔ)設(shè)施?!庇捎谛鹿谝咔閷?dǎo)致企業(yè)員工被迫在家遠程工作,云計算投資并沒有激增。但是,由于這種前所未有的需求,所有超大規(guī)模廠商都不得不采取節(jié)流和優(yōu)先級控制措施,這違背了公共云的按需彈性原則。
在中斷和停機方面,公共云也會出錯。例如,谷歌公司最近發(fā)生的宕機事件使Gmail和Youtube等多個谷歌服務(wù)停止,這表明公共云也會出現(xiàn)系統(tǒng)宕機。因此,這場疫情為彈性云計算系統(tǒng)增加了幾個視角:
1.系統(tǒng)必須平穩(wěn)運行,即使在線流量的意外激增也不會改變。
2.系統(tǒng)必須尋找替代方法來管理功能和資源池,以防額外的資源分配請求被云計算提供商拒絕或限制。
3.系統(tǒng)應(yīng)該是可訪問和安全的,以處理未知位置并轉(zhuǎn)移到混合工作環(huán)境(可能是網(wǎng)絡(luò)防火墻之外的多個端點)。
新冠疫情凸顯了對彈性云系統(tǒng)進行連續(xù)和混沌測試的價值。一個具有彈性且經(jīng)過全面測試的系統(tǒng)將能夠以安全、無縫、穩(wěn)定的方式管理額外的擁塞流量。為了檢測未知流量,需要混沌測試和混沌工程。
僅靠云原生應(yīng)用程序設(shè)計不足以實現(xiàn)彈性
在公共云中,由于云計算提供商提供的基本功能、多層/多技術(shù)基礎(chǔ)設(shè)施以及云計算系統(tǒng)的分布式特性存在差距,應(yīng)用程序彈性架構(gòu)變得更加重要。即使底層基礎(chǔ)設(shè)施的可用性和彈性由云計算提供商提供,這也可能導(dǎo)致云計算應(yīng)用程序以不可預(yù)測的方式失敗。
為建立良好的應(yīng)用程序彈性基礎(chǔ),在設(shè)計過程中,云計算工程師應(yīng)采用以下策略來測試、評估和表征應(yīng)用程序?qū)訌椥裕?/p>
1.利用架構(gòu)良好的整體解決方案架構(gòu)框架,并采用云原生能力實現(xiàn)可用性和災(zāi)難恢復(fù)。
2.與云計算架構(gòu)師和技術(shù)架構(gòu)師合作,定義可用性目標,并推導(dǎo)出應(yīng)用程序和數(shù)據(jù)庫層彈性屬性。
在建模的同時,根據(jù)預(yù)期或觀察到的使用模式定義假設(shè)的故障模型,并根據(jù)業(yè)務(wù)影響為這些故障模式制定測試計劃。
通過采用架構(gòu)驅(qū)動的測試方法,企業(yè)可以在上線之前深入了解云計算應(yīng)用程序彈性的基本級別,并且可以為性能修復(fù)活動分配足夠的時間,但仍然需要在云原生應(yīng)用程序設(shè)計中測試應(yīng)用程序的未知故障和多個方面的故障點。
混沌測試與站點可靠性工程
混沌測試是一種有意將壓力和異常引入云計算架構(gòu)中的方法,以系統(tǒng)地測試系統(tǒng)的彈性。
首先明確指出的是,混沌測試并不能替代實際的測試系統(tǒng),這只是衡量錯誤的另一種方法。通過混沌測試,IT團隊可以看到發(fā)生了什么情況以及如何反應(yīng)。但是,最重要的是,它可以幫助他們衡量系統(tǒng)在可觀察性和彈性方面的差距,而這是最初被忽視的事情。
Netflix公司在2011年遷移到云計算系統(tǒng)時率先采用了這種強大的測試方法,混沌測試揭示低效率,并引導(dǎo)開發(fā)團隊進行更改、測量和提高彈性,幫助云計算架構(gòu)師更好地理解和更改他們的設(shè)計。
持續(xù)、系統(tǒng)和混沌的測試增加了云計算基礎(chǔ)設(shè)施的彈性,有效地增強了系統(tǒng)的彈性,并最終增強了管理和運營團隊對其正在構(gòu)建的系統(tǒng)的信心。
而企業(yè)必須部分或完全在云計算基礎(chǔ)設(shè)施上創(chuàng)建彈性IT系統(tǒng)。
使用混沌測試和站點可靠性工程可以幫助企業(yè)在以下方面保持彈性:
- 云計算和基礎(chǔ)設(shè)施彈性。
- 通過持續(xù)監(jiān)控實現(xiàn)數(shù)據(jù)彈性。
- 通過確保用戶界面在高壓力條件下保持穩(wěn)定,用戶和客戶體驗彈性。
- 通過將安全與治理和控制機制相結(jié)合來實現(xiàn)彈性網(wǎng)絡(luò)安全。
- 對基礎(chǔ)設(shè)施、應(yīng)用程序和數(shù)據(jù)的彈性支持。
為了建立完整的應(yīng)用程序彈性,除了前面提到的云計算應(yīng)用程序設(shè)計方面,解決方案架構(gòu)師還需要采用架構(gòu)模式,允許注入特定故障以觸發(fā)內(nèi)部錯誤,從而在開發(fā)和測試階段模擬故障。
故障觸發(fā)器的一些常見示例是響應(yīng)延遲、資源占用、網(wǎng)絡(luò)中斷、瞬態(tài)條件、用戶的極端操作等等。
- 為常見的已識別場景制定持續(xù)監(jiān)控、管理和自動化事件響應(yīng)的計劃。
- 建立混沌測試框架和環(huán)境。
- 注入不同嚴重程度和組合的故障并監(jiān)控應(yīng)用層行為。
- 識別異常行為并重復(fù)上述步驟以確認關(guān)鍵性。
如何進行混沌測試
混沌測試可以通過在云計算結(jié)構(gòu)的任何七層中引入異常來完成,幫助評估對彈性的影響。
當(dāng)Netflix公司在2011年成功發(fā)布其彈性工具Chaos Monkey時,許多開發(fā)團隊將其用于混沌工程測試系統(tǒng)。還有另一個由軟件工程師開發(fā)的工具測試系統(tǒng)Gremlin,它也在做同樣的事情。但是,如果想在當(dāng)前新冠疫情背景下執(zhí)行混沌測試,則可以使用GameDay來實現(xiàn)。這會刺激流量突然增加而出現(xiàn)的異常現(xiàn)象;例如,客戶同時訪問一個移動應(yīng)用程序。GameDay的目標不僅是測試彈性,還要增強系統(tǒng)的可靠性。
為確?;煦鐪y試成功,需要采取以下步驟:
1.識別:識別系統(tǒng)中的關(guān)鍵弱點,并創(chuàng)建一個假設(shè)以及預(yù)期結(jié)果。工程師需要識別和評估在假設(shè)框架內(nèi)注入什么樣的故障。
2.模擬:根據(jù)真實事件在生產(chǎn)過程中注入異常。這可確保將系統(tǒng)中可能發(fā)生的情況包括在內(nèi)。這可能會導(dǎo)致應(yīng)用程序或網(wǎng)絡(luò)中斷或節(jié)點故障。
3.自動化:需要這些實驗實現(xiàn)自動化,可能是每小時或每周等。這確保了連續(xù)性,這是混沌工程中的一個不利因素。
4.持續(xù)反饋和完善:這些實驗有兩個結(jié)果,可以確保彈性或檢測需要解決的問題,可以從中獲得反饋以改進系統(tǒng)。
在系統(tǒng)上引發(fā)錯誤攻擊和序列的其他具體方法可能是:
- 增加網(wǎng)絡(luò)延遲。
- 切斷預(yù)定任務(wù)。
- 切斷微服務(wù)。
- 斷開系統(tǒng)與數(shù)據(jù)中心的連接。
結(jié)語
在當(dāng)今云遷移和云計算使用量激增的數(shù)字時代,增強云計算彈性以提高應(yīng)用程序的有效性能變得勢在必行。而在項目的生命周期中,持續(xù)和系統(tǒng)的測試是必不可少的,而且在公共云負擔(dān)過重的情況下,也要確保云計算架構(gòu)的彈性。通過防止長時間的中斷,企業(yè)可以節(jié)省大量成本并避免損失,此外,還可以確保為客戶提供服務(wù)的持久性。因此,混沌測試成為采用大規(guī)模分布式系統(tǒng)的必要條件。
原文標題:Systematic and Chaotic Testing: A Way to Achieve Cloud Resilience,作者:Gaurav Aggarwal
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】
分享名稱:系統(tǒng)和混沌測試:實現(xiàn)云彈性的一種方法
文章網(wǎng)址:http://www.dlmjj.cn/article/cceiosj.html


咨詢
建站咨詢
