本文結合企業實際情況進行成本洞察,示範雲原生架構下如何更準確地計算業務成本分攤,從而實現讓企業在享受雲原生帶來的靈活性和效率的同時,也能有效地管理和控製成本。
前提條件
已開啟成本洞察功能。具體操作,請參見啟用成本洞察功能。
已開啟阿里雲Prometheus監控。具體操作,請參見步驟一:開啟阿里雲Prometheus監控。
已確保Prometheus指標儲存時間長度大於成本治理周期。關於如何確定成本治理周期,請參見步驟一:確定成本治理周期;如何調整指標儲存時間長度,請參見如何調整指標的儲存時間長度?。
背景資訊
在傳統的IT治理情境中,業務往往獨享一套雲資源,例如節點、負載平衡、儲存資源等。這些雲資源獨立計費,成本追蹤相對直接且簡單。
進入雲原生時代,資源的使用模式發生了變化。一個節點可能同時運行來自不同業務的容器,網路、儲存資源也可能被多個應用共用。這種資源共用的模式增大了成本分攤的複雜性,即成本難以被明確分攤到各個業務單元,導致成本洞察和管理更為複雜。
為此,ACK提供一種通用性的成本資料模型,以更準確計算業務成本分攤。具體實現如下所示:
首先,分析每個Pod使用的資源(如CPU、記憶體、儲存等),計算出Pod的類比成本。
其次,根據Pod的類比成本,按比例將整個叢集的總賬單(包括所有資源的費用)分配給各個Pod。按比例拆分叢集總賬單,即可獲得Pod分攤叢集總賬單的費用。
最後,通過匯總一個周期內所有關聯到特定業務的Pod分攤的成本,即可得出該業務單元的總成本。
情境樣本
如下圖所示,某企業將所有業務部署在一個ACK叢集上,組織架構包括四個業務部門:部門A負責應用A,部門B和部門C共同負責應用B,部門D負責應用C和應用D。
其中,應用A和應用B是Web服務,需要穩定的業務負載,調度到訂用帳戶的ECS節點;應用C和應用D負責資料處理和資料分析業務,有資源彈性的需求,調度到隨用隨付的ECS節點。
使用成本洞察實現成本管理及最佳化
以下示範如何通過可視化的成本洞察大盤,查看部門和應用的成本。
您也可以通過HTTP API查看部門和應用的成本。詳情請參見通過Allocation API擷取。
步驟一:確定成本治理周期
叢集費用查看周期:
ECS執行個體有兩種出賬周期,訂用帳戶的執行個體以月或周為出賬周期;隨用隨付的執行個體以小時為出賬周期。由於本情境叢集同時包含兩種付費類型的執行個體,在查看叢集總費用時,周期需設定在月維度。為便於直接對比和分析賬單資料,一般可將ECS出賬日作為成本治理起始和結束日期。
部門、應用費用查看周期:
部門A、B、C的業務都運行在訂用帳戶的節點上,所以成本治理周期以月為維度。
部門D的業務都運行在隨用隨付的節點上,所以成本治理周期以天為維度。
應用費用查看周期可根據所屬部門確定。
步驟二:根據業務類型確定成本分攤策略
在計算業務成本分攤時,會涉及到估算業務關聯Pod的成本,ACK提供單資源估算策略和權重混合資源估算策略。
估算策略 | 細分策略 | 使用情境 |
CPU和記憶體資源的單資源策略 | 叢集中一種資源的調度水位明顯高於另一種資源,或者叢集中的業務資源申請類型比較集中的情境。 | |
CPU-記憶體混合策略(推薦權重)和CPU-記憶體混合策略(自訂權重)。 | 叢集中混合部署了CPU型和記憶體型的應用,或者叢集CPU和記憶體水位持平的情境。 |
預設情況下,對於叢集中的業務資源申請類型比較集中的情境,推薦您使用單資源估算策略。比如叢集業務都是CPU密集型,可以直接選擇CPU單資源策略。
更多情境選型及策略分析,請參見成本估算策略介紹。
步驟三:查看叢集費用
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在成本洞察頁面的叢集維度頁簽,設定如下篩選項,然後查看花費結果。
實際/原價賬單:選擇叢集成本統計選項,本樣本設定為優惠後實際賬單成本。
時間範圍:本樣本設定為2024-05-01 00:00:00 to 2024-05-31 23:59:59。
在本月累計花費-優惠後實際賬單成本地區,查看叢集在2024年05月的總費用。
步驟四:查看部門成本
在成本洞察頁面,單擊命名空間維度頁簽,設定如下篩選項,然後查看成本估算結果。
命名空間(Namespace):選擇部門對應的命名空間,本樣本設定為預設命名空間default。
實際/原價賬單:選擇命名空間成本統計選項,本樣本設定為優惠後實際賬單成本。
時間範圍:本樣本設定為2024-05-31 00:00:00 to 2024-05-31 23:59:59。
在本樣本中,部門D負責的業務對資源需求有波動性,您也可以將時間調整到具體某天,例如2024-05-31,查看部門D每天的成本。
然後,在命名空間費用分攤地區,查看該部門的分攤費用。
步驟五:查看應用成本
在成本洞察頁面,單擊應用維度頁簽,設定如下篩選項,然後查看應用花費。
命名空間(Namespace):選擇應用所在的命名空間,本樣本設定為預設命名空間default。
標籤對篩選(LableSelector):應用對應的標籤。
時間範圍。本樣本設定為2024-05-31 10:00至2024-05-31 16:59。
在本樣本中,由於應用C和應用D的業務特性,導致每天的成本可能存在波動,因此將時間範圍調整到某天的具體時間段,例如10:00至16:59,查看應用具體時間段的成本。
然後,在應用花費地區,查看結果。
常見問題
開通成本洞察後,查看上月或者上周花費時,為什麼沒有資料?
成本洞察功能從您開通後開始記錄資料,如果所選時間範圍內還未開通,將不會展示資料。
查看歷史花費時,為什麼展示的資料低於實際花費?
ARMS Prometheus的預設儲存時間長度為15天,請確保您所選的時間範圍在Prometheus的儲存時間內。如果有更長成本洞察周期的需求,請參見如何調整指標的儲存時間長度?。
相關文檔
除了可視化的成本洞察大盤,您也可以通過HTTP API查看部門和應用分攤叢集賬單的成本。ACK提供Allocation API協助您按Namespace、Controller、Label、Pod等維度彙總業務成本,詳情請參見通過Allocation API擷取。
關於成本洞察指標的詳細說明,請參見叢集維度成本分析、命名空間維度成本分析、節點池維度成本分析、應用維度成本分析。
如有降低容器配置Request和Limit複雜性的需求,可以通過資源畫像功能實現容器粒度的資源規格推薦,協助您調整應用規格配置。詳細資料,請參見資源畫像。
對於多雲和混合雲情境,資源可能來自不同雲廠商甚至線下環境,使統一視圖的資源監控和成本管理變得更具挑戰性。關於如何通過ACK One實現混合雲成本管理,請參見叢集成本洞察。