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.
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 codeEstado 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.
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.
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.
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.
glac cube logs notes -f
# one line a request; one that woke an instance says how long it tookLos productos que usa
- CuboCualquier imagen de contenedor como una app que duerme entre solicitudesLa app, con claves: una instancia por cada usuario, inquilino o agente.
- VolumenLos discos de Cubo, que sobreviven a su instanciaDiscos para lo que debe sobrevivir a la instancia de un usuario.
- SandboxUna computadora propia para cada agenteUn agente para cada usuario, controlado a través de la API.
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
- 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.