Vercel:打破厂商锁定的云平台
厂商锁定的真实含义
厂商锁定发生在平台构建偏离开放标准的功能时,这些功能通过专有API在应用程序代码中被访问。如果应用程序使用这些功能,就需要重写代码才能迁移到其他平台。
当您基于AWS Step Functions或Cloudflare Durable Objects等厂商原语进行构建时,这些依赖项就存在于应用程序代码中。您的业务逻辑与平台API绑定,这意味着迁移需要重写逻辑以适应不同的原语。
框架定义基础设施意味着可移植代码
这种可移植性得益于框架定义基础设施(FDI)。FDI意味着平台读取您的代码并确定您需要什么基础设施。您遵循框架的模式,Vercel处理其余部分。
复杂的生产应用程序在Vercel上运行,其代码库中没有任何地方提及vercel。它们遵循Next.js约定(或Remix、SvelteKit、Nuxt等40多个受支持框架之一)。Vercel分析构建输出,并相应地配置中间件、函数、静态资源和缓存。
本地开发无需Vercel工具
基于厂商原语构建的平台需要复杂的模拟器进行本地开发。Cloudflare提供Wrangler来本地模拟Workers。AWS开发人员使用LocalStack或SAM CLI来模拟Lambda和其他服务。这些工具近似生产行为,但从未完全匹配。
使用FDI,您运行框架的标准开发服务器。对于Next.js,运行next dev。对于Remix,运行remix dev。您编写的代码在本地和生产环境中以相同方式运行。无需安装Vercel CLI,也没有模拟层造成环境差异。
大多数Next.js应用已在Vercel之外运行
Next.js是Vercel上部署最广泛的框架。基于Next.js遥测跟踪的不同项目,大约70%的Next.js应用程序在Vercel之外运行。
许多公司目前在自己的基础设施上自托管Next.js,在实践中证明了这种可移植性。Walmart.com在自托管的Next.js上每天为数百万购物者服务,Nike.com在自己的系统上以全球规模运营,Claude.ai也在自己的基础设施上使用Next.js构建应用程序。
每个主要云厂商都提供Next.js部署选项。Netlify、Cloudflare、AWS Amplify、Google Cloud和Azure都原生支持Next.js。对于自定义基础设施设置,OpenNext等开源项目使Next.js能够运行类似于Vercel的无服务器架构。
Next.js适配器规范化框架与平台的契约
Next.js团队构建了Build Adapters作为显式版本化API,以规范化框架与平台之间的契约。适配器定义Next.js输出什么、每个路由需要什么基础设施功能,以及平台应如何处理它们。
每个部署在Vercel上的Next.js 16应用程序都使用与其他平台相同的适配器API。Vercel没有特殊访问权限或不同的集成点。Vercel用于验证功能的测试套件对所有平台提供商都可用。
标准优先,始终可移植
我们尽可能优先考虑标准协议。Vercel市场上提供的数据库使用Postgres和Redis等标准协议。这些通过市场合作伙伴提供,或者您可以连接到您操作的任何实例。
相同的理念延伸到我们的AI基础设施。AI Gateway支持OpenAI API格式,这已被OpenAI、Anthropic和大多数其他模型提供商建立为事实上的行业标准。在直接调用OpenAI或通过AI Gateway路由之间切换,只需要在配置中更改API端点URL,无需更改代码。
有些服务需要专有API,因为尚未存在行业标准。Vercel Sandbox提供不受信任代码的安全执行。Edge Config通过简单的get(key)接口为分布式配置提供超低延迟读取。迁移到替代方案需要更新代码以使用其API。然而,区别在于这些服务可以从任何基础设施调用,包括EC2或您自己的服务器,而不需要您使用Vercel进行托管。当这些用例出现行业标准API时,我们将实现它们。
我们为什么这样构建
构建可移植的开源软件是Vercel的核心价值。我们构建开源软件是为了创建一个持久的企业,使我们能够继续开发优秀的开源软件。我们的目标是提高世界各地每个人的默认软件质量,无论他们是否是Vercel客户。
当开发人员学习Next.js、Nuxt或AI SDK时,他们需要相信这项投资不会将他们困在单一平台上。这种信任推动更广泛的采用。更广泛的采用创造更大的生态系统。更大的生态系统使每个平台都变得更好,包括Vercel。
我们希望您选择留在Vercel,而不是被迫留下。赢得这种选择的最佳方式是构建随处可用的工具,以及使这些工具更好的平台。