Naar de inhoud

OplossingenBackends per gebruiker

Een instantie voor elke gebruiker

Een sleutel in het verzoek stuurt elke gebruiker, tenant of agent naar een eigen instantie, die haar geheugen en schijf behoudt en tussen verzoeken slaapt.

Lees meer over instanties per sleutel

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

Toestand per gebruiker, betalen per uur

Een proces per gebruiker is het eenvoudigste ontwerp, en als het blijft draaien, betaal je ervoor terwijl de gebruiker weg is. Hier slaapt de instantie van elke sleutel tussen verzoeken en kost ze alleen wat ze bewaart.

per maand alleen voor het geheugen van 10 000 instanties van 256 MiB die blijven draaien, tegen de lijstprijzen1
$14,600.00
voor dezelfde instanties in slaap, die elk 100 MB bewaren1
$20.00

Hoe routering per sleutel werkt

Zet keys.from op een header of een segment van het pad. Het eerste verzoek met een nieuwe sleutel maakt de instantie aan; elk later verzoek bereikt dezelfde instantie, met haar geheugen en schijf. Verzoeken zonder sleutel delen de instanties van de app.

Een app en zijn instanties: met sleutels hoort elke instantie bij één sleutel, wakker voor de verzoeken daarvan en daarna in slaap.

Wat de instantie van elke gebruiker krijgt

  • Kies de opzet: gedeelde instanties, of één per sleutel van een gebruiker.

  • Een sleutel uit het verzoek, in een header of het pad; het eerste verzoek maakt de instantie aan.

  • Toestand per gebruiker: geheugen dat de slaap doorstaat, een eigen schijf, en een volume.

  • Wat het kost: in slaap geen CPU, alleen wat er bewaard wordt.

  • Een levensduur naar keuze: verwijderd na zo lang slapen, en via de sleutel opnieuw aangemaakt.

  • Verbruik per sleutel, op basis van de sleutel die elke instantie als label draagt.

Lees de docs

Illustratieve voorbeelden

Gemeten, niet beloofd

Medianen op bare metal terwijl er verder niets draait: het gunstigste geval, en dat zeggen we erbij. De instantie van een sleutel is van dezelfde soort als een sandbox, waarop deze metingen zijn gedaan. Hoe we meten

om een slapende instantie te wekken2
3.5 ms
voor de aanroep die hem wekte, van verzonden tot beantwoord2
6.7 ms
om hem in slaap te brengen, met zijn geheugen en processen2
2.3 ms

Kijk het zelf na bij je eigen sleutels zodra de dienst opengaat: de logregel van een verzoek dat een instantie wekte, zegt hoe lang het wekken duurde.

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

De producten die het gebruikt

Een maand, uitgerekend

Tienduizend gebruikers, elk met een eigen instantie, tegen de lijstprijzen. Bereken je eigen maand

Het gebruik

  • 10 000 gebruikers, elk met een eigen instantie, 256 MiB in gebruik.
  • Elke gebruiker doet 30 dagen lang 300 verzoeken per dag, elk met 20 ms CPU en een antwoord van 5 KB, op willekeurige momenten.
  • De app is zo ingesteld dat een instantie een seconde nadat ze stopt echt gaat slapen (scale.suspend_after_ms 1000), de instelling voor verkeer dat zo dun gezaaid is: de verzoeken van een gebruiker liggen minuten uit elkaar, en voor een instantie die daartussen gepauzeerd in het geheugen blijft, betaal je al die tijd dat geheugen. Elke instantie is dus wakker terwijl ze antwoordt en nog 1 seconde daarna, blijft dan nog 1 seconde gepauzeerd en slaapt daarna met haar geheugen opgeslagen, waarbij ze ongeveer 100 MB bewaart.
  • Wat dat kost: een verzoek dat zijn instantie slapend aantreft, krijgt antwoord in 6.7 ms, tegenover 0.43 tot 1.72 ms bij een gepauzeerde instantie; en elke keer slapen en wakker worden kost 25.6 ms CPU, die meetelt in de CPU van de maand.

Een maand tegen de lijstprijzen

$192.40

  • CPU4.3 miljard CPU-ms × $0.01 / M$42.95
  • Geheugen12 581 GiB-uur × $0.008$100.65
  • Verzoeken90 miljoen × $0.30 / M$27.00
  • Uitgaand verkeer450 GB × $0.004$1.80
  • In slaap bewaard1 000 GB-maanden × $0.02$20.00

Met Betaald kost deze maand $189.60: het abonnementsgeld van $5, en $184.60 boven wat de inbegrepen hoeveelheden dekken, uit je saldo tegen dezelfde prijzen.

Geef elke gebruiker een eigen instantie

Een sleutel, dan een app met keys.from, uitgerold met één aanroep.

KubusDe Python-SDK