Saltar al contenido

SolucionesBackends por usuario

Una instancia para cada usuario

Una clave en la solicitud lleva a cada usuario, inquilino o agente a su propia instancia, que guarda su memoria y su disco y se duerme entre solicitudes.

Más sobre las instancias por clave

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

Estado por usuario, pero pagado cada hora

Un proceso por usuario es el diseño más sencillo, y si se mantiene en marcha se paga mientras el usuario no está. Aquí, la instancia de cada clave se duerme entre solicitudes y solo paga por lo que guarda.

al mes solo por la memoria de 10 000 instancias de 256 MiB siempre en marcha, a precios de lista1
$14,600.00
por las mismas instancias dormidas, cada una con 100 MB guardados1
$20.00

Cómo enruta una clave

Asigna a keys.from una cabecera o un segmento de la ruta. La primera solicitud de una clave nueva crea su instancia; todas las siguientes llegan a la misma instancia, con su memoria y su disco. Las solicitudes sin clave comparten las instancias de la app.

Una app y sus instancias: con claves, cada instancia es de una clave, despierta para sus solicitudes y dormida después.

Lo que obtiene la instancia de cada usuario

  • Elige la forma: instancias compartidas, o una por cada clave de usuario.

  • Una clave de la solicitud, en una cabecera o en la ruta; la primera crea su instancia.

  • Estado por usuario: memoria que se guarda al dormir, su propio disco y un volumen.

  • Lo que cuesta: dormida, nada de CPU, solo lo que guarda.

  • Una vida que tú eliges: se elimina tras dormir ese tiempo y su clave la vuelve a crear.

  • Uso por clave, a partir de la clave que cada instancia lleva como etiqueta.

Lee la documentación

Vistas previas ilustrativas

Medido, no prometido

Medianas en bare metal sin nada más en ejecución: el mejor caso, y lo decimos. La instancia de una clave es del mismo tipo que un sandbox, donde se midieron estas cifras. Cómo medimos

en despertar una instancia dormida2
3.5 ms
desde que se envía la llamada que lo despertó hasta que se responde2
6.7 ms
en dormirlo, con su memoria y sus procesos2
2.3 ms

Compruébalo con tus propias claves cuando abra el servicio: la línea del registro de una solicitud que despertó una instancia indica cuánto tardó en despertar.

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

Los productos que usa

Un mes, calculado

Diez mil usuarios, cada uno con su propia instancia, a precios de lista. Calcula el tuyo

El uso

  • 10 000 usuarios, cada uno con su propia instancia, con 256 MiB en uso.
  • Cada usuario hace 300 solicitudes al día durante 30 días, con 20 ms de CPU y 5 KB de respuesta cada una, en momentos aleatorios.
  • La app está configurada para dormirse del todo un segundo después de que una instancia se detenga (scale.suspend_after_ms 1000), el ajuste para un tráfico tan escaso: las solicitudes de un usuario llegan con minutos de diferencia, y una instancia que se queda en pausa en memoria entre una y otra se factura por esa memoria todo ese tiempo. Así, cada instancia está despierta mientras responde y 1 s más, en pausa 1 s más, y después dormida con su memoria guardada, unos 100 MB.
  • Lo que cuesta: si una solicitud encuentra dormida a su instancia, la respuesta tarda 6.7 ms; si la encuentra en pausa, entre 0.43 y 1.72 ms. Y cada vez que se duerme y se despierta gasta 25.6 ms de CPU, que se cuentan en la CPU del mes.

Un mes a precios de lista

$192.40

  • CPU4.3 mil millones × $0.01 por millón de ms de CPU$42.95
  • Memoria12 581 GiB-h × $0.008$100.65
  • Solicitudes90 millones × $0.30 / M$27.00
  • Tráfico de salida450 GB × $0.004$1.80
  • Guardado en reposo1 000 GB-meses × $0.02$20.00

En el plan de pago, este mes cuesta $189.60: la cuota de $5, y $184.60 por encima de lo que cubren sus cantidades incluidas, con cargo a tu saldo a los mismos precios.

Dale a cada usuario la suya

Una clave y luego una app con keys.from, desplegada con una sola llamada.

CuboEl SDK de Python