跳至主要内容
Deno 2 终于来了 🎉️
了解更多
Introducing a new way to leverage Deno Deploy's multi-tenant v8 isolate cloud to run your users code securely.

Deno 子托管:运行不受信任的多租户代码最简单、最安全的方式

今天,我们很高兴推出Deno 子托管的自助服务版本——这是一个平台,使公司能够安全地运行用户编写的、不受信任的 JavaScript 代码。走到这一步是一个漫长的旅程,它始于近两年前与Netlify 合作,为其边缘函数产品提供支持。从那时起,我们的子托管基础设施已经发展到每月处理数百亿次请求。通过这次新发布,任何人都可以通过几行代码为其产品添加闪电般快速的托管功能。

为什么选择子托管?

自从 2021 年推出Deno Deploy(我们的云托管解决方案)以来,我们惊讶地发现,有许多公司联系我们,提出了类似以下的要求

Deno 团队,我们能否获得访问您用于运行托管产品的 API 的权限?我们希望让我们的用户能够在我们的应用程序中编写一些自定义逻辑,但在我们的公有云中设置此功能会带来一些安全问题,还会带来很多额外的工作。特别是如果我们希望它快速运行并以无服务器方式运行。理想情况下,我们会使用 Deno 的运行时来进行安全沙箱,并将其自动部署到 Deno 的云基础设施中——就像 Deno 为 Netlify 边缘函数提供支持的方式一样。

在接到数十个类似的请求后,我们意识到,子托管有机会解决普遍存在的需求。它使公司能够快速安全地运行用户编写的自定义代码,而无需专门组建和维护一个工程团队来完成这项工作。

为什么运行不受信任的代码?

如果你看一下大多数主要的 B2B SaaS 公司,你会发现,其中很大一部分公司已经为他们的用户提供了在他们的产品中编写一些自定义逻辑的功能。这样做有两个主要原因,这两个原因都为转化率和留存率带来了显著的好处

  1. 扩展产品功能和定制化。 例如,像 Airtable、Atlassian、Slack 和 Zoom 这样的公司都允许他们的用户通过代码创建自定义工作流、自动化和集成。这些公司没有试图单独满足来自主要客户的众多功能请求,而是赋予他们的客户能力,让他们为自己的需求创建完美的解决方案。

  2. 创建第三方应用程序市场。 例如,像 Shopify、HubSpot 和 Salesforce 这样的公司在构建自定义编码第三方应用程序市场方面非常成功。这个市场不仅无缝扩展了核心产品的功能,而且还加深了合作伙伴对生态系统的投资。

虽然这些功能在最大的 B2B SaaS 公司中更为常见,但它们的吸引力却要广泛得多。早期和中期初创公司越来越多地希望为他们的客户提供这些相同的工具,以此作为差异化和提供价值的一种方式,尤其是在开发人员是主要买家时。问题是,安全地运行不受信任的代码通常需要大量的投资,而对于资源有限的工程团队来说,这很难优先考虑。

常见的工程和业务障碍

在我们与从小型初创公司到大企业的公司进行的对话中,我们反复听到了一些主要挑战,这些挑战与运行不受信任的代码有关。这些挑战通常会导致项目被不断地推迟或阻塞,因为实施的全部成本被考虑在内。这些挑战包括

  1. 安全地运行代码:企业对在他们的基础设施上运行用户编写的代码持谨慎态度是可以理解的,因为他们希望防止授予用户对内部系统或数据的意外访问权限,或者担心该代码可能被恶意用于其他方式(例如发送垃圾邮件)。Deno 提供了全面的安全对策来解决这些问题。

  2. 维护用户体验:在为用户提供通过编码增强您的产品的能力时,至关重要的是,他们不必面对陡峭的学习曲线或不必要的障碍,例如编写大量样板代码。Deno 使用最广泛的编程语言,提供一个广泛的标准库,支持所有相关的现代 Web 标准,并且与 200 多万个 NPM 包兼容

  3. 基础设施管理和扩展:在公有云环境中监管运行用户创建的代码的基础设施会带来一些挑战。例如,为不同的客户使用相同的虚拟机或容器会难以正确隔离。为每个客户使用不同的虚拟机或容器会增加成本。Deno 子托管是为了解决这些问题而设计的,以及与升级和扩展相关的其他问题。

  4. 基于用量的客户计费:企业通常希望通过使用代码作为付费功能的一部分或根据用量向客户计费。但是,当在公有云提供商上托管时,很难将用量或成本归因于产生这些用量或成本的客户。在 Deno 子托管上,将成本归因于客户非常容易和直接。

查看 Deno 子托管

我们构建了Deno 子托管,它是一种简单的方法,可以提供运行不受信任的用户代码的所有好处,同时解决所有主要挑战。对于不熟悉 Deno Deploy 的用户,请查看我们的新子托管产品页面注册免费的子托管帐户(无需信用卡)。

如果你已经拥有 Deno Deploy 帐户,可以通过登录并创建一个新组织,然后在下一个屏幕中选择“子托管”来查看子托管。

Checking out Deno Subhosting