如果您尝试手动将应用程序部署到生产中,那么您可能会知道事情会多么令人不安。即使是丝毫错误也可能导致生产数据库被删除,这使该公司损失了数十亿美元,使您吓坏了,并在老板发现之前逃离了该国,并开始以山羊农民的身份生活在喜马拉雅山。
这就是为什么大多数开发人员使用Vercel,Netlify,Heroku和Firebase在为您处理部署并防止您犯任何大错误的原因。无论如何,Vercel刚刚引入了3个新数据库或存储选项。让我们简短地看看它们。
什么是Vercel?
好吧,Vercel是一个云平台,使开发人员能够托管其网站和网络应用程序,这些网站和网络应用程序可以自动部署和扩展。 Vercel是部署Next.js应用程序的最喜欢的选择,因为它们对框架具有更有效的支持。这并不像Vercel也保持下一个。JS。
,但最好的部分是,尽管他们专门研究JavaScript框架,但它们几乎支持每个语言框架。我托管了许多Python框架,例如烧瓶,Fastapi甚至Django。他们甚至支持PHP,我在那里托管了我的应用程序,并且没有速度或渲染的任何问题。
他们具有疯狂的很棒的用户界面和经验,使其变得如此用户友好。它为开发人员提供了一个名为Hobby
的免费级别,可以尝试并尝试他们的平台。它反对Vercels Tos在免费层上运行商业应用程序。即使您在技术上可以,如果违反,他们也会关闭您的网站。因此,您必须执行付费计划,与其他平台相比,这有点贵。
介绍
Vercel向其存储解决方案引入了3个新添加。他们在5月1日这样做了,您可以在website上找到公告。新添加是:
Vercel KV (Beta)
Vercel Postgres (Beta)
-
Vercel Blob(私有beta)
我们将在下面单独谈论它们。这是一件巨大的事情,因为他们试图控制用户使用任何其他第三方数据库解决方案并自己管理。该数据库是Vercel上唯一缺少的东西,但现在至少可以供公众使用它。它们尚未用于企业使用,主要是很快就可以使用。
https://www.youtube.com/watch?v=gA8cHj3w5XI&ab_channel=Vercel
Vercel KV
它是Redis之类的键值存储,实际上就像Redis一样,因为它由Upstash提供动力。如果您不知道UpStash是一家位于加利福尼亚的公司Upstash Inc的无服务器内云数据库。这是无服务器的REDIS服务。它可用于缓存层或数据库。您可以有关它的更多详细信息here。
目前,我对它的工作速度更感兴趣,让我们尝试创建一个简单的免费tier Vercel KV存储。创作非常简单,他们只是要求您提供名称和地区。我和新加坡一起作为我的地区,因为它似乎是最近的。
他们还提供CLI来设置并直接从数据库中获取值。
我复制了它们为测试提供的模板,您可以在GitHub上获取模板源。我修改了其page.tsx
文件只是为了设置并从数据库中获取值。
import kv from "@vercel/kv"
export default async function Home() {
console.time("res");
await kv.set("message", "Hello World!");
const msg = await kv.get("message");
console.timeEnd("res");
return <p>{msg}</p>;
}
当我第一次运行时,它花费的时间超过了200 ms
加载,因为这是第一个请求服务器花费一些时间来热身和响应。即使是第二和第三尝试仍然超过100 ms
,但之后,它降至25 - 50 ms
范围。
请记住,这既是阅读又是写作。但是,当我仅在数据库中测试阅读时,它就高于
15 ms
。
存储支持在Redis上可以执行的所有操作。创建,请求,记录大小等有限制,您可以找到它们here。价格似乎远高于预期,但可能会下降。
Vercel Postgres
这是我最兴奋的部分。他们介绍了Postgres是最先进的通用对象关系数据库管理系统之一。我一直在为项目使用它。它由霓虹灯提供支持的无服务器PostgreSQL。霓虹灯分开存储和计算,以提供现代开发人员功能,例如无服务器,分支,无底存储等。
巧合的是,我将霓虹灯用于一个自由职业项目,这真是太神奇了,因为它提供了一个网络界面来编辑,提供分析和查看表,从而使我的Django应用程序的开发变得非常容易。我将不得不尝试它,以确保它是否像霓虹灯一样好。 Postgres的创建与Vercel KV的创建仅相同,只需要一个名称和区域(新加坡可用,所以我选择了)。
我复制了它们为测试提供的模板,您可以在GitHub上获取模板源。我修改了其page.tsx
文件只是为了创建,插入和从数据库中选择一个值。
import { sql } from "@vercel/postgres";
export default async function Home() {
console.time("create");
await sql`CREATE TABLE IF NOT EXISTS PERSON (name varchar(255), age int)`;
console.timeEnd("insert");
console.time("create");
await sql`INSERT INTO PERSON (name, age) VALUES ('Akash', 21)`;
console.timeEnd("insert");
console.time("select");
const { rows } = await sql`SELECT * FROM PERSON`;
console.timeEnd("select");
return (
<div>
{rows.map((row) => (
<div key={row.age}>
{row.name} - {row.age}
</div>
))}
</div>
);
}
create: 474.285ms
insert: 102.999ms
select: 103.254ms
我已经测试了大约10次,我认为最接近这些值的时间平均。至少对我来说很快。 Vercel还具有一个网络接口来查看表并执行与霓虹灯相同的查询。
定价几乎与Vercel KV的价格相同。还包括与相同的限制。您可以查看定价here。
Vercel Blob
这是非常有用的东西。 Vercel Blob允许您通过唯一且难以指示的URL通过全局网络上传和服务文件。它基于Cloudflare R2,允许您存储大量非结构化数据(例如图像和PDF文件)在边缘上,换句话说,这是S3之类的存储存储桶的替代品,如果您的话,它可能会改变游戏规则应用程序确实上传。它仍然处于私有beta中,但是您可以注册等待列表以尝试。要注册到这个link。
他们说,用户可以上传任何大小的文件。但是对于私人Beta阶段,上传大小仅限于4 MB
,但很快它们将发布其全部潜力,并将用于公共Beta。
SDK对于开发人员使用与其他存储的使用非常简单。我无法访问它,所以我无法亲自测试它,但我会说这是另外两个。根据文档,给定的摘要为
import { put } from '@vercel/blob';
import { NextResponse } from 'next/server';
export default async function upload(request) {
const form = await request.formData();
const file = form.get('file') as File;
const blob = await put(file.name, file, { access: 'public' });
return NextResponse.json(blob);
}
定价可用。这对于寻找具有简单性但先进技术并有大量资金浪费的储存的公司将是有益的。
这值得么?
没有太大的惊喜,这是不值得的,因为它们的价格太高了。由于它是动词,他们一如既往的定价有点高,但是产品也有些惊人,并且具有良好的用户界面。为了表达它,它们是网络行业的苹果。但这不能证明价格合理,
-
vercel kV是1.5倍,不带更慷慨的自由层。
-
Vercel Postgres是霓虹灯缩放的价格2倍,而没有更慷慨的自由层。霓虹灯的自由层具有3GB的存储空间,而不是256MB的Vercel,其Pro计划中没有存储限制,而Vercel的512MB存储空间,与Vercel相比,读取和写入数据的限制无限制,与Vercel相比,计算时间没有限制。
-
Vercel Blob是Cloudflare R2的价格的2倍,而没有更慷慨的自由层。
价格可能以后变化。 Vercel的开发人员经验副总裁评论说,Reddit可能会随着Beta用户的反馈而变化,而Vercel Blob的定价尚未最终。
这对于不想仅仅用于数据库的其他应用程序的开发人员仍然有益,而是可以在一个地方找到所有的东西,从而更容易维护和使用。
结论
Vercel是毫无疑问地托管Web应用程序的惊人平台。而且我相信我肯定会使用Vercel Postgres进行将来的项目。您应该肯定地尝试,因为所有存储选项都可以用于业余爱好计划。 Vercel正在尝试新的Server Actions An alpha Next.js,构建在React Actions之上。它们启用服务器端数据突变,减少客户端JavaScript并逐步增强表单。对于Web开发人员来说,这将是一个很棒的功能。
最后感谢您耐心地阅读本文,请在LinkedIn上关注我,您可以在Akash R. Chandran | LinkedIn找到链接。