注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

概述

Beta

计算模块功能目前处于beta阶段,可能无法在所有注册中使用。如果您的注册中可用计算模块,请导航至计算模块应用程序以获取最新文档。

计算模块使您能够在Foundry中运行无服务器Docker镜像,并根据负载在前端应用程序(例如Workshop和Slate)中水平扩展或缩减它们。

何时使用计算模块

计算模块的一些常见应用案例包括:

  • 集成现有代码库: 如果您有关键业务代码,重写这些代码在Foundry中可能风险大或成本高,可以将代码容器化为Docker镜像,并作为计算模块运行。
  • 支持任何编程语言: 计算模块允许您运行任何可以容器化的代码,不受Foundry本身支持语言的限制。
  • 动态和预测性水平扩展: 如果您预计要处理不同数量的请求,计算模块可以通过根据当前和历史负载调整可用副本的数量来确保更高的可用性。
  • 外部和平台内连接: 计算模块使您能够编写自定义逻辑,利用Foundry产品,例如读取和写入数据或媒体集,或连接到外部系统(如Twilio)。

何时避免使用计算模块

不推荐使用计算模块的情况包括:

  • 动态垂直扩展: 如果您预计单个请求的大小会有显著变化,例如从1MB到100GB,并希望支持动态垂直扩展,计算模块可能在“开箱即用”时表现不佳,因为分配的资源量是静态且手动定义的。可以创建同一计算模块的不同配置层并在其之间多路复用,但该解决方案可能更复杂和繁琐。
  • 替换Foundry原生支持的现有功能: 理论上,计算模块可以被用于搭建任何所需功能。然而,由于其非常通用和强大,这可能会导致解决方案更加复杂。

架构

每个计算模块由若干副本组成。副本的数量会随请求量的变化而变化。

每个副本包含相同的一组一个或多个隔离容器。一个容器作为入口点,必须实现一个客户端,永久轮询要处理的事件。其他容器可以包含任何内容。

默认情况下,设置多容器计算模块的限制很少。建议的方法之一是使用标准网络协议进行通信;另一种建议是使用共享卷挂载。同一副本中的容器可以通过这些方法(及更多)进行通信,但容器无法跨副本通信,且不应依赖于它们可能累积的任何状态。

要开始,请参阅在Foundry中搭建计算模块在本地机器上搭建计算模块的指南。