Problemet med de 30 faner
Du vil starte en VM op. Vælg en størrelse, tilknyt en disk, giv den en offentlig IP, færdig. Det burde være én skærm og halvfems sekunder.
I stedet åbner du en fane til compute-tjenesten. Så en fane til VPC’en, fordi VM’en skal bruge et subnet. Så en fane til security group’en, fordi subnettet skal bruge regler. Så en fane til gateway’en, fordi reglerne skal bruge en rute ud. Så en fane til IAM-policyen, fordi din rolle endnu ikke må tilknytte en disk. Så en fane til dokumentationen for at huske, hvad et “availability domain” er for noget i denne uge. Når maskinen omsider booter, har du tredive faner åbne og en halvfærdig certificering, du aldrig bad om.
Sådan blev labyrinten bygget
Ingen har designet det her. Det er groet til.
En cloud lancerer én tjeneste. Den virker. Så lancerer den endnu en, og endnu en, og efter et årti er der to hundrede af dem, hver med sin egen konsol, sine egne ord, sin egen prisside. Intet blev nogensinde fjernet, for et eller andet sted er der nogen, der afhænger af det. Så overfladearealet vokser bare.
Ordene formerer sig med det. Den samme idé — “et netværk, dine maskiner lever i” — er en VPC her, et virtuelt netværk der og en tenancy et tredje sted. Egress måles på seks forskellige måder afhængigt af, hvilken grænse pakken krydser. Et “gratis” API-kald er gratis, lige indtil du laver ti millioner af dem. Du holder op med at ræsonnere om dit eget system og begynder at ræsonnere om udbyderens taksonomi, hvilket er et andet og langt værre job.
Og prissætningen følger samme logik. Reserved instances. Spot-bud. Committed-use-rabatter. Savings plans, der overlapper med dine reserved instances. Du får brug for et regneark, og så får du brug for en person, hvis job er regnearket.
Prisen er ikke regningen
Den åbenlyse pris er penge. Den virkelige pris er alt det, der omgiver dem.
- Onboarding. En ny udvikler kan ikke levere noget i dagevis, fordi det er selve platformen, vedkommende lærer — ikke jeres produkt.
- Fejl. Tredive faner er tredive chancer for at lade en default stå forkert. De fleste cloud-brud er ikke smarte angreb — de er en
0.0.0.0/0, som nogen lod stå på en security group klokken 18 en fredag. - Sikkerhed ved udmattelse. Når korrekt opsætning kræver fire timers dokumentation, holder folk op med at læse dokumentationen. Kompleksitet er ikke neutral. Den producerer aktivt fejlkonfiguration.
Hver skærm, du er nødt til at besøge, er et sted, det kan gå galt. Vildvoksten er ikke en feature, du voksede ind i. Det er en skat, du betaler for evigt.
Hvad vi gjorde i stedet
Kaligon leverer et bevidst lille sæt primitiver, og der stoppede vi.
Compute. Block storage og S3-kompatibel object storage. Netværk — VPC’er, subnets, firewalls, floating IP’er. DNS. Det er hele overfladen. Den dækker langt størstedelen af det, teams reelt kører, og den kan være i hovedet på én gang.
Defaults er fornuftige, så du ikke selv skal samle den sikre vej af løsdele. En ny VM lander i et fungerende netværk med en firewall, der ikke står pivåben. Ordene betyder det, de siger — en firewall er en firewall, et volume er et volume. Snapshots, backups, API-kald, DNS-opslag, paneladgang og supportsager er ikke linjeposter; de er bare inkluderet, så der er ingenting at modellere.
Prissætningen er én flad pris pr. ressource. Ingen reserved tiers, ingen spot-bud, ingen savings-plan-algebra. Afregning pr. sekund med et månedligt loft, så en boks, der kører længe, lander på en fast pris, du kan sige højt. Der er intet regneark, for der er ingenting at optimere.
Resultatet er kedeligt på den bedst tænkelige måde. Du åbner panelet, du opretter tingen, du lukker fanen. Én fane. Se det på prissiden — konfiguratoren er hele den mentale model, på én skærm.
En cloud bør forsvinde ud i baggrunden, mens du bygger. Vores prøver virkelig ihærdigt på at være til at glemme.