云計(jì)算實(shí)例在計(jì)算能力、內(nèi)存、存儲(chǔ)和對(duì)GPU的支持、機(jī)器學(xué)習(xí)和其他專門功能方面具有廣泛的應(yīng)用范圍。管理人員應(yīng)該讓應(yīng)用程序需求決定云計(jì)算實(shí)例的類型和規(guī)模,尤其是因?yàn)殄e(cuò)誤的匹配會(huì)導(dǎo)致性能低下和成本高昂的情況。
某些應(yīng)用程序可能需要更大的云計(jì)算實(shí)例,這意味著需要高水平計(jì)算、存儲(chǔ)和其他資源的虛擬機(jī),而其他應(yīng)用程序可以在資源較少的規(guī)模較小實(shí)例上運(yùn)行良好。但并不是每個(gè)用戶一開始都會(huì)使用正確的云計(jì)算實(shí)例,云計(jì)算應(yīng)用程序的動(dòng)態(tài)特性意味著配對(duì)并不總是按計(jì)劃工作。
可以使用云優(yōu)化工具和技術(shù)來選擇正確的云計(jì)算實(shí)例類型和規(guī)模,然后根據(jù)需要隨時(shí)重置和調(diào)整它們。
定義應(yīng)用程序要求
云托管應(yīng)用程序需要與本地應(yīng)用程序不同的思維模式。IT經(jīng)理通常會(huì)過度配置本地應(yīng)用程序,因?yàn)橐院髷U(kuò)展其他資源是一項(xiàng)挑戰(zhàn)。云計(jì)算應(yīng)用程序更容易按需擴(kuò)展,而需要擴(kuò)展的特定資源(如計(jì)算、內(nèi)存和存儲(chǔ))因工作負(fù)載而異。例如,數(shù)據(jù)庫應(yīng)用程序需要比網(wǎng)絡(luò)服務(wù)器更多的內(nèi)存和存儲(chǔ)IOPS,這對(duì)計(jì)算提出了更高的要求。
Enterprise Management Associates管理研究主管Torsten Volk表示,由于企業(yè)需要了解應(yīng)用程序的資源使用模式(最好是一年),因此很難確定云計(jì)算實(shí)例的規(guī)模。
檢查云計(jì)算供應(yīng)商的CPU、內(nèi)存、存儲(chǔ)等資源限制。盡管云計(jì)算提供商的工具可以幫助確定應(yīng)用程序的最佳實(shí)例類型和設(shè)置,但這些供應(yīng)商幾乎沒有動(dòng)力向客戶提供復(fù)雜的云優(yōu)化工具,因?yàn)檫^度配置可能是其收入來源。管理人員將需要實(shí)現(xiàn)其他技術(shù),以及可能的第三方優(yōu)化工具,以全面了解情況。
分析指標(biāo)以推動(dòng)優(yōu)化
利用率指標(biāo)(如CPU、存儲(chǔ)、內(nèi)存和網(wǎng)絡(luò)容量)可以顯示實(shí)例的規(guī)模是否適合應(yīng)用程序。例如,大量的請(qǐng)求延遲可能表示實(shí)例規(guī)模,無法處理當(dāng)前負(fù)載。
云計(jì)算咨詢機(jī)構(gòu)Candid Partners公司的高級(jí)云架構(gòu)師Beau Bennett表示,“在確定正確的實(shí)例規(guī)模時(shí),一定要理解峰值是如何影響指標(biāo)的。”
應(yīng)該有足夠的備用容量來處理使用的峰值,只需要足夠長的時(shí)間來進(jìn)行水平擴(kuò)展。如果單個(gè)指標(biāo)遠(yuǎn)遠(yuǎn)高于其他指標(biāo)(例如,如果內(nèi)存被完全使用,但CPU和網(wǎng)絡(luò)容量很低),那么可能是使用不同的實(shí)例規(guī)模的時(shí)候了。
建立監(jiān)控和調(diào)整循環(huán)
為確保云計(jì)算應(yīng)用程序有效擴(kuò)展,需要在指標(biāo)和操作之間創(chuàng)建反饋循環(huán)。監(jiān)控指標(biāo)顯示高利用率或低利用率時(shí),請(qǐng)對(duì)實(shí)例規(guī)?;蝾愋瓦M(jìn)行小幅調(diào)整。繼續(xù)監(jiān)控這些指標(biāo),以了解更改如何影響應(yīng)用程序性能和效率。
強(qiáng)大的持續(xù)集成/連續(xù)部署(CI/CD)管道,借助基于策略的控制和自動(dòng)化進(jìn)行更改,可以幫助云計(jì)算管理員調(diào)整設(shè)置,而不會(huì)產(chǎn)生意外后果或冗長的手動(dòng)流程。Bennett說,基礎(chǔ)設(shè)施作為代碼,資源被模板化并用編程語言編寫,也有助于持續(xù)的云優(yōu)化。
性能和利用率指標(biāo)是云計(jì)算提供商的核心產(chǎn)品,或者組織可以轉(zhuǎn)向第三方產(chǎn)品,這些產(chǎn)品提供所使用實(shí)例的概述。
使用云成本管理工具
本地成本管理工具(包括Azure成本管理、AWS成本管理和Google權(quán)限推薦)可以幫助進(jìn)行優(yōu)化,但可能不足以準(zhǔn)確估算所有工作負(fù)載的需求。例如,Google Rightsizing Recommendations可以根據(jù)運(yùn)行的平均值建議實(shí)例規(guī)模調(diào)整。但是,這種平均利用率信息不足以滿足每月或每季度發(fā)生一次峰值的Spikey應(yīng)用程序,或基于特定事件(如黑色星期五)。
Volk警告說,“需要分析重要的工作負(fù)載,以將平均使用量和峰值使用量都包括在其云實(shí)例規(guī)模決定中。”
此外,這些工具可能無法跟蹤對(duì)應(yīng)用程序很重要的所有必需資源。例如,Google Rightsizing Recommendations只考慮CPU、內(nèi)存和存儲(chǔ)大小。某些應(yīng)用程序具有其他限制因素,例如網(wǎng)絡(luò)IOPS。此外,該工具不考慮某些部署類型,例如Kubernetes集群,這使管理人員可以做出自己的云優(yōu)化決策。
加載測試不同的實(shí)例類型
Volk建議,對(duì)不同實(shí)例類型和規(guī)模的應(yīng)用程序進(jìn)行負(fù)載測試,以確定預(yù)期的平均和突發(fā)性能指標(biāo)。模型負(fù)載測試盡可能接近真實(shí)的使用模式。例如,峰值負(fù)載可能發(fā)生在API函數(shù)調(diào)用期間,同時(shí)也可能發(fā)生在用戶與應(yīng)用程序圖形前端的交互過程中。
集成的第三方系統(tǒng)可能在與云托管應(yīng)用程序的通信速度方面有要求,這可能使事情變得更復(fù)雜。當(dāng)應(yīng)用程序共享通用微服務(wù)時(shí),集成過程變得更加棘手??邕@些互連的分布式架構(gòu)進(jìn)行云優(yōu)化需要警惕和復(fù)雜的建模。
考慮動(dòng)態(tài)實(shí)例類型
AWS公司提供了可突發(fā)的性能實(shí)例,使管理人員可以根據(jù)需要?jiǎng)討B(tài)添加和支付CPU性能。雖然這種服務(wù)可以提高云計(jì)算性能,但很難知道應(yīng)用程序只有CPU改進(jìn)才能擴(kuò)展,并且不會(huì)升級(jí)到內(nèi)存和存儲(chǔ)的速度或規(guī)模。Volk說,每當(dāng)依賴實(shí)例爆發(fā)時(shí),總是進(jìn)行負(fù)載測試。
此外,如果企業(yè)在增加的CPU上花費(fèi)很多,需要查看應(yīng)用程序的需求,可能是轉(zhuǎn)換為更大實(shí)例規(guī)模的時(shí)候了。
注意容器問題
容器群集可能具有導(dǎo)致比預(yù)期更高的網(wǎng)絡(luò)吞吐量或存儲(chǔ)負(fù)載的依賴性。關(guān)鍵的罪魁禍?zhǔn)淄ǔJ荎ubernetes調(diào)度策略。“這是一個(gè)需要診斷的潛在問題。”Volk說。
如果企業(yè)計(jì)劃啟動(dòng)容器,請(qǐng)考慮云優(yōu)化評(píng)估,而不僅僅是CPU、存儲(chǔ)和內(nèi)存。確定在一段時(shí)間內(nèi)用戶可以啟動(dòng)或刪除的Kubernetes pod數(shù)量是否存在限制,以及對(duì)實(shí)例上運(yùn)行的各個(gè)容器是否存在規(guī)模限制。