彈性伸縮(Auto Scaling)是雲商提供的、根據自身業務需求自動調整計算能力(即例項數量)的服務。使用該服務時,例項數量可根據工作負載自動進行伸縮,從而在業務需求增長時提供資源支援、在業務需求下降時降低成本。
那麼,彈性伸縮的基本原理是怎樣的?我們如何判斷彈性伸縮的效果、進行優化?來一探究竟——
一.什麼是彈性伸縮
彈性——伺服器對業務量的變化應具備一定的容忍度;
伸縮——針對業務量的變化,系統需要線上對資源進行調整。伸縮完成以後,系統對外服務的能力應恢復到正常水平。
我們使用彈性伸縮需要達到2大目的:1.服務可靠;2.資源成本節省
首先,瞭解一下彈性伸縮服務的部署架構:
請求從閘道器服務(即LoadBalance)進來後,到達應用(App)。應用所需要的雲主機,往往交給伸縮組來管理。伸縮組會根據主機資源的使用情況,自動購買新機器、回收舊機器,從而讓整個叢集的資源使用率保持在預期的水平。
那麼,伸縮組如何完成這一系列“炫酷”操作?
“伸縮”主要集中在兩個方向:
- 水平方向,通過加節點和減節點,在節點數上面進行調整來達到伸縮效果。
- 垂直方向:通過加配置和減配置,來達到伸縮效果。
除此以外,如果想做好彈性,我們必須對資源的使用情況進行監控。如流程圖所示,指標監控服務,負責從APP和叢集進行實時的資料採集,採集到的結果會交給autoscaler(伸縮排程器)。Autoscaler會根據預定的策略進行判斷(例如,基於CPU或者基於QPS),可能會設定一個伸縮的閾值,如果判斷觸發了擴縮容,Autoscaler會聯絡節點組購買機器或者回收機器。伸縮完成的節點,將會和閘道器進行同步,這樣就完成了一個基本的彈性伸縮Web服務。
二.什麼才是優秀的彈性伸縮方案?
彈性伸縮流程的每一個步驟,都以不同方式影響著彈性伸縮效果:
首先,監測服務作為彈性伸縮的起點,其資料有效性、實時性,將影響伸縮的準確性和靈敏性;而監測指標的豐富程度,則決定了策略的可操作範圍;
其次,Autoscaler的演算法和策略直接決定了伸縮策略的效果。
再次,伸縮的力度和伸縮的速度會直接的影響到伸縮的效率、資源的使用率。
最後,應用作為服務本身的載體,其拉取速度、啟動速度以及啟動的成功率,直接決定了最終的結果。
綜上,一個優秀的彈性伸縮方案,應該儘量滿足三個要素。
第一,可靠,它必須具備一定的突增壓力的抵抗能力
第二,高效,它能夠快速的調整到預期資源的使用量。
第三,經濟,它必須在合理範圍內儘量的去提高資源的使用率,減少浪費。
【彈性伸縮降本伴侶:SpotMax雲資源優化服務】
對於用雲企業來說,隨著業務增長,用雲成本將迅速增加,成為制約企業快速發展的“絆腳石”。SpotMax作為一款雲資源優化服務,其中的MaxGroup工具能夠充分發揮彈性伸縮的特點,幫助用雲企業解決Spot例項被回收、可用資源不足的問題,從而在維護服務穩定的同時,降低用雲成本。
以AWS為例,通常情況下,AWS的彈性伸縮(Auto Scaling)服務在Spot例項不足時,使用者無法繼續申請例項資源,導致資源長時間短缺,使用者面臨大流量衝擊風險。而MaxGroup在發現autoscaling無法申請資源時,可以及時為使用者補充on-demand例項,使服務所需要的資源充盈,而當能繼續申請到Spot資源時,MaxGroup會主動將on-demand例項替換為Spot,在服務穩定的前提下,保障成本最低的目標。長期實踐證明,SpotMax平均可幫助企業節省60%的用雲成本,最多時可降本90%。
在雲端,當資源可以按需伸縮,限制你想象的只有成本。SpotMax解決方案能夠助力企業實現極致用雲成本節省,釋放業務增長潛力。想要了解更多?戳“下方連結”,一鍵get你的雲成本節省祕籍!