呢個 OpenFreeMap 項目,原本我諗住 post 吓過去十個月有幾順利嘅。架構真係證明咗自己好掂,Cloudflare 同意贊助頻寬,Hetzner 伺服器一如既往咁穩定,從 Btrfs 提供圖塊證明係個好選擇,nginx 超勁,生活好美好。
點知突然間,有報告話有啲圖塊載唔到,通常係生成圖塊出 bug,但今次唔係。我查咗 nginx 日誌,見到呢個:2025/08/08 23:08:16 [crit] 1084275#1084275: *161914910 open() “/mnt/ofm/planet-20250730_001001_pt/tiles/8/138/83.pbf” failed (24: Too many open files) … 好奇怪,從未見過。我查 nload,顯示巨量流量。登入 Cloudflare,見到過去 24 小時嘅數據:咩?24 小時內 30 億請求?乜鬼嚟㗎?仲有 215 TB 流量,從細細個 70 kB 檔案嚟?
呢個流量喺 MapTiler 要超過 600 萬美元一個月,Mapbox 仲要雙倍。特別係最近 5 分鐘, spiked 到 3000 萬請求。算吓,每秒 100,000 個請求!
我第一個諗頭係:哇。哇,我好驚訝唯一聽到嘅 bug 係有啲圖塊唔見。通常空圖塊被 Cloudflare 快取咗,但除咗呢個,似乎仲運作緊?
睇 Cloudflare 儀表板,96% 請求係 200 OK;只係 3.6% 壞咗 (206 Partial Content)。所以 OpenFreeMap 大致上成功提供每秒 100,000 個請求?
但係乜引起㗎?Wplace.live 發生咗。突然間,一個全新協作繪圖網站出現,用 OpenFreeMap 從頭建。唔知係乜,但互聯網似乎瘋咗咗。有一件事係肯定的:佢生成嘅流量係超乎想像。
我相信發生緊嘅係,啲圖像係由啲 script-kiddies 畫嘅。如果我理解正確,網站限制每人每 30 秒 1 像素,所以我猜大家用腳本 Puppeteer/Chromium 啟動新瀏覽器,點擊像素,關閉瀏覽器,可能有 IP 輪換,但可能唔使。
好主意,有趣項目,下次請先聯絡我。Neal.fun 之前推出 Internet Roadtrip 前做咗一樣-佢哋問我流量 ok 唔 ok,仲決定贊助 OpenFreeMap 項目,金額超過覆蓋佢哋頻寬使用。
我成功聯絡 Wplace.live 後面嘅開發者。佢話佢哋幾日內增長到 200 萬用戶,突然間,所以我完全明白佢哋冇準備好呢種流量。
作為單獨運行 OpenFreeMap 嘅人,我對呢兩個數字超級自豪。首先,我嘅架構達到 99.4% CDN 快取率,對一個每週數據更新嘅服務嚟講係超棒。其次,我自己伺服器成功處理剩餘 1,000 個請求每秒。
最後,我想大聲多謝 Cloudflare 幫手頻寬。我未寫過,但當我十一月聯絡佢哋,佢哋喺週六 48 小時內批准咗我頻寬贊助狀態。而且,佢哋連接我同佢哋最好工程師討論 OpenFreeMap 如何更好用佢哋架構。我從未見過佢哋規模公司咁敏捷。
如果你覺得 OpenFreeMap 有價值,請考慮喺 GitHub 贊助。為咗完全透明,項目目前每月 500 美元捐款。呢個剛好覆蓋所有基礎設施成本,超棒。但係,意味新開發喺我有限空閒時間發生。更多支持意味我可以花更多時間 coding,確保 OpenFreeMap 準備好下一個挑戰。
OpenFreeMap 係一個開源地圖主機解決方案,用 OpenStreetMap 數據,提供自訂樣式給網站同 app。佢允許免費顯示自訂地圖,你可以自託管或用公共實例。一切開源,包括完整生產設定-冇 ‘open-core’ 模式。使用公共實例完全免費:冇地圖查看或請求限制。冇註冊、用戶數據庫、API 鑰匙、cookies。我哋旨在透過捐款覆蓋運行成本。仲提供每週完整行星下載,Btrfs 同 MBTiles 格式。
項目目標係用現有工具提供免費、生產質量向量圖塊主機。目前工具係:OpenStreetMap、OpenMapTiles、Planetiler、MapLibre、Natural Earth 同 Wikidata。特別多謝 Michael Barry 開發 Planetiler。
呢個項目唯一可能運作方式係超專注於佢係乜同唔係乜。OpenFreeMap 有以下設計限制:冇 tile server 運行;只係 Btrfs 分區影像有 300 百萬硬連結檔案。呢個係我主意;我未讀過其他人喺生產做,但運作得好掂。
喺過去月份,OpenFreeMap 見到來自不同來源流量,包括 Sony Music 項目,證明佢能力。呢個事件強調開源工具可以處理極端負載,而唔需用戶付費。
總之,呢個生存故事展示瘦身、開放系統力量喺數據密集應用時代。對科技領袖嚟講,係提醒創新往往從意外地方出現,挑戰既定玩家適應或冒險過時。