跳到正文

解决方案用户专属后端

每个用户一个实例

凭请求中的键,把每个用户、租户或智能体路由到专属实例;实例保留自己的内存和磁盘,没有请求时休眠。

了解键控实例

Python
from glac import Glac

glac = Glac()
app = glac.cube.deploy(
    "ghcr.io/acme/notes:2", name="notes", port=8080,
    keys={"from": {"header": "X-User"},          # the key
          "delete_after_idle_ms": 30 * 86_400_000},
    scale={"suspend_after_ms": 1000})  # sparse traffic: asleep a second after
# a request with X-User: ada reaches ada's own instance
ada = app.instance("ada")         # or make or wake it from code

每个用户一份状态,每小时都要付钱

每个用户一个进程,是最简单的设计;可一直开着的话,用户不在时也得付钱。在这里,每个键对应的实例没有请求时就休眠,只需为保存的内容付费。

10,000 个 256 MiB 的实例一直运行,一个月光内存的费用(按标价)1
$14,600.00
同样这些实例休眠、每个保存 100 MB 的费用1
$20.00

键如何路由

把 keys.from 设为某个请求头或路径中的某一段。一个新键的第一个请求会创建它的实例;之后的每个请求都到达同一个实例,内存和磁盘都在。没有键的请求共享应用的实例。

一个应用和它的实例:启用键之后,每个实例属于一个键,为该键的请求运行,请求结束后休眠。

每个用户的实例能得到什么

  • 形态由你选:共享实例,或按用户的键一人一个。

  • 键取自请求,在请求头或路径里;第一个请求创建它的实例。

  • 每个用户一份状态:内存跨休眠保留,有自己的磁盘,还能挂存储卷。

  • 费用:休眠时不用 CPU,只为保存的内容付费。

  • 生命周期由你定:休眠满设定时长后删除,之后由它的键再次创建。

  • 按键统计用量:每个实例都把自己的键作为标签带着。

查看文档

图片仅作示意

实测,而非承诺

在没有其他负载的裸金属上测得的中位数:这是最好情况,我们如实说明。键对应的实例和沙箱是同一类实例,这些数字就是在沙箱上测得的。 我们如何测量

唤醒休眠的实例2
3.5 毫秒
唤醒它的那次调用,从发出到收到响应2
6.7 毫秒
让它连同内存和进程一起进入休眠2
2.3 毫秒

服务开放后,你可以用自己的键验证:凡是唤醒了实例的请求,它在日志里的那一行都会写明唤醒用时。

终端
glac cube logs notes -f
# one line a request; one that woke an instance says how long it took

用到的产品

一个月的费用明细

一万个用户,每人一个自己的实例,按标价计算。 估算你的用量

使用场景

  • 10,000 个用户,每人一个自己的实例,使用 256 MiB 内存。
  • 每个用户每天发起 300 次请求,持续 30 天;每次请求 20 毫秒 CPU、响应 5 KB,时间随机。
  • 应用设置为实例停下 1 秒后就真正休眠 (scale.suspend_after_ms 1000),流量这么稀疏时就该这样设:一个用户的请求要隔几分钟才来,实例如果在间隔中一直暂停在内存里,这段时间的内存都要计费。所以每个实例在处理请求时及之后 1 秒内保持运行,再暂停 1 秒,然后保存好内存进入休眠,约占 100 MB。
  • 代价是:如果实例已经休眠,请求要 6.7 毫秒才得到响应,实例只是暂停的话则只需 0.43 到 1.72 毫秒;另外每次休眠和唤醒要用 25.6 毫秒 CPU,已计入当月的 CPU 用量。

按标价计的月度费用

$192.40

  • CPU42.95亿 CPU 毫秒 × $0.01 / 百万$42.95
  • 内存12,581 GiB·小时 × $0.008$100.65
  • 请求9000万 × $0.30 / 百万$27.00
  • 出站流量450 GB × $0.004$1.80
  • 休眠存储1,000 GB·月 × $0.02$20.00

付费版这个月共 $189.60:$5 月费,加上超出包含额度的 $184.60(按同样的价格从余额扣除)。

给每个用户一个专属实例

先拿到密钥,再用一次调用部署一个配置了 keys.from 的应用。

方块Python SDK 文档