PB级网络爬虫

Ahrefs 不断地爬取整个互联网,收集、处理和存储数据,以构建一个多合一的SEO工具包。

访问网站

Ahrefs 开发了定制化的分布式PB级存储,并运行了一个互联网范围的爬虫来索引整个网络。该公司还为最终用户构建了各种分析服务。Ahrefs的数据处理系统使用OCaml作为其主要语言,目前每天处理多达60亿个页面,他们还使用OCaml作为其网站的后端。Ahrefs拥有一个跨国团队,其根植于乌克兰,在新加坡设有办事处,并在世界各地拥有远程合作者。

挑战

与手头任务的规模相比,Ahrefs 运营团队相对较小。索引网络非常昂贵,需要大量的资源,包括人力和机器。实时将PB级数据转化为可理解的信息也是一个巨大的挑战。有必要构建运行速度快、7*24小时不间断、维护量尽可能少且人力资源稀缺的流程。

解决方案

Ahrefs 选择使用OCaml进行网络规模的数据处理。该公司起步阶段员工数量有限,资金资源也很少。该语言提供了其他地方难以找到的多种特性组合。

  • 原生编译
  • 高级类型,用于清晰的表达和简洁的代码
  • 稳定可靠的编译器
  • 关注工业用户

随着公司发展壮大并扩展其服务产品,他们抓住机会用OCaml编写其网站(后端使用原生OCaml,前端使用ReasonML)。这一大胆的选择为他们带来了独特的优势。由于整个技术栈共享类型,因此可以安全地推理数据,从创建到最终使用。

成果

Ahrefs 将数十亿个网站转化为数据,首先存储到超过100PB的存储中,然后转化为全球数万名客户的宝贵信息。随着互联网竞争日益激烈,Ahrefs 为在网络上开展业务的公司提供了至关重要的服务。Ahrefs 成功地应对这一挑战,同时保持公司精简高效。