Peta 位元組規模的網路爬蟲

Ahrefs 不斷爬取整個網際網路來收集、處理和儲存數據,以建構一個多合一的 SEO 工具包。

造訪網站

Ahrefs 開發了客製化的分散式 Peta 位元組級儲存,並運行一個全網際網路爬蟲來索引整個網路。該公司還為終端用戶建立各種分析服務。Ahrefs 的數據處理系統使用 OCaml 作為其主要語言,目前每天處理高達 60 億個頁面,他們還將 OCaml 用於其網站的後端。Ahrefs 擁有一支跨國團隊,其根源在烏克蘭,在新加坡設有辦公室,並在世界各地有遠程合作者。

挑戰

相較於手邊任務的規模,Ahrefs 的團隊規模相對較小。索引網路非常昂貴,需要相當多的資源,包括人力和機器。將 Peta 位元組的數據即時轉化為可理解的內容也是一個很大的挑戰。有必要建立以盡可能少的維護和稀少的人力資源,24/7 全天候快速運行的流程。

解決方案

Ahrefs 選擇使用 OCaml 進行網路規模的數據處理。該公司當時處於起步階段,員工數量有限,財務資源也很少。該語言提供了其他地方難以找到的品質組合。

  • 原生編譯
  • 用於清晰表達和精簡程式碼的高階類型
  • 穩固且穩定的編譯器
  • 對工業用戶的同理心

隨著公司成長並擴展其服務產品,他們藉此機會使用 OCaml 編寫其網站(後端使用原生 OCaml,前端使用 ReasonML)。這個大膽的選擇為他們帶來了獨特的優勢。由於整個堆疊共享類型,他們可以安全地推論數據,從建立到最終消費。

結果

Ahrefs 將數十億個網站轉換為數據,首先儲存在超過 100PB 的儲存空間中,然後轉化為全球數萬名客戶的寶貴資訊。隨著網路競爭日益激烈,Ahrefs 為在網路上經營業務的公司提供至關重要的服務。Ahrefs 在保持公司精簡高效的同時,成功應對了這一挑戰。