天天看點

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

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

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

摘要

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

圖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所示,具體的需求到算力的映射方法有很多。下面假設:企業業務未來發展所需雲上服務能力是可預測的,基于可預測的值,轉化為具體的資源執行個體購買量需求,進而形成具體的購買方案。下面介紹常用的規劃容量映射為資源購買量的技術方案。

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

圖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

方法三:非線性映射--全鍊路評估

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

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

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

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

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

相對方法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所示這樣的過程。

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

圖3-需求到容量執行

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

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

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

圖4-業務發展過程确定性算力資源傳遞

正如上一篇

《三種典型場景下雲上虛拟IDC(私有池)選購指南》

介紹:業務資源傳遞有日常穩定性資源需求、日常彈性資源需求、突發資源需求。企業需要根據自身業務發展特征,具體資源需求,選擇合适的資源選購方案,實作節約成本和資源确定性傳遞。例如:周期性資源需求、偶發資源需求、特定時期的資源需求,可以選購彈性資源保障相關産品服務。詳細的容量規劃到最終落地選購方案,可以直接參考該文。

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

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

相關閱讀:

最佳實踐丨三種典型場景下的雲上虛拟IDC(私有池)選購指南 最佳實踐丨雲上虛拟IDC(私有池)如何為客戶業務的确定性、連續性保駕護航