你了解自己系統中某個(gè)特定服務(wù)使用的產(chǎn)能是多少,對于可擴展性來(lái)說(shuō),至關(guān)重要。知道這一點(diǎn),就可以計算距離擴展,你還有多少時(shí)間和發(fā)展空間。它是規劃余量和基礎設施項目、拆分數據庫/應用以及制定預算的基礎。而確保你計算準確的方法是對所有發(fā)布的版本都進(jìn)行性能測試,這樣可以保證你沒(méi)有引人意想不到的負載增加。一個(gè)組織在一次發(fā)布中達到了所允許的最大負載增量是很常見(jiàn)的。當你在產(chǎn)能規劃方面變得日益成熟時(shí),你就會(huì )把新功能帶來(lái)的負載看作一種成本,要把它計入成本收益分析。此外,為了確保預計的斷點(diǎn)和性能下降曲線(xiàn)仍舊與以前識別的一樣,壓力測試也是必需的。有可能常規的使用負載沒(méi)有變化,但新的代碼路徑或邏輯改變卻會(huì )造成整體負載能力的下降。例如,如果一個(gè)數據結果的查詢(xún)增加了90毫秒,那么在用戶(hù)請求的整體響應時(shí)間中,它可能不會(huì )引起注意,但如果這個(gè)服務(wù)是和其他服務(wù)同步綁定在一起的,如負載構建服務(wù),那么成百上千個(gè)90毫秒的延遲累加起來(lái),就會(huì )降低該服務(wù)的最大產(chǎn)能。

當我們討論變更管理時(shí),我們不只討論了適用于創(chuàng )業(yè)公司的輕量級變更識別流程,還討論了積極管理生產(chǎn)環(huán)境中的變更的公司可以采用的完整變更管理流程。我們把變更管理定義為由下列組件構成,即變更建議、變更批準、變更日程安排、變更實(shí)施和記錄、變更驗證以及變更審查。性能測試和壓力測試強化了變更管理流程,它們提供了實(shí)踐性的實(shí)現,并且非常重要的是,驗證了變更。如果你沒(méi)有證明一個(gè)變更會(huì )真的按照你預想的那樣影響系統,例如修復了一個(gè)bug或者提供了一個(gè)新功能,那么你一定不想實(shí)施這個(gè)變更。作為性能測試和壓力測試的一部分,我們可以在一個(gè)可控的環(huán)境中驗證預計的變更結果。這個(gè)額外的步驟,可以確保變更在生產(chǎn)環(huán)境中實(shí)施后,它能夠在各種負載下,像它在測試時(shí)表現的那樣運行。
在把性能測試和壓力測試關(guān)聯(lián)到可擴展性時(shí),我們應該考慮的最重要的因素是風(fēng)險管理。要確保你的系統能夠擴展,風(fēng)險管理是最重要的流程之一。在風(fēng)險管理之前要進(jìn)行風(fēng)險分析,即嘗試計算各種行動(dòng)或組件中的風(fēng)險大小。性能測試和壓力測試是兩種能夠大大降低某次服務(wù)變更帶來(lái)的風(fēng)險的方法。例如,如果我們使用的是故障模式和后果分析法,識別出某個(gè)功能的故障模式是會(huì )增加查詢(xún)時(shí)間,而建議的補救措施是在真實(shí)的負載條件下測試這個(gè)功能,就像性能測試一樣,以確定該功能的真正反應。還可以像壓力測試那樣,用極限負載來(lái)進(jìn)行測試,以觀(guān)察該功能在超常規條件下的反應。這兩種測試都能提供更多關(guān)于該功能的真實(shí)性能都是強有力的工具。的信息,從而降低了風(fēng)險。對于降低或管理每次發(fā)布的風(fēng)險或系統整體的風(fēng)險來(lái)說(shuō),這兩種測試有著(zhù)內在的聯(lián)系。
不過(guò),正如我們在討論網(wǎng)站建設壓力測試時(shí)所警告的,制造測試負載并不容易,如從余量、變更控制和風(fēng)險管理這三個(gè)方面,我們可以發(fā)現系統的可擴展性與采用性能和壓力流程。如果做得不好,會(huì )生成錯誤的數據。但這并不意味著(zhù)就不值得去理解、實(shí)施以及(最終)掌握這些測試。
本文地址:http://havencoinwallet.com//article/3860.html