迭代速度如今取决于你能多快地为应用或智能体配置好所需的计算机。
不同工作负载在运行时长、占用内存大小以及控制环境的程度上各不相同。这在过去意味着每种任务都需要不同的计算原语,因此产品迭代需要配置基础设施,而不仅仅是开发功能。
我们构建 Vercel,就是为了让这些都不再是你的问题。计算层是一个单一系统,只做一件简单的事:接收任何工作负载,组装它所需的机器,动态切换配置,并实时吸收突发容量。
我们称之为 Fluid。
构建任务最先运行在它上面,然后是沙箱,现在是函数。如果你在 Vercel 上发布过东西,那你已经在不知不觉中使用了 Fluid。
Fluid 计算现在每天运行超过 1500 万次构建,每周 2500 万个沙箱,每月处理一万亿次请求。
复制标题链接计算的历史
过去更换一台机器意味着手动更换。你去电脑商店,买一块硬盘或一根内存条,然后自己换上。
然后,你可以在需要时租用裸金属服务器,用它来提供网站服务、托管数据库或发送电子邮件。
再后来,云让你可以按任意配置请求一台机器,选择操作系统,使用它,用完后丢弃。
对于智能体来说,即使是云也太慢了。标准虚拟机无法足够快地配置以满足它们的工作方式,而这正是 Fluid 擅长的地方。
复制标题链接工作负载如何在 Fluid 上运行
当工作负载到来时,Fluid 会组装一台适合其形态的机器。如果智能体需要运行代码,Hive 会提供一个隔离的虚拟机,通常已经预热,因此可以立即就绪。你自己的镜像作为环境在其上启动。Drive 连接后,你的文件就在你离开的地方,因为存储从未与机器绑定。
每个工作负载需要不同的东西。构建是计算密集型的,所以它需要一台强大的机器,CPU 和内存都很重。函数是 IO 密集型的,在请求到达的瞬间加载特定代码运行,通常在一台小型虚拟机上。沙箱是灵活性驱动的,根据工作需要采用任何配置,并附加一个 Drive 用于用户数据。
Fluid 计算是这一切所依赖的执行模型。许多请求在一个实例上运行,而不是每个请求都启动自己的实例。工作立即开始,并且通过 Active CPU 定价,你只需在代码工作时为 CPU 付费,而不是在等待数据库或模型时付费。
复制标题链接Hive
Hive 是“硬件”。我们构建它来控制自己的计算。它为每个工作负载提供运行的隔离机器。它为任务选择正确的机器,在我们的多租户环境中保持每个机器隔离,并在全球范围内做到这一点。Hive 为每个产品提供一个控制平面 API,这样我们的团队就构建在同一个基础上,而不是各自维护自己的。
复制标题链接Fluid 镜像
Fluid 镜像就是这样的环境。迄今为止,操作系统都是固定的。你运行的是云给你的那一个,而不是你选择的那一个。现在,你可以把自己的镜像推送到 Vercel 容器注册表,并在沙箱和函数之间运行它。在后台,Vercel 会将镜像转换为 Fluid 镜像,采用我们称为 VHS(Vercel Hive Snapshot)的格式——这是 Dockerfile 部署和沙箱自定义镜像背后的优化启动格式,因此它可以恢复而不是启动,自定义机器可在毫秒内就绪。它使用与 Sandbox Snapshots 相同的技术,因此一个产品中的优化会惠及其余产品。v0 已经在使用它来构建和运行自己的开发环境。
复制标题链接Vercel Drives
Vercel Drives 是存储层。你的文件存放在可移植、持久的存储中,随工作负载一起移动,而不是被困在某台机器的磁盘上。存储比它所依附的计算更长寿,这正是让系统其余部分得以运转的关键。Drives 不绑定到单台机器,你可以替换其底层的计算,并在下一次会话中从上次离开的地方精确继续。Drives 目前以私有测试版形式附加到沙箱,并由此扩展到 Fluid 的其余部分。
复制标题链接底层是同一个系统
这些是同一系统的不同形态,而不是彼此独立的平台。因为每个产品底层都是同一个计算层,所以启动时间、隔离、调度或缓存方面的改进会同时惠及函数、沙箱和构建,而不是被重复实现三次。新的计算形态可以在不重建基础的情况下加入。你不会最终得到彼此逐渐分道扬镳的独立原语。
而且这是真实的,不是一张示意图:Hive 在毫秒内配置出一台完整的虚拟机,并连同你的文件系统状态一起带来,因此你获得的隔离比 isolate 或容器更强,却无需在启动时间上付出代价。
复制标题链接智能体工作负载
智能体要快速行动,就需要合适的机器,而且需要立即得到。机器组装得越快,智能体工作得就越快。
智能体运行不受信任的代码,因此机器需要安全边界。它自带工具,因此机器需要有自己的环境。而且由于智能体会不断创建和销毁,其状态必须比计算更长寿。Fluid 会立即组装出那台机器,然后为下一个任务组装一台全新的。
多年来,机器是固定的东西,你得让自己的工作去适应它。
在 Fluid 中,你描述工作,机器围绕它成形。
