Vai al contenuto

SoluzioniBackend per utente

Un’istanza per ogni utente

Una chiave nella richiesta indirizza ogni utente, tenant o agente alla sua istanza, che conserva memoria e disco e dorme tra una richiesta e l’altra.

Scopri le istanze per chiave

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

Stato per utente, pagato ora dopo ora

Un processo per ogni utente è il design più semplice, e se resta in esecuzione si paga anche mentre l’utente è assente. Qui l’istanza di ogni chiave dorme tra una richiesta e l’altra e paga solo ciò che conserva.

al mese per la sola memoria di 10 000 istanze da 256 MiB tenute in esecuzione, a prezzo di listino1
$14,600.00
per le stesse istanze addormentate, ciascuna con 100 MB conservati1
$20.00

Come instrada una chiave

Imposta keys.from su un’intestazione o su un segmento del percorso. La prima richiesta di una nuova chiave crea la sua istanza; ogni richiesta successiva raggiunge la stessa istanza, con la sua memoria e il suo disco. Le richieste senza chiave condividono le istanze dell’app.

Un’app e le sue istanze: con le chiavi, ogni istanza appartiene a una chiave, sveglia per le sue richieste e addormentata dopo.

Cosa ottiene l’istanza di ogni utente

  • Scegli la struttura: istanze condivise, o una per la chiave di ogni utente.

  • Una chiave dalla richiesta, in un’intestazione o nel percorso; la prima crea la sua istanza.

  • Stato per utente: memoria conservata durante il sonno, un disco suo e un volume.

  • Quanto costa: mentre dorme, niente CPU, solo ciò che conserva.

  • Una durata che scegli tu: cancellata dopo aver dormito per quel tempo, ricreata dalla sua chiave.

  • Utilizzo per chiave, dalla chiave che ogni istanza porta come etichetta.

Leggi la documentazione

Anteprime illustrative

Misurato, non promesso

Mediane su bare metal con nient’altro in esecuzione: il caso più favorevole, e lo diciamo. L’istanza di una chiave è dello stesso tipo di una sandbox, dove sono state misurate. Come misuriamo

per svegliare un’istanza dormiente2
3.5 ms
per la chiamata che l’ha svegliata, dall’invio alla risposta2
6.7 ms
per addormentarla, con la sua memoria e i suoi processi2
2.3 ms

Lo vedrai per le tue chiavi quando il servizio aprirà: la riga di log di una richiesta che ha svegliato un’istanza dice quanto è durato il risveglio.

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

I prodotti che usa

Un mese, fatti i conti

Diecimila utenti, ciascuno con la propria istanza, a prezzo di listino. Fai la tua stima

Lo scenario

  • 10 000 utenti, ciascuno con la propria istanza, 256 MiB in uso.
  • Ogni utente fa 300 richieste al giorno per 30 giorni, ciascuna da 20 ms di CPU e 5 KB di risposta, in momenti casuali.
  • L’app è impostata per addormentarsi davvero un secondo dopo che un’istanza si è fermata (scale.suspend_after_ms 1000), l’impostazione giusta per un traffico così rado: le richieste di un utente arrivano a minuti di distanza, e un’istanza tenuta in pausa in memoria tra l’una e l’altra viene fatturata per quella memoria per tutto il tempo. Così ognuna resta sveglia mentre risponde e per 1 s dopo, rimane in pausa ancora 1 s, poi si addormenta con la memoria salvata e conserva circa 100 MB.
  • Il prezzo di questa scelta: una richiesta che trova la sua istanza addormentata riceve risposta in 6.7 ms, mentre se la trova in pausa la riceve in un tempo tra 0.43 e 1.72 ms; e ogni sonno con il relativo risveglio richiede 25.6 ms di CPU, conteggiati nella CPU del mese.

Un mese a prezzo di listino

$192.40

  • CPU4.3 miliardi di CPU-ms × $0.01 / M$42.95
  • Memoria12 581 GiB-h × $0.008$100.65
  • Richieste90 milioni × $0.30 / M$27.00
  • Traffico in uscita450 GB × $0.004$1.80
  • Conservato durante il sonno1 000 GB-mese × $0.02$20.00

Con il piano a pagamento questo mese costa $189.60: il canone di $5 e $184.60 oltre ciò che coprono le quantità incluse, pagati dal tuo saldo agli stessi prezzi.

Dai a ogni utente la sua

Una chiave, poi un’app con keys.from, con il deploy in una sola chiamata.

CuboL’SDK Python