資料庫的無伺服器(Serverless)定價方案通常難以理解且難以精準預測。在思考如何為 Prisma Postgres 解決此定價難題時,我們希望能讓事情變得簡單。我們的「基於操作」(Operations-based)模型簡化了定價,無需再考慮資源大小或抽象的運算時間指標。
更簡單的資料庫定價方法
隨著應用程式轉向雲端,第一個廣受歡迎的定價模式被稱為「伺服器模式定價 (serverful pricing)」。在使用這些固定大小的伺服器執行個體時,您不僅被迫預測所有未來流量以提前選擇正確的資源大小,還必須親自實作繁雜的擴充機制。這雖然給了您完全的控制權,但也意味著在流量低谷時會造成資源過度配置,而在流量高峰時則需手忙腳亂地調度資源。
為了填補這種定價方法的缺陷,「無伺服器運算時間計費 (serverless compute-time billing)」應運而生。它消除了預先配置的負擔,僅針對資料庫處於活動狀態的時間收費,在很大程度上消除了閒置成本。但它仍然以 CPU 秒或運算小時等抽象單位來計費,這非常難以精準預測。此外,您還需要選擇具有固定資源限制的方案,這只是將一種基礎架構工作換成另一種,且運算的效率(及其持續時間)取決於底層系統,是您無法控制的。
Prisma Postgres 採取了不同的方法,透過基於操作的定價 (operations-based pricing) 讓整個定價過程變得更簡單、更公平:您的使用量是根據「操作」來計費(我們將在下方詳細說明),而與其使用的運算資源或資料頻寬無關。有了這個模型,您無需配置資源,也無需考慮閒置或高峰負載,系統會自動擴充。這使您的成本直接與應用程式的行為掛鉤,免除了繁瑣的基礎架構決策,讓您能專注於最重要的事——開發功能並贏得用戶。
讓我們深入了解基於操作的定價是如何運作的,以及如何計算在此定價模式下的成本。
什麼是操作 (Operation)?
核心上來說,一個操作就是您對 Prisma Postgres 資料庫所執行的動作,無論是建立 (create)、讀取 (read)、更新 (update)、刪除 (delete),甚至是快取的讀取。
我們將這些視為您透過 Prisma ORM 發出的 查詢 (queries)(簡稱為「Prisma Query」),因為 Prisma ORM 是您與資料庫互動的主要客戶端。這與其他資料庫提供商提供自家客戶端的方式類似,但 Prisma ORM 更進一步,提供了卓越、類型安全 (type-safe) 的開發者體驗,以及諸如遷移 (migrations) 等額外功能,以簡化資料庫操作。簡而言之,這是讓您在使用 Prisma Postgres 時獲得良好開發體驗 (DX) 的重要組成部分,而您透過它執行的每一條查詢都算作一個操作。
我們選擇這種方法的原因是它非常簡單。在後端,一個複雜的 Prisma Query 可能會產生多條 SQL 語句,但就計費而言,它仍然算作一個操作,因此您永遠無需為此操心。簡單的建立與包含多個 JOIN 的複雜讀取可能需要不同的執行時間,但這也是您無需考慮的,您使用的資料傳輸頻寬亦是如此。
讓我們透過一個範例來看看單一操作。以下的 Prisma Query 被計為一個操作,儘管它在底層會轉換為多個 SQL 語句(在下方的範例中為 8 個)。
為什麼基於操作的定價模式更好?
在實務上,這改變了您的思維模式,而且我們認為這是正向的改變。您不再需要問:「這個端點會消耗多少運算時間?」或「如果這次發布導致流量超出了我們的 CPU 或 RAM 上限怎麼辦?」,而是問:「這個用戶互動會產生多少個操作?」這更容易進行邏輯推算、更容易預測,並能讓您的團隊專注於產品行為,而不是基礎架構行為。
以操作為基礎的定價意味著:
- 您無需花費數小時思考資料庫操作所需的運算資源,無論是對資料庫進行簡單寫入,還是包含多個 JOIN 的複雜查詢,都只算作一個操作。
- 您不會因為寫入密集型的工作負載而支付更多費用,寫入和讀取的計費方式是完全一樣的。
- 資料傳輸不會影響您的帳單,因此無論查詢的輸出資料量大小,成本皆相同。
- 快取查詢僅計算為操作,並且受益於更低的延遲和可預測的定價。
- 儲存計費與其他使用成本分開,使其更透明且更容易理解。
計算範例
為了了解基於操作的定價在實務中如何運作,讓我們看看一個典型中型應用程式的計費範例。
以下是我們計算所基於的基本假設與事實:
- 每月 400 萬次操作(一個擁有 3,000 名月活躍用戶的典型應用程式)
- Starter 方案每月提供 100 萬次免費操作(根據我們的定價方案)
- 每百萬次操作 8 美元(超過 100 萬次免費操作的部分)
- 使用 1.2GB 儲存空間(典型中型應用程式的用量)
- 每月提供 10GB 免費儲存空間(根據我們的定價方案)
- 10 美元基本方案費用
基於這些假設,計費計算如下:
100 萬次免費操作 + (300 萬次操作,每百萬次 8 美元) + (10GB 免費儲存空間) + 10 美元基本方案費用
= (3.0 × 8 美元) + 10 美元
= 每月 34.00 美元
注意:此計算基於我們的 Starter 方案。隨著您升級到更高級別的方案,每百萬次操作的價格會逐漸降低,且免費包含的操作額度也會增加。這意味著在 Business 方案中,每百萬次操作的成本會比 Starter 方案低,並且您還會獲得更多的免費儲存空間。更多關於方案差異的功能,請參閱我們的定價頁面。
結語
定價是產品開發中必須考慮的基本要素,我們收到的反饋顯示,我們的基於操作的方法是一個正向的轉變。
希望這個說明能幫助您釐清對 Prisma Postgres 基於操作的定價模式的任何疑問。
同時,歡迎試用 Prisma Postgres,我們迫不及待想看到您用它創造出什麼作品!
不要錯過下一篇貼文!
訂閱 Prisma 電子報