为什么一个存在了四十多年的核心概念------IP,正在工程实践中被主动"抹掉"?
在早期互联网里,IP 几乎等同于"服务器"。
你租一台机器,拿到一个 IP;
你部署一个服务,绑定这个 IP;
出问题时,第一反应是:
ping 一下。
但如果你仔细观察今天的云平台,会发现一个极不自然的现象:
-
Serverless 没有固定 IP
-
CDN 不暴露真实 IP
-
Pages / Functions / Workers 根本不告诉你 IP
-
甚至很多文档会刻意回避这个词
这不是技术退化,而是一场系统层级的升级。
一、IP 从来不是"服务",它只是"位置"
这是理解"IP 消失"的起点。
IP 解决的问题只有一个:
我在网络中的位置在哪里
而服务真正关心的是:
-
我是谁
-
我能干什么
-
我是否可用
-
我是否安全
-
我是否可扩展
这两件事,在单机时代还能勉强绑在一起,
但一旦进入云与分布式世界,就开始严重冲突。
二、Serverless 的第一原则:位置不重要
Serverless 的设计前提非常激进:
计算不应该有固定位置
一个请求到来时:
-
可能在东京执行
-
可能在法兰克福
-
也可能在你完全不知道的边缘节点
而 IP 本质上是一个**"固定坐标"**。
一旦你依赖 IP,就等于在说:
"我希望这段逻辑永远待在这里"
这与 Serverless 的弹性、调度、容灾目标是直接对立的。
三、IP 对弹性伸缩是"毒药"
假设你有一个固定 IP:
-
扩容时,你要么再分配一个 IP
-
要么在 IP 后面加一层负载均衡
-
要么人为维护一套映射关系
而 Serverless 选择了另一条路:
根本不让你看到 IP
你只得到一个抽象:
-
域名
-
Function 名
-
Service 标识
-
Route
伸缩发生在系统内部,对你来说是不可见的。
四、IP 是安全模型里最脆弱的一环
很多人还在用:
-
IP 白名单
-
固定出口 IP
-
防火墙放行 IP
但在现代安全模型中,这些已经被视为:
弱身份、易伪造、不可组合
Serverless 更倾向于:
-
TLS 身份
-
Token / JWT
-
mTLS
-
Zero Trust
因为:
IP 只能说明"你从哪来",不能说明"你是谁"
当身份上升为第一公民,IP 自然退居二线。
五、为什么 CDN 和 Pages 要"隐藏"真实 IP?
这是一个非常典型的"看似多此一举,实则必然"的设计。
如果平台暴露真实 IP:
-
你可以绕过 CDN
-
你可以绕过安全策略
-
你可以绕过缓存与限流
-
你可以直接打源站
这会让平台的所有能力失效。
所以现代平台统一选择:
IP 只在平台内部存在,对用户不可见
你面对的永远是:
-
一个域名
-
一条 Route
-
一个 API Endpoint
六、IP 消失,并不意味着"网络变简单了"
恰恰相反。
IP 并没有消失,它只是:
-
被封装
-
被调度
-
被系统接管
复杂性没有消失,而是从人类视野中移走了。
这和历史上很多抽象升级是同一条路径:
-
程序员不再管理寄存器
-
不再手写内存地址
-
不再关心线程在哪个核上跑
IP 的"消失",是网络层抽象完成的标志。
七、真正发生变化的,是"你该关心什么"
在 Serverless 时代,你被鼓励关心的是:
-
接口契约
-
延迟与可用性
-
冷启动
-
幂等性
-
身份与权限
-
成本模型
而不是:
-
这台机器在哪
-
它的 IP 是多少
-
我能不能 ssh 上去
这不是能力被剥夺,而是角色的变化。
最后的结论
IP 并没有过时,它只是不再属于"应用层思考"的一部分。
Serverless 并不是"不要网络",
而是终于把网络,变成了平台该操心的事情。
当你意识到这一点时,你会发现一个更大的趋势正在浮现:
未来的软件,不再部署在某个地方,而是存在于"可被路由的能力"之中。