内容分发网络(CDN)的演进
最初专注于缓存与保护源站服务器的 CDN,随着无服务器计算的兴起而开始演进。一个新理念迅速流行起来:开发者可以定义一个原子化的“函数”,在有事件触发时按需运行,比如新图片上传或新增数据库记录,而无需自建与维护底层的物理或虚拟基础设施。
2015 年,AWS Lambda 成为这一新范式的首个示例。2016 年发布的 AWS Lambda@Edge 允许您在 Amazon CloudFront(AWS 的 CDN 服务)之上以同样方式运行函数。
各大主流 CDN 随之跟进,推出了诸如Cloudflare Workers(2017)、Fastly Compute@Edge(2019) 与 Akamai EdgeWorkers(2019) 等服务。
而且这还不止!正如本文开头所说,边缘计算并不仅仅是把算力带到边缘。在多数情况下,您还需要某种数据存储。因此 CDN 持续演进,并在边缘推出了新的服务,如键值存储、对象存储、SQL 数据库、图片裁剪、AI 推理等!
例如:
- Cloudflare 的开发者平台包含边缘服务,例如用于键值存储的 Workers KV、具备时间点恢复能力的关系型 SQL 数据库 D1、免出口流量费的对象存储 R2,以及用于异步任务执行的 Queues。
- 类似地,在 Fastly 您可找到用于存储键值对、密钥与配置数据的 KV Store,以及在边缘实现双向异步发布/订阅的 Fanout。
- 毫不意外,Akamai 也提供 EdgeKV。
- Amazon CloudFront 于 2023 年推出了CloudFront KeyValueStore。

如今,CDN 提供的服务已从无服务器函数拓展到键值存储、对象存储、队列与关系型数据库等,这些原本只会在云区域(或数据中心)中运行的能力。巧合的是,队列、对象存储和计算资源正是 2006 年最早一批云服务,如今以全球分布式的方式在边缘登场。
在幕后,这些新的边缘计算平台采用了不同技术,并支持不同的编程语言。举例来说,Cloudflare 使用 Chrome V8 引擎,最初仅支持 JavaScript,但从 2018 年开始引入 WebAssembly。另一方面,Fastly 从一开始就决定使用 WebAssembly 进行其环境沙箱,以避免 V8 的部分启动延迟限制。这使得 Fastly 能支持 TypeScript、Rust、Go、.NET、Ruby、Swift 等多种语言。
下面我们简单聊聊 WebAssembly。
边缘侧的 WebAssembly
WebAssembly(简称 Wasm)也许是该领域最有趣的发展之一。自 2017 年发布、并于 2019 年成为 W3C 推荐标准以来,很多人讨论它在浏览器中执行 Wasm 二进制的能力,但它在服务端(包括边缘)执行方面同样潜力巨大。
借助 Wasm,您可以用多种受支持的语言编写业务逻辑,并将其编译为在 Bytecode Alliance 的 wasmtime 等 Wasm 运行时上执行的二进制文件。
配合 WASI(WebAssembly 系统接口),它允许您使用 W3C 标准化的接口,将使用不同语言编写的软件进行组合。
如果这听起来让您联想到云世界里非常流行的某样事物,不妨看看Docker 创始人 2019 年的这条推文:
如果 2008 年就有 WASM+WASI,我们就不需要创建 Docker 了。它的重要性就是这么高。服务端的 WebAssembly 是计算的未来。标准化的系统接口曾是缺失的一环。希望 WASI 能胜任这一任务!
因此,社区对 Wasm + WASI 的期待非常高。我强烈建议您关注 Bytecode Alliance 及其在为 WebAssembly 打造安全、开放的编译器、运行时与工具方面的努力。该非营利组织由 Mozilla、Fastly、Intel 与 Red Hat 于 2019 年创立。如今,其成员还包括 Amazon、Arm、Cisco、Docker、Fermyon、Microsoft、Nginx、Shopify、Siemens 与 VMware 等云与边缘领域的参与者。
边缘与云计算对比
现在,让我们回到边缘计算的探索。
与云计算相比,其中一个最有趣也最显著的差异在于:边缘自设计之初就是全球分布式的。您的代码与数据存储原生运行在数百个边缘服务器上。这与通常从单个数据中心(或一个区域内 2-3 个可用区)起步的集中式云架构有很大不同。
虽然许多应用完全可以集中式运行,但如果您在构建面向全球用户的网站或产品,您的架构必然会涉及某种形式的缓存与内容分发。而在边缘计算中,这些几乎是自动完成的:只需一次点击(或一条 CLI 命令),您的边缘应用就能在全球范围内分发,并尽可能贴近用户运行,以优化延迟。
于是出现了一个反问。
您还需要云吗?
换句话说,到了 2024 年,云是否仍是设计与构建良好架构、可扩展应用的最佳选择?
答案是:是的!
现实情况是,对大多数用例而言,边缘仍需要某种可依赖的源站。源站是业务逻辑运行之处,无论它是您网站的后端,还是其他需要保持集中式(出于便利、技术限制或成本考虑)的复杂工作负载。
让我们看看哪些工作负载(目前)更可能留在云端:
- 后端 API + RDMS——通常是源站与生产数据库的核心(仅 AWS 上就有至少 10 种不同的数据库服务)。
- 海量存储——云提供通过冷存储等方式降本的路径。
- 数据分析——典型的数据仓库、数据湖与数据管道需要集中式数据存储库来运行查询与生成报表。
- AI/ML——高效且具成本效益的训练需要海量数据集(而推理已经可以在边缘运行)。
- HPC/仿真——高性能计算在设计上是分布式的,但通常在同一数据中心或区域内进行,以降低网络开销。
- CI/CD 流水线——这些可以在任意位置运行,但在云上可能更方便且更便宜(包括用于部署边缘服务的流水线)。
总而言之,云擅长通用型服务,几乎能支持现有的所有工作负载类型,具备几乎无限的存储与横向扩展能力(在单一区域内,或跨少量区域以实现韧性与灾备)。
相对地,边缘简化了全球部署,增强了安全性,并为云端源站启用缓存,同时在不增加主应用复杂度的情况下,提供以延迟优化为目标的功能。
换言之,云计算与边缘计算相互补充,它们将持续并存,解决不同的技术问题。
成本感知型架构
另一个值得考虑的维度是成本。与托管服务常见的情况一样,取舍在于:使用现成方案,还是自行设计、构建并维护一个全球分布式方案。
由于边缘针对全球内容分发进行了优化,它常常能降低出口带宽费用。然而,边缘数据存储必须在数百个边缘服务器间分布复制,这使得存储与数据操作的成本看起来会比区域性云服务更高——后者通常只在 2-3 个可用区间复制数据。
让我们看一些数字,聚焦 3 个边缘服务(Cloudflare Workers KV、Fastly KV、CloudFront KeyValueStore)与 2 个云服务(AWS 上的 Redis serverless 与 AWS 上的 DynamoDB 按需计费):
|
Cloudflare KV |
Fastly KV |
CloudFront KeyValueStore |
Redis serverless on AWS |
DynamoDB on-demand on AWS | |
|
100 万次写入 |
$5 |
$6.25 |
$1000 |
$0.0038 * |
$0.76 |
|
100 万次读取 |
$0.50 |
$0.50 |
$0.03 |
$0.0038 * |
$0.15 |
|
1GB/月 |
$0.50 |
$0.50 |
$0 |
$100 |
$0.3 ** |
* 每 KB
** 前 25 GB 免费
一些有趣的差异与观察:
- Cloudflare 不对数据传输收费,但删除操作的计费与写入相同。
- Fastly 不对删除操作收费,但您每月限额为 25 万次写入与 500 万次读取(除非购买附加包)。
- CloudFront KeyValueStore 在读取方面似乎优化得非常激进,但与其他选项相比,写入成本高得惊人。
- Redis 看起来相当便宜,但要注意其按 KB 计费为 $0.0038,如果读写 5KB,成本会高出 5 倍(不过仍然相当便宜)。
- DynamoDB 不仅是键值存储,但完全可以以此方式使用,且相较边缘服务依然便宜一个数量级。
尽管云服务看起来更便宜,但务必注意,它们默认并非全球化运行。您可以启用 DynamoDB Global Tables 或 Amazon ElastiCache Global Datastore(但它与 ElastiCache serverless 不兼容,因此您还需要管理多个集群)。
例如,如果在 10 个区域启用 DynamoDB Global Tables,写入与存储成本会被放大 10 倍,因此变为每 100 万次写入 $7.60、每月每 1GB $3。这已经比边缘替代方案更贵了,而且只覆盖 10 个区域(而边缘服务器动辄数百个)。
边缘计算的真实用例
那么,边缘究竟能做什么?有许多有趣的用例,希望本文能帮助您判断哪些适合您的产品。
几个示例:
- 身份验证:实现基于边缘的 CAPTCHA、免密认证或 JWT 校验,可在边缘执行无状态操作,减少对源站的负载,无需访问数据库或其他源站资源。
- 数据采集:集成外部数据源或数据目的地,将客户端与服务端的埋点追踪卸载到边缘,避免在浏览器中引入臃肿的 SDK 或在服务器端形成性能瓶颈。
- 基于地理的增强:用存储在边缘的“离您最近”内容增强站点体验,实现本地化重定向(
/en->/fr)、利用地理定位 API 进行地理围栏或按国家限流。 - 内容个性化:在边缘存储与展示最近浏览的文章或推荐商品,实现付费墙,或进行 A/B 测试,以提供个性化、情境化内容,同时将源站复杂度降至最低。
- SEO 优化:在边缘直接操控 HTTP 头与 HTML 响应,以实现自定义缓存策略、内容拼接或特定压缩算法。
- 安全:集成自定义 WAF(Web 应用防火墙),或实现私密头与自定义访问控制逻辑。
或者,您也可以设计一整套几乎完全在边缘运行的产品或产品组合——这正是我们在 Edgee 所做的。
要点回顾
希望本文能帮助您明确:CDN 已不再局限于缓存与 DDoS 防护——它们如今为开发者提供了大量有价值的服务。边缘是一种构建应用或集成新功能的新方式,同时让源站保持快速与简洁。
WebAssembly 潜力巨大,不仅适用于浏览器,也适用于服务端与边缘的二进制执行。
云计算依然会长期存在,而边缘通过打造全球分布、延迟与成本优化的应用来补足其局限。我的个人建议是设计与构建成本感知型架构,这是成为更高效开发者或架构师的关键技能。
FAQs
谁发明或首次提出了“边缘计算”这一术语?
“边缘计算”这一概念在 20 世纪 90 年代末与 21 世纪初逐渐出现,伴随着互联网与移动技术的发展,对分布式计算解决方案的需求不断增长。尽管该术语的确切提出者并未被明确归于某个个人或组织,但它随着时间演进,涵盖了诸多用例,如物联网(IoT)、5G、CDN 与自主系统等。
边缘计算对能源效率有何影响?
边缘计算可通过减少与集中式云服务器之间的大量数据传输来提升能源效率。本地处理可最小化网络流量并降低能耗。然而,如果在全球范围内运行大量边缘设备,取决于规模与设备效率,也可能导致更高的总体功耗。
哪些行业最快在采用边缘计算?为什么?
制造、医疗、汽车与零售等行业正快速采纳边缘计算。制造业受益于车间的实时监控与预测性维护;医疗利用边缘在可穿戴设备上进行快速诊断;汽车行业将其用于自动驾驶;零售则应用于个性化购物体验。
WebAssembly(Wasm)如何增强边缘计算?
WebAssembly(Wasm)通过让开发者在边缘设备上运行轻量、安全且高性能的应用来增强边缘计算。它支持多种编程语言,提供开发灵活性。其启动迅速,且与 Cloudflare Workers 或 Fastly 等边缘平台兼容,使 Wasm 成为延迟敏感型应用的理想选择。
与云计算相比,边缘计算的安全挑战有哪些?
边缘计算在更靠近用户的分布式设备上处理数据,由此带来独特的安全挑战并扩大了潜在攻击面。确保数据加密、设备安全认证与定期软件更新对于降低风险至关重要。与具备集中式安全控制的云系统不同,边缘环境需要更去中心化与自适应的安全措施。
Alex 是一名对网页技术和音乐充满热情的软件工程师。自 2011 年起,他便开始从事网页项目并分享实践经验。他热爱编程,涉猎 Python、JavaScript 等多种语言,以及开源生态与初创企业。在帮助开发者与公司采用云技术的 6 年之后,Alex 重返初创领域,致力于帮助企业采纳边缘计算技术与服务。

什么是边缘计算?
关于边缘计算有许多定义,但核心概念非常简单。边缘计算将计算与数据存储推向更靠近用户的一侧,与集中式数据中心相比可降低网络延迟。
这会根据您构建的应用类型带来不同的架构设计。事实上,边缘计算是一个广义术语,涵盖了许多技术领域。
例如,在工业或制造场景中,计算被下推到物联网设备与边缘网关,以在推送至云端之前聚合或预处理数据。在医疗、零售或汽车等行业,您也会看到类似的应用,将对业务至关重要的计算逻辑下沉到可穿戴设备、智能摄像头或自动驾驶汽车。在所有这些用例中,计算都必须在边缘快速完成,从而避免往返远端数据中心带来的网络延迟。
一点有关 Web 与云计算的历史
在本文中,我们将重点关注基于 CDN 的边缘计算——如果您每天使用 Web 和 云服务来构建 Web 应用,这就是您需要关心的那种边缘。
要理解基于 CDN 的边缘计算及其目的,我们需要回顾多年来 Web 与云的演进。这一背景至关重要,因为边缘计算正是这场演进的关键。
让我们快速看看 Web 是如何诞生的,以及它如何引向云:
2000 年代初也是云计算诞生之时。让我们回顾过去 20 年的几个重要里程碑:
那么,今天的云是什么样子?
不到十年时间,Web 应用技术就从原始的硬件虚拟化演进至通过 API 在几分钟内即可获取的虚拟机;随后又发展到容器编排与可在数秒(甚至几十毫秒)内启动的无服务器函数,支持按秒(甚至按毫秒)计费,并具备大量内置自动化能力。
而这还只是计算层面。若放眼存储、网络、数据库、分析等领域,托管服务可谓成百上千。托管数据库尤为有趣,因为您可以找到大量选项(包括您喜爱的开源引擎),并且它们常常能自动化生产环境中运营数据库最繁琐的部分。
有人认为云服务让构建 Web 应用变得前所未有地简单与高效,也有人觉得 10 或 20 年前反而更容易上手、路径更直接。事实是,这很主观,取决于您在构建什么、以及您的业务目标与优先级。
过去 10 年还有哪些变化?
回到我们的历史速览,在过去十年里,还有一件事几乎悄然发生了——内容分发网络经历了类似的演进,形成了我之前所称的“基于 CDN 的边缘计算”。
内容分发网络(CDN)是分布全球的代理服务器网络,旨在提升网站性能。简单来说,CDN 通过加速传输并在数百个边缘服务器间缓存内容,帮助内容所有者将内容更快地送达互联网用户。部署在您网站前方的 CDN 还可为源站提供 DDoS 攻击与其他漏洞的防护屏障。
但这已不再是完整图景。让我们看看它们在过去 10 年里又是如何演进的。