[個人專案] 以 Cloudflare Pages 打造低成本高流量的即時投票系統 (Cloudflare Pages, Pages Functions, Cloudflare D1)

Image Generated with Microsoft Bing Designer

元旦假期做了一個新的專案 —— Simple Poll System 簡易投票系統
https://github.com/jim60105/simple-poll-system

我為什麼寫這個呢?
上週薬袋アルマ舉辦 Vtuber 紅白活動,前兩天的會限直播在和大家測試投票系統。當時發現現成的問卷服務都不合用,不是要很多錢就是不即時,而最後用了 Google Form。 雖然 Google Form 是當下最好的選擇,但它不夠客製化,像是直播當下的紅組被顯示為藍色,而白組被顯示為紅色無法內嵌投票結果在活動網頁上等等。

我就在想,要以這個需求來規劃一個小專案的話我會使用什麼技術實現它。然後就當作練練手...

這是一個以概念驗證和學習為目的而做的專案,目標是建構一個低成本高流量即時投票系統。投票只是一種簡單的應用,你可以把它代換為任何使用網頁前後端和資料庫的應用場景。

我選用了 Cloudflare PagesCloudflare Page Functions、以及 Cloudflare D1 來達到這個目標。

特別提醒
撰文時 Cloudflare D1 正在進行公開測試。
即便它在體驗上運行良好,仍不建議在 production 上使用測試產品。

由 Cloudflare 處理網頁本身的流量,且在 Cloudflare Pages 並不以網頁流量計價。 Cloudflare Pages 的主要限制是建置頻率和檔案大小,這兩者在正常使用情況下不太可能超過免費額度。我在文件中沒有找到關於頁面承載能力的任何限制;然而,這是 Cloudflare。我不認為他們會在靜態網頁訪問上遇到流量瓶頸。

對 Cloudflare Functions 的 request 是被計算為 Cloudflare Workers request。 Cloudflare 提供免費層每 10 萬次 request;而 5 美元的付費層有 1000 萬次額度,超過的每 100 萬次 0.30 美元。與其他的後端解決方案相比是另人驚訝的便宜,而且它幾乎沒有冷啟動

Cloudflare D1 計價包括 10 萬次免費寫入和 500 萬次免費讀取。此額度是否足夠取決於請求量以及你的資料表設計和系統設計。至於付費層是 250 億次讀取和 5000 萬次寫入,和上面提到的是同一個 5 美元方案!

在規劃系統時,需要重點考量 API 訪問頻率以及對資料庫的讀寫操作,特別是當你的網站流量大的時候。

專案程式碼和詳細的設定步驟請見 GitHub:
https://github.com/jim60105/simple-poll-system
延伸閱讀

沒有留言:

張貼留言

本站遭到垃圾留言(病毒連結)攻擊,開啟審核模式。留言後並不會馬上公開顯示。

目錄