🕸️ 第八章 Web系统的开发原则
📄 一句话概括

把活从服务器上拿下来有两条路——把别人的功能拼进来(Mashup),把自己的计算挪出去(边缘计算);后者的差距是物理决定的,光在光纤里约每毫秒跑 200 公里。

📝 本节和前面几节的关系

8-7 讲的是在边界上流动的数据,这一节讲边界本身怎么往外扩。教材 8-8 的并列关键词是【Mashup、边缘计算】——一个是把别人的功能拼进来,一个是把自己的计算挪出去,方向正好相反。

一、Mashup:把别人家的接口拼成自己的新东西

Mashup 这个词来自音乐,原意是把两首歌混成一首。 在 Web 里它的定义一样朴素:把几个别人家的接口拼成一个自己的新功能。

最早的知名例子是 2005 年的 ChicagoCrime.org—— 作者把芝加哥警局公开的犯罪数据叠在 Google 地图上, 于是有了第一张能按地点查犯罪的地图。 数据不是他采的,地图不是他画的,他只是把它们拼在了一起。

这件事能成立,靠的是一个前提:别人愿意把接口开放出来。 所以 Mashup 流行到什么程度,本质上取决于有多少东西是开放的。

二、拼装看起来简单,做稳要过四关

把两个接口拼起来,半天就能写出个能用的版本。 但要它长期稳定地跑,得把四件事想清楚:

四关里最难的是最后一关。 因为它的难点不在写代码,而在决定一件事:缺了一路数据时,界面该显示什么。 这个问题没法靠技术回答,只能靠人定。

三、边缘计算:目标只有一个字,近

如果说 Mashup 是把功能拼进来,边缘计算就是把计算挪出去—— 挪的方向恰好相反,目标只有一个字:近。

近能换来多少,有一组公开对比:

这个差距不是靠软件优化来的,是物理决定的: 光在光纤里大约每毫秒跑 200 公里。 算一下就知道——数据每多跑 1000 公里,至少多 5 毫秒;跑 3000 公里,至少 15 毫秒。 绕不过去,因为光速不会因为你付了更多钱就变快。

在 5G 上这个差距最明显:空口时延 8~12 毫秒, 接入边缘服务器后的往返约 14 毫秒,抖动约 1.8 毫秒。 前面几毫秒是无线那一跳省下来的,剩下的就是距离省下来的。

四、什么该挪到边缘,什么该留在云上

判断标准很简单,照下面这张表看就行:

一句话概括:要【立刻回话】的往下挪,要【看全局】的往上收。

市场规模这一项,正好可以当个教材:同一件事,四份报告四个数字—— 704 亿美元、849.5 亿美元、2739.6 亿美元、138 亿美元, 年增速分别是 15.1%、8.67%、13.33%、14.5%。 最高和最低差了二十倍。

原因不是有人算错,而是【边缘】这个词的范围没定死: 有的只算边缘服务器硬件,有的把整个分布式 IT 都算进来。 所以看行业报告的第一件事,永远是先看它把什么算进去了。

有一个相对稳的数字可以记:到 2025 年, 企业约有 75% 的数据产生在传统数据中心之外。 数据在哪儿产生,计算就该往哪儿挪——这才是边缘计算真正的推力。

五、动手 Demo:把活从服务器上拿下来——拼装与边缘

边缘比云快多少,可以先从光速算起,再看两个口径的倍数:

# 光在光纤里约每毫秒 200 公里
for d in (1000, 3000):
    print("  回传 %d 公里,光在路上就要 %.1f 毫秒" % (d, d / 200))
print("  云 80 毫秒 对 边缘 8 毫秒,差 %.0f 倍" % (80 / 8))

实跑输出:

--------------------------------------------------------------------
把活从服务器上拿下来——拼装与边缘
--------------------------------------------------------------------
  教材把这一节叫【剥离服务器的功能】,指的是两件事:
  一件是把功能拼出来(Mashup),一件是把功能挪出去(边缘计算)。

  先说 Mashup。它的定义很朴素:把几个别人家的接口拼成一个自己的新功能。
  最早的知名例子是 2005 年的 ChicagoCrime.org——
  作者把芝加哥警局公开的犯罪数据叠在 Google 地图上,
  于是有了第一张能按地点查犯罪的地图。数据不是他采的,地图不是他画的,
  他只是把它们拼在了一起,这就是一个新东西。

  拼装看起来简单,做稳要过四关:

  步骤             要解决的问题
  ----------------------------------------------------
  定规范模型       先把【我要的那份数据长什么样】定死
  拉取与归一       几家的单位、格式都不一样,要统一
  加缓存           别人家的接口随时会慢,别每次都现拉
  容忍部分失败     一路数据没回来,页面不能整片白掉
  ----------------------------------------------------
  再说到边缘计算。它的目标只有一个字:近。

  位置         往返延迟
  ------------------------------------------------
  中心云       60~100 毫秒(另一口径 50~150)
  边缘节点     10 毫秒以内(另一口径 5 毫秒以内)
  差距         大约一个数量级
  ------------------------------------------------
  这个差距不是靠软件优化来的,是物理决定的:
  光在光纤里大约每毫秒跑 200 公里。
  也就是说,数据每多跑 1000 公里,至少多 5 毫秒——绕不过去。

  在 5G 上,这个差距最明显:

  环节                       实测数字
  ---------------------------------------
  5G 空口时延                8~12 毫秒
  边缘服务器接入后的往返     约 14 毫秒
  抖动(波动幅度)           约 1.8 毫秒
  ---------------------------------------
  什么该挪到边缘、什么该留在云上,判断标准也简单:

  放哪儿     什么东西
  --------------------------------------------------
  边缘       实时响应、即时反馈、本地安全判断、脱敏
  中心云     长期存储、模型训练、全局分析、批量任务
  --------------------------------------------------
  市场规模这一项,正好可以当个教材:同一件事,四份报告四个数字。

  口径       2026 年规模       年增速
  ------------------------------------
  口径 A     704 亿美元        15.1%
  口径 B     849.5 亿美元      8.67%
  口径 C     2739.6 亿美元     13.33%
  口径 D     138 亿美元        14.5%
  ------------------------------------
  最高和最低差着二十倍。原因不是有人算错,而是【边缘】这个词的范围没定死:
  有的只算边缘服务器硬件,有的把整个分布式 IT 都算进来。
  所以看行业报告的第一件事,永远是先看它把什么算进去了。

  一个相对稳的数字可以记:到 2025 年,企业约有 75% 的数据
  产生在传统数据中心之外——数据在哪儿产生,计算就该往哪儿挪。

10 倍这个差距,不是调优能追回来的。 软件优化能把 80 毫秒压到 60 毫秒,但压不到 8 毫秒—— 因为剩下的时间都花在【路上】,花在光纤的长度上。 这就是为什么自动驾驶、工业控制这类场景必须把算力搬过去, 而不是把云做得更快。

30 秒实验

  1. 打开一个网页,按 F12 看 Network 里有几个不同域名的资源——每一个别人家的域名,都是一次 Mashup。
  2. 手机连 Wi-Fi 和连移动网络,分别访问同一个网站,感觉一下延迟差别。
  3. 想一下你手机上哪些功能断网还能用(那是本地做的),哪些必须联网(那是挪不出去的)。

常见误区

  1. 错误:Mashup 就是在网页里嵌个地图。——纠正:嵌地图只是最常见的一种;它的本质是把两个以上独立来源的数据或功能组合成一个新功能。
  2. 错误:边缘计算是【小一号的云】。——纠正:它做的不是把云缩小,而是把该近的东西挪近;长期存储、模型训练这些反而更该留在中心。
  3. 错误:行业报告说边缘市场 2739.6 亿美元,另一份说 138 亿,肯定有人算错了。——纠正:差的不是事实,是口径;所以看报告的第一件事是看它把什么算进去了。
自测三问(点开对答案) 1. Mashup 是什么? —— **把两个以上外部接口的数据或功能拼成一个新功能。** 2005 年的 ChicagoCrime.org 把犯罪数据叠在地图上,是这门手艺的开端。 2. 边缘比云快这么多,根本原因是什么? —— **物理决定的距离。** 光在光纤里约每毫秒跑 200 公里,回传 1000 公里至少多 5 毫秒、3000 公里至少 15 毫秒,这部分时间软件压不掉。 3. 什么应该留在中心云上? —— **长期存储、模型训练、全局分析、批量任务。** 判断标准是:要立刻回话的往下挪,要看全局的往上收。

相关笔记