最佳實踐丨企業上雲後資源容量如何規劃和實施

阿里雲開發者發表於2021-11-10
簡介:企業上雲後,雲上的預算直接影響上雲的優先順序、進度、深度。預算投入的多少,與業務發展和資源需求的容量評估緊密相關。精準的容量評估,可以使企業上雲的預算規劃更科學,同時也更貼合業務發展階段的需要。本文分享業務上雲後企業該如何進行容量的規劃和實施

 title=

本文作者:阿里雲技術專家李雨前

摘要

隨著企業數字化轉型、企業IT服務雲原生化快速發展,客戶上雲的步伐更加緊湊,隨之而來雲上的預算直接影響上雲的優先順序、上雲的進度、上雲的深度。預算投入的多少,與業務發展有關,另外一個關鍵因素就是資源需求的容量評估

精準的容量評估,可以使企業上雲的預算規劃更科學,同時也更貼合業務發展階段的需要。本文將分享企業業務上雲後,如何進行容量的規劃和實施

一、為什麼要進行容量規劃

企業數字化轉型,企業IT服務雲原生化正大踏步的發展,上雲的或正在上雲企業,常規的預算支出中就包含數字資訊化或者IT軟體服務支出。這部分的預算支出,其中就包含雲上資源的預算投入,其核算依據之一:雲上容量規劃和實施

 title=日常生活中,需要“容量”規劃的場景是很普遍的。例如:水庫儲水就是一個典型的動態“容量”規劃過程,需要根據上下游水環境情況做庫容的調控。例如:疫情期間,景區實行遊客提前預約成功後購票入園的舉措,需要根據防控要求做每日遊客的總人數的調控。

同理,雲上的業務也會動態發展變化,雲產品服務依賴的算力資源也需要相應調整。我們把算力資源的用量規劃抽象為容量規劃。

企業上雲後進行容量規劃的必要性在於,企業的業務是動態發展的,業務依賴的雲上算力資源也需要相應地動態調整。過多算力資源導致資源閒置、成本浪費,過少的算力資源影響業服務響應效能、阻礙業務快速發展。那麼,企業上雲後,如果不進行容量規劃會產生什麼問題呢?

首先,可能出現成本投入和業務發展不匹配。例如,當業務呈現快速發展的態勢,業務依賴的算力資源需求也呈現上升趨勢,此時,如果沒有容量規劃,很可能業務爆發期來的時候,後端服務能力不能及時跟上,進而影響業務持續、穩定發展,甚至錯失業務的黃金髮展時機。

 title=

另外,網際網路技術的應用極大地拉近了服務消費者和服務提供者的距離,服務提供者的服務表現跨地域的高可用、穩定性已是常態化目標。針對這個目標,一種最直接的實現方案:進行地域間的容量冗餘,從而在軟硬體故障或者其他應急場景下,進行流量切換實現災備。

總結起來就是:企業上雲後,業務的容量規劃是剛需,並且需要持續地規劃。精準的容量規劃,可以幫助業務的快速發展,避免算力支援成為業務發展的瓶頸、阻礙項,同時,企業業務跨地域服務的高可用、穩定性也能得到保障。

二、業務需求轉化為容量規劃

容量規劃是為業務服務的,脫離業務實際狀況的容量規劃毫無意義。根據業務特徵、業務發展階段目標,制定和業務發展相匹配的容量規劃,才是合理的規劃。

 title=

例如某A企業,B部門的業務需要人均一臺辦公電腦。目前採購的是阿里雲的雲桌面產品。今年預計B部門員工數量擴大10%,那麼今年雲桌面臺數的容量規劃也需要擴大10%。這個例子比較直觀的好理解,實際上不同行業、不同業務特徵的雲上容量規劃需要考慮的因素非常多。下面按通用的理解,進行拆解分析,如圖1所示,自底向上逐步細分。

 title=

圖1-業務驅動的容量規劃

因素1:業務需求的整體發展評估     

企業業務整體發展態勢和評估是一切需求來源的根基,沒有業務整體發展的充分評估,不可能輸出合理、有效的容量規劃評估。對企業來說,不會為了容量規劃而規劃,容量規劃都是為業務發展服務的。業務整體發展評估自然就在“金字塔”的最底部。

因素2:業務需求雲原生部分的發展評估

“金字塔”底部再上一層對應雲原生部分的發展評估,雲原生服務發展的比例直接關係到雲上容量規劃預算的比重。對於網際網路行業,可能業務的主體都是雲原生的;對於傳統行業,如果只有企業管理資訊化部分上雲,那麼雲原生部分的發展評估就是很小的比重。

因素3:有限預算下,雲上優先保障的需求評估

對企業來說,每一項的預算總是有限的,有限的資源服務應當優先服務關鍵業務的發展,從而實現投入產出比最大化的。對所有云上服務來說,儲存資料庫計算服務是基礎的依賴項,一般這三塊的規劃和投入都是高優先順序保障的。

因素4:業務雲原生部分的連續性需求評估

對企業來說,在業務所有的發展階段,業務的連續性至關重要,尤其是關鍵業務服務的連續性。所以,容量規劃過程,需要關注、評估業務連續性在預算中的體現。例如核心業務依賴的計算資源,可以通過規劃:包年包月的例項、彈性資源保障服務、資源預留服務等實現資源的確定性交付,從而保障服務的連續性。

參考資料:資源保障服務 

https://help.aliyun.com/document\_detail/193626.html

因素5:業務雲原生部分的地域容災需求評估

對企業來說,不同的發展階段,業務在地域服務的優先順序可能有所側重,那麼容量規劃需要感知地域。同時,服務的高可用,往往依賴地域之間服務容災能力的建設。所以,預算需要平衡地域發展的需要。

因素6:業務雲原生部分需求獨立規劃VS綜合規劃

在前面5個因素基礎上,容量評估越來越具體化。接下來從因素6開始,規劃需要考慮具體操作的方案影響。獨立規劃和綜合規劃依賴的輸入不同,輸出的方案也不同。例如前面提到的面向員工辦公的場景,對雲桌面的需求,因為雲桌面的彼此相對獨立,可以獨立規劃,獨立交付。

例如對於大型Web服務的場景,因為依賴雲資料庫、雲端儲存、流量頻寬等多方面服務,所以容量評估需要整體打包評估、整體交付,避免短板效應。並且在評估具體容量多少的時候,依賴的評估工具和方案也不同。對於獨立的規劃,一般評估相對容易給出;對於綜合的規劃,阿里雲的容量規劃服務提供了全套的解決方案。

參考資料:容量規劃服務

https://www.aliyun.com/service/capacity\_planning

因素7:不同雲服務供應商當前折扣優惠資訊評估

當業務容量規劃細分到位後,明確了容量規劃落地依賴的產品、工具,那麼接下來需要感知折扣優惠資訊

不同的雲服務供應商,在不同的地域、算力產品上的有相關的活動、折扣。評估這部分內容,可以使得花相同的預算,購買到更多更實惠的算力資源。例如阿里雲推出的SavingPlan + CapacityReservation 服務,實現了成本的節約和資源的確定性交付。

因素8:規劃的容量交付時間表評估

容量交付時間表評估這一步就是輸出在什麼時間、什麼地域、交付哪些算力資源、對應的預算是多少等具體的規劃方案資訊。過早或者過遲的交付,都可能與業務發展不匹配,甚至容量規劃最終無法落地施行。

三、容量規劃對映為資源購買量

上一節我們按分層的方式對容量規劃需要考慮的因素做了自底向上的描述。規劃評估的本質是:滿足業務在合適的時間、地點的發展需要,規劃出對應時間、地點的算力需求。

如圖2所示,具體的需求到算力的對映方法有很多。下面假設:企業業務未來發展所需雲上服務能力是可預測的,基於可預測的值,轉化為具體的資源例項購買量需求,進而形成具體的購買方案。下面介紹常用的規劃容量對映為資源購買量的技術方案。

 title=

圖2- 業務需求對映算力需求

_方法一:_線性對映--水平擴縮容

從資源視角來看,經典的評估方法是:資源例項總量 = 業務總的請求量QPS/ 單個資源例項支援的QPS。當業務發展需要更多的算力時,總的QPS會發生變化,此時需要新增擴容的的資源例項數量 = 新增的QPS/單機QPS。這種方式對應資源排程領域所說的“水平擴容”。阿里雲提供的服務例如Auto Scaling 就支援自動水平擴縮容。

參考資料:彈性伸縮

https://help.aliyun.com/document\_detail/25857.html

關於水平擴容更多內容可以參考K8s的HPA(Horizontal Pod Autoscaling):

https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale/

_方法二:_線性對映--垂直擴縮容

從資源視角來看,垂直擴容是相對水平擴容來說的。通過調整單機資源算力大小也就是調整單機支援QPS的大小(間接通過資源例項的降配來降低單資源例項支援的QPS),來調整總的資源例項數量,從而調整總的服務請求QPS。一般在精細化資源排程、業務負載混合部署場景下,會進行資源單例項的垂直擴縮容。

這種垂直擴縮有兩種形態:一種是固定式的(規格調整後就不改變),例如從原來4VCPU,垂直縮容為2VCPU。然後例項按2VCPU 進行水平擴縮容;另外一種是非固定式的(短時間內單一算力資源的彈性伸縮),例如資源例項在執行過程中,進行某個維度資源的“限制”,從而實現單例項資源在特定場景下算力的調整。

對於業務方來說,看到的例項規格沒有改變。典型的例如K8s的資源模型裡面,如CPU資源申請,有request、limit兩個引數,可以實現CPU資源的彈性burst。又例如阿里雲突發效能例項,通過CPU積分來保證計算效能的例項規格,適用於平時CPU使用率低,但偶爾有突發高CPU使用率的場景。

參考資料:突發效能例項

https://help.aliyun.com/document\_detail/59977.html

關於垂直擴縮容更多內容可以參考GKE的 VPA (vertical-pod-autoscaler):https://cloud.google.com/kubernetes-engine/docs/concepts/verticalpodautoscaler

_方法三:_非線性對映--全鏈路評估

大型網際網路服務,典型如電商交易系統,業務場景多、業務之間存在依賴性、業務服務規模大。已經很難按應用單獨評估系統容量,需要在全鏈路場景壓力下,進行整體的容量評估。

阿里雲的容量規劃服務,提供了全套服務,具體包括:

  • 服務規劃,提供業務流量分析、資料容量分析、訊息容量分析、資料庫容量分析、叢集容量分析;
  • 服務規劃後執行,提供全鏈路壓測方案、場景流量配比以及排程方案、限流降級方案、演練方案。

全鏈路評估的核心價值:幫助客戶探測雲上系統最佳壓力、極限壓力、破壞壓力點,並進行降級、限流保護。採用全鏈路評估尤其適合大規模、複雜的場景應用。

參考資料:容量規劃服務

https://www.aliyun.com/service/capacity\_planning

_方法四:_容量預測--自動調配

相對方法1、2、3,方法4 對未來容量的變化不做事前精準評估,基於系統負載均衡、系統QPS水位監控,進行自動化資源交付,包括自動水平擴容、縮容、跨規格例項交付等。例如阿里雲彈性容器例項ECI支援多規格例項交付。阿里雲運維編排服務OOS 提供的雲上自動化運維服務,能夠自動化管理和執行任務。客戶可以通過模板來定義執行任務、執行順序、執行輸入和輸出,然後通過執行模板來完成任務的自動化執行。OOS支援跨產品使用,您可以使用OOS管理ECS、RDS、SLB、VPC等雲產品。

參考資料:彈性容器例項

https://help.aliyun.com/product/87486.html

運維編排服務

https://help.aliyun.com/document\_detail/120556.html

綜上,從業務需求到資源容量規劃再到資源容量執行的過程,可以概括為圖3所示這樣的過程。

 title=

圖3-需求到容量執行

四、資源購買量落地選購方案

當明確了資源購買量後,落地具體的選購方案就是如圖4所示,在業務發展時間軸線上,確定性地交付算力資源。

 title=

圖4-業務發展過程確定性算力資源交付

正如上一篇《三種典型場景下雲上虛擬IDC(私有池)選購指南》介紹:業務資源交付有日常穩定性資源需求、日常彈性資源需求、突發資源需求。企業需要根據自身業務發展特徵,具體資源需求,選擇合適的資源選購方案,實現節約成本和資源確定性交付。例如:週期性資源需求、偶發資源需求、特定時期的資源需求,可以選購彈性資源保障相關產品服務。詳細的容量規劃到最終落地選購方案,可以直接參考該文。

企業業務上雲後,需要進行資源容量規劃,阿里雲提供了豐富的產品能力支援業務容量精準評估靈活選購,特別是基於資源保障服務,如彈性保障、立即生效容量預留等服務,支援資源確定性交付,有力保障業務發展的連續性。

本期最佳實踐的分享就到這裡了,馬上我們還會推出雲上私有池系列最後一篇,敬請期待~

相關閱讀:

最佳實踐丨三種典型場景下的雲上虛擬IDC(私有池)選購指南

最佳實踐丨雲上虛擬IDC(私有池)如何為客戶業務的確定性、連續性保駕護航

版權宣告:本文內容由阿里雲實名註冊使用者自發貢獻,版權歸原作者所有,阿里雲開發者社群不擁有其著作權,亦不承擔相應法律責任。具體規則請檢視《阿里雲開發者社群使用者服務協議》和《阿里雲開發者社群智慧財產權保護指引》。如果您發現本社群中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社群將立刻刪除涉嫌侵權內容。

相關文章