本文作者:Anton Lakhtikov 编译:CoinTime Candice
如果你有许多用户和大量静态网络内容,你通常希望使用CDN来有效地提供这些内容。传统的CDN提供者拥有或租用所有必要的基础设施,在他们的网络中没有不受信任的部分,但这对客户来说成本很高。例如,AWS每TB流量收费在20美元至87美元之间。
另一种解决方案是雇佣几名工程师,租用几台服务器,然后构建自己的CDN,每TB的成本仅为2美元。
这些方法中的每一种都有光明和黑暗的一面。我们能否将两个世界的最佳部分结合起来:创造可靠、安全的交付、体面的服务和低廉的价格?

在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(不受信任的源)

当用户从原始服务器打开网页时,我们的CDN javascript会向平衡器发送一个请求。然后平衡器发回一个包含重要信息的JSON回复:
- 文件在Farba网络中的最近位置
- 文件的大小
- 文件的加密摘要

现在,CDN脚本知道了请求文件的新位置,可以进行XMLHttpRequest(XHR)下载调用。由于请求的文件来自不受信任的来源,下一步是验证文件的完整性。脚本计算哈希值并将其与JSON回复中的摘要进行比较。如果和值匹配,脚本就会向用户显示下载的文件。如果总和不匹配,脚本会向原始服务器发送一个新的GET请求,以确保用户在任何情况下都能收到该文件。
每月流量明细
让我们深入研究这些数字,看看一台1Gbps(专用、无限)服务器一个月能产生多少流量。
理论上,使用1 Gbps服务器,我们每秒可以提供128 MB的服务。根据每天10小时80%的服务器利用率,我们估计每月可以提供100 TB的流量。
128MB*80%*3600秒*10小时*30天=110592000MB≈100TB

我们计划使用带宽有限的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/

哪里可以得到一个服务器
LeaseWeb

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

OVH

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

图9. OneProvider 1 Gbps / 100 TB服务器(Seatle, WA)。
*本文由CoinTime整理编译,转载请注明来源。
所有评论