如何以类似Uber的形式做CDN ?

avatar
阅读时长 2 分钟
Anton Lakhtikov· 阅读时长 2 分钟

本文作者:Anton Lakhtikov  编译:CoinTime Candice

如果你有许多用户和大量静态网络内容,你通常希望使用CDN来有效地提供这些内容。传统的CDN提供者拥有或租用所有必要的基础设施,在他们的网络中没有不受信任的部分,但这对客户来说成本很高。例如,AWS每TB流量收费在20美元至87美元之间。

另一种解决方案是雇佣几名工程师,租用几台服务器,然后构建自己的CDN,每TB的成本仅为2美元。

这些方法中的每一种都有光明和黑暗的一面。我们能否将两个世界的最佳部分结合起来:创造可靠、安全的交付、体面的服务和低廉的价格?

图1. Midjourney /imagine Farba CDN的方式

在Farba,我们正在构建一个零成本的CDN基础设施,所有的边缘服务器都属于匿名Peer。Peer可以租用服务器,制定有竞争力的价格,并在为某人的静态网页内容提供服务时赚钱。客户使用我们的网络可以节省高达10倍的流量费用。

这就像优步,但用于CDN

使用共享经济模式会迫使你采取额外的预防措施和检查措施,以安全地将静态网络内容交付给终端用户。让我们看看它在我们的案例中是如何运作的。

前端

要使用Farba CDN网络,你需要采取两个步骤:

1. 将Farba CDN javascript文件[1]添加到HTML文档中:

<script src="https://farbacdn.github.io/farba-public/build/farbacdn.min.js"></script>

2. 将你希望通过我们的网络传递的任何对象的src属性替换为data-src属性,并将farba类添加到标记中。例如,替代:

<img src="/uploads/FullSky_WMAP_2048W.png"/>

使用:

<img class="farba" data-src="/uploads/FullSky_WMAP_2048W.png"/>

不需要改变你的DNS记录,你可以很容易地选择进入和退出Farba CDN网络。此外,Farba可以在任何现有的CDN/Anti-DDoS解决方案之上运作。因此,你可以在从我们的点对点网络传输静态网页内容的同时,仍然受到一个著名供应商的DDoS保护。

后端

在我们的CDN中,我们有四个不同的角色:

  • 使用者
  • 原始服务器(可信来源)
  • 平衡器(可信来源)
  • Peer(不受信任的源)
图2. 后台模型

当用户从原始服务器打开网页时,我们的CDN javascript会向平衡器发送一个请求。然后平衡器发回一个包含重要信息的JSON回复:

  • 文件在Farba网络中的最近位置
  • 文件的大小
  • 文件的加密摘要
图3. JSON回复

现在,CDN脚本知道了请求文件的新位置,可以进行XMLHttpRequest(XHR)下载调用。由于请求的文件来自不受信任的来源,下一步是验证文件的完整性。脚本计算哈希值并将其与JSON回复中的摘要进行比较。如果和值匹配,脚本就会向用户显示下载的文件。如果总和不匹配,脚本会向原始服务器发送一个新的GET请求,以确保用户在任何情况下都能收到该文件。

每月流量明细

让我们深入研究这些数字,看看一台1Gbps(专用、无限)服务器一个月能产生多少流量。

理论上,使用1 Gbps服务器,我们每秒可以提供128 MB的服务。根据每天10小时80%的服务器利用率,我们估计每月可以提供100 TB的流量。

128MB*80%*3600秒*10小时*30天=110592000MB≈100TB

图4. 通常的流量模式

我们计划使用带宽有限的Peer为红线以上的一切提供服务,例如,一个拥有1Gbps和30TB月流量的Peer和少量属于Farba的95%的服务器。

这种模式将帮助我们有效地管理每日高峰流量,并保持大量的带宽储备。

商业模式

我们的商业模式很简单:我们对客户和Peer之间的每笔交易收取20%的佣金。

让我们来看看同行在美国和欧洲市场的潜在收益。同行可以:

  • 以每月200美元的价格租用一台具有1 Gbps专用、无限带宽的服务器
  • 将价格定为每TB 6美元
  • 提供100 TB的流量
  • 赚取600美元(扣除佣金后为480美元)

或者,Peer可以选择“赚取”流量,并将其用于自己的需求。例如,如果Peer每月的项目需要800 TB的流量,他们只需租用一台10 Gbps的服务器,就可以免费从我们的全球网络中获益。

鸡生蛋,蛋生鸡的问题

我们需要Peer和客户来使我们的网络正常工作,但如果缺少其中之一,我们如何开始?

我们已经在美国和欧洲部署了几个“假冒”Peer,这意味着我们的网络从第一天起就准备好为客户服务。

随着对我们服务需求的增长,我们将向第三方开放网络,并逐步加入新的Peer,以确保所有现有Peer都有足够的工作要做。我们的目标是让所有Peer保持忙碌,同时确保我们的网络有足够的容量来处理不断增加的流量。我们接受新Peer的方法将基于“先到先得”的政策,所以一定要加入我们的等待名单。

演示

你可以在我们的网站上查看一个实时演示。在那里,你可以打开一个开发者控制台,了解Farba CDN系统的实际工作情况:

https://farbacdn.com/usage/demo/

图5. 演示页面

哪里可以得到一个服务器

LeaseWeb

https://tinyurl.com/mtkahcu9

图6. LeaseWeb 1 Gbps服务器 (Seatle, WA)

FDCServers

https://www.fdcservers.net/budget-server-2

图7. FDCServers 10 Gbps服务器 (Seatle, WA)

OVH

https://tinyurl.com/smxm7b3u

图8. OVH 2 Gbps服务器(Hillsboro, OR)。

OneProvider

https://oneprovider.com/configure/dediconf/3688

图9. OneProvider 1 Gbps / 100 TB服务器(Seatle, WA)。

*本文由CoinTime整理编译,转载请注明来源。

免责声明
任何媒体、网站或商业机构不得将本网站刊登的原创内容用于商业性复制,不得对本网站刊登的内容进行曲解、篡改。 请广大读者切实提高风险意识,警惕各类虚拟代币发行与炒作,站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。
关注 Cointime
实时获取最新Web3资讯
评论

所有评论