Deno Deploy Beta 1
Deno Deploy 是一个多租户 JavaScript 引擎,在全球 25 个数据中心运行。该服务将云基础设施与 V8 虚拟机深度集成,允许用户快速编写分布式 HTTPS 服务器脚本。这种新颖的“无服务器”系统从头开始设计,专为现代 JavaScript 编程而生。
今天我们发布 Deploy Beta 1。这是未来几个月内将发布的一系列 Beta 版本中的第一个。每个版本都将增加功能并改进编程模型。这些版本的最终目标是在 2021 年第四季度发布正式版。
在过去的八个月中,我们一直在悄悄地设计这项托管服务,以补充开源 Deno CLI 的工作流程。Deploy 并非运行在 AWS Lambda 上,也不使用 Cloudflare Workers;这是一个具有独特设计的新系统。我们鼓励大家忽略最初粗糙的 UI,探索这个新的 JavaScript 运行时。
Deploy 的目标是成为托管现代服务器端 JavaScript 的最佳场所。
Hello World
在可能的情况下,Deno 提供浏览器兼容的 JavaScript API。以下 Hello World 示例对于浏览器程序员来说不会陌生
addEventListener("fetch", (event) => {
event.respondWith(new Response("Hello world"));
});
只需点击几下,Deploy 即可配置一个 $NAME.deno.dev
子域名,并在全球范围内托管此服务器。客户端将通过 IPv4 或 IPv6 上的 Anycast 路由到我们最近的数据中心。
有关更多详细信息,请参阅文档。
快速部署
虽然可以通过 Web UI 进行一次性代码更新,但我们预计大多数用户会连接一个 Github 仓库,并通过 Deploy Github App 更新代码。
每次推送到仓库都会部署到一个即时配置的子域名。在大多数情况下,部署在不到一秒的时间内完成。最重要的是,我们从头开始设计该系统,以最大限度地减少冷启动时间。
我们相信 Deploy 是目前最快的无服务器系统。我们希望在未来的版本中通过性能基准来证实这一大胆的说法。
TypeScript、JSX、ES 模块、HTTPS 导入
Deploy 开箱即用地支持 TypeScript、JSX、ES 模块和远程 HTTPS 导入。无需配置,也无需构建步骤。Deploy 原生理解这些 JavaScript 的常见扩展,就像 Deno CLI 一样。
import { h } from "https://x.lcas.dev/[email protected]/mod.js";
import { renderToString } from "https://x.lcas.dev/[email protected]/ssr.js";
function App() {
return (
<html>
<body>
<h1>Hello world</h1>
</body>
</html>
);
}
addEventListener("fetch", (event) => {
const html = renderToString(<App />);
event.respondWith(
new Response(html, {
headers: { "content-type": "text/html; charset=utf-8" },
}),
);
});
BroadcastChannel
BroadcastChannel API 是一种浏览器 API,用于选项卡之间的实时通信。事实证明,该 API 也非常适合服务器端 JavaScript
const bc = new BroadcastChannel("chat");
bc.postMessage("This is a test message.");
在 Deno Deploy 中,BroadcastChannel 是一种在不同数据中心区域的边缘工作器之间进行通信的方式。它与 ZeroMQ、RabbitMQ 和 Redis 等软件的解决方案空间重叠。
BroadcastChannel 在聊天和游戏等实时应用程序中非常有用。在这个示例中,BroadcastChannel 用于构建一个简单的聊天系统。你可以在 https://chat.denoland.org 上试用。
有关更多详细信息,请参阅文档。
自定义证书
Deploy 仅处理加密流量。默认情况下,所有部署都会获得一个 deno.dev 子域名。也可以将其他域名指向 Deno Deploy 的 Anycast IP 地址;Deploy 将使用 Let’s Encrypt 自动配置 TLS 证书。对于可能想要使用通配符证书的更高级用户,Deploy 允许自定义证书

Fresh,Deno 的 JIT SSR
Fresh 是一个实验性的 Web 框架,可让你快速构建高度动态的项目,而无需构建步骤。Fresh 以往所未有的方式拥抱同构 JavaScript。编写一个 JSX 组件,使其在边缘环境即时渲染,然后使用客户端 JS 增强其交互性。
Fresh 没有构建步骤 - 你编写代码,将其部署到 Deno Deploy,然后一切都由框架处理。
- 无需构建步骤
- 无需配置
- 边缘环境的 JIT 渲染
- 体积小巧(运行时 JS 示例为 0-3KB)
- 可选的客户端 hydration
- 开箱即用的 TypeScript
- 类似 Next.js 的文件系统路由
在此处阅读有关 Fresh 和其他新兴 Deploy 框架的更多信息。
更多内容即将推出
Deno Deploy 在 Beta 1 期间对所有用户免费。如果您尝试使用,请在我们的反馈仓库中提交 issue,告诉我们您的想法。
我们计划在未来几个月内发布一系列 Deno Deploy 的 Beta 版本,随着我们添加更多功能。我们预计 Deno Deploy 将在 2021 年底进入正式版。