Apache CloudStack 市場化整合原生評分系統方案

引言

在雲端基礎建設快速演進的趨勢下,Apache CloudStack 作為一個開源雲端 orchestrator,其市場化整合能力成為關鍵議題。本文聚焦於如何透過原生評分系統(Rating System)與會計系統(Accounting System)的整合,實現計算資源使用者(Computing Resource User)的精準計費(Billing)與資源管理。此方案不僅提升雲端服務的商業化可行性,更強化了 Apache 基金會在雲端基礎架構領域的技術領導地位。

技術與核心功能

評分系統與會計系統的分工

評分系統專注於計算雲端資源使用量的金額價值,與後續由外部系統處理的計費流程區分。其核心機制依賴平臺事件(Platform Events)生成數據,每筆事件連結至帳號或專案,提供資源消耗視圖。事件生成流程包含使用者請求創建虛機、卷、網路等資源,CloudStack 會記錄事件至資料庫。事件處理流程則透過輔助表(Auxiliary Tables)聚合事件數據,生成評分數據(Usage Data)。

會計系統則用於追蹤資源消耗細節,支援按條目(Per Entry)與按月(Monthly)計費模式。資料處理流程包含事件生成、輔助表存儲、生成評分數據,最終產生計費條目。例如虛機啟動時生成事件,持續運行時定期更新數據。

Quota 1.0 與 Quota 2.0 的演進

Quota 1.0 的限制:每種資源類型僅支援單一計費率(Tariff),無法區分不同資源屬性,導致無法符合雲端供應商的靈活性需求。

Quota 2.0 的改進

  • 上下文基準計費規則:支援 JavaScript 編寫規則,根據資源屬性(如帳號、主機標籤、儲存類型)動態計算金額。例如主機集群(Platinum/Gold/Standard)差異化計費、儲存類型(SSD/非SSD)影響計費、操作系統(Windows/Linux)觸發不同授權計費。
  • 計費模式:支援預付(Prepaid)與後付(Post-paid)模式,用戶可預存信用或資源消耗後計費。
  • 折扣策略:設定多階段規則,後續規則可重用前序結果。例如長期合作客戶享10%折扣,月使用時數超100小時享5%折扣。

實際應用案例

主機集群差異化計費

透過主機標籤(Platinum/Gold/Standard)設定不同單位價格,JavaScript 規則示例如下:

if (hostTag === "Platinum") return 50; 
else if (hostTag === "Gold") return 40; 
else return 30;

Windows 授權計費

根據虛機元數據識別作業系統,應用授權包費用。例如虛機運行時長與資源規模影響最終價格。

儲存類型計費

依儲存類型(SSD/非SSD)判斷是否計費,JavaScript 規則示例如下:

if (storageType === "SSD") return 10; 
else return 0;

技術優勢與挑戰

優勢

  • 靈活性:JavaScript 規則支援動態計費策略,適應多樣化商業需求。
  • 精準計費:透過事件聚合與輔助表存儲,確保資源消耗數據的準確性。
  • 可擴展性:支援預付與後付模式,並提供折扣策略,提升商業模型的靈活性。

挑戰

  • 技術限制:當前僅支援 ECMAScript 1.0,需升級至更高版本。
  • 文件不完整:部分改進尚未上傳至上游(Upstream),影響社區開發進度。

生產環境示例

計費數據視圖

顯示資源類型消耗統計、歷史紀錄與增量圖表,支援按帳號/專案過濾。例如顯示某專案的資源使用情況,或某帳號的虛機運行時長與費用。

計費週期與結算

每日執行計費流程,生成每日費用條目。例如虛機每日運行時長與 vCPU 使用量計算費用,多虛機案例顯示月度總費用與資源使用分佈。

預付/後付模式示例

預付模式:帳號無信用時停止資源使用;後付模式:資源消耗後產生費用,顯示帳戶餘額變化。

總結

Apache CloudStack 透過整合原生評分系統與會計系統,實現了雲端資源使用者的精準計費與靈活管理。Quota 2.0 的上下文基準計費規則與多階段折扣策略,大幅提升了商業模型的適應性。未來需持續優化 JavaScript 引擎與完善官方文件,並將改進內容上傳至 Apache 基金會上游專案,以強化生態系的技術領導地位。