Hopp til innhold

Sky

datakraft leid per time fra noen andre

Hva det er

Å leie datamaskiner du aldri kommer til å se, er den korteste ærlige beskrivelsen av skyen, i full form kalt skytjenester eller cloud computing: en leverandør eier byggene, strømmen og maskinvaren, og kunden slår servere, datalagring og nettverk av og på gjennom en webkonsoll eller et API og betaler for det som ble brukt. Hver arbeidslast «i skyen» kjører fortsatt på en fysisk maskin i et datasenter. Noen andre kjøpte den og leier ut skiver av den til mange kunder samtidig.

En presis definisjon kommer fra det amerikanske National Institute of Standards and Technology (NIST). Special Publication 800-145, skrevet av Peter Mell og Timothy Grance og publisert i september 2011, beskriver cloud computing som en modell for nettverkstilgang ved behov til en delt pool av konfigurerbare dataressurser som kan klargjøres og frigis med minimal administrasjon. Den nevner fem kjennetegn. Selvbetjening ved behov betyr en ny server uten å snakke med noen. Bred nettverkstilgang betyr at tjenesten nås over nettet fra vanlige enheter. Ressurspooling betyr at kundene deler leverandørens maskinvare og som regel velger et land eller et datasenter, aldri et rack. Rask elastisitet betyr at kapasiteten vokser og krymper med etterspørselen. Målt tjeneste betyr at bruken måles, og det er det som gjør en regning per time eller per gigabyte mulig.

En dedikert server som leies per år, endres gjennom en supportsak og faktureres til fast pris, består få av disse testene. Det er hosting, ofte et godt valg, men en annen kontrakt med en annen økonomi.

Det samme dokumentet deler skytjenester inn i tre modeller. Med infrastruktur som tjeneste (IaaS) leier kunden virtuelle maskiner, disker og nettverk og patcher selv operativsystemet på dem. Med plattform som tjeneste (PaaS) setter kunden kode i produksjon på leverandørens kjøremiljø. Med programvare som tjeneste (SaaS) bruker kunden en ferdig applikasjon, som e-post i nettleseren. I tillegg kommer fire leveransemodeller: offentlig, åpen for alle; privat, klargjort for én organisasjon og kanskje i dens egne lokaler; fellesskap, delt av organisasjoner med felles behov; og hybrid, to eller flere av disse bundet sammen så data og applikasjoner kan flyttes mellom dem. De best kjente offentlige skyene er store plattformer som AWS, Azure og Google Cloud, og ved siden av dem selger mindre leverandører enkle virtuelle maskiner til enklere priser.

Hvorfor det er viktig

Skyen gjør et innkjøp om til en løpende kostnad, og det er det meste av beslutningen på én linje. Å kjøpe servere betyr å betale på forhånd for kapasitet dimensjonert etter en gjetning om neste års travleste dag. Å leie betyr å betale hver måned for det som er slått på, med rett til å endre svaret neste uke. For et nytt produkt eller en sesongbedrift er den fleksibiliteten verdt et påslag. For en arbeidslast som har kjørt i samme størrelse i tre år, blir påslaget fakturert lenge etter at noen brukte fleksibiliteten.

Den andre beslutningen er hvor høyt opp i stacken du leier. En virtuell maskin ligger nær en server teamet allerede forstår, og den flyttes mellom leverandører med lite mer enn en kopi av disken. En administrert database, en serverløs funksjon eller et proprietært datavarehus tar arbeid fra teamet, og hver av dem er også en bit av applikasjonen skrevet mot ett selskaps grensesnitt. Den nyttige vanen er å vite hva det ville koste å forlate hver administrert tjeneste, og å godta den kostnaden med vilje i stedet for å oppdage den under en prisøkning.

Den tredje er ansvar. Å leie maskinvare overlater bygget, strømmen og hypervisoren til leverandøren. Hvem som kan logge inn, hvilke porter som er åpne, og om dataene har en kopi et annet sted, blir hos kunden. De store leverandørene publiserer hver sin modell for delt ansvar (shared responsibility model) som trekker denne linjen, og kontoene, konfigurasjonen og dataene ligger på kundens side i hver eneste versjon.

Slik ser det ut i praksis

For én internasjonal kunde handlet det om regningen. AWS-oppsettet deres var overdimensjonert og hadde samlet opp tjenester de ikke lenger brukte, så skyregningen hadde glidd helt ut av proporsjon med virksomheten. Arbeidet begynte med en kartlegging av hva som faktisk kjørte, kuttet de dupliserte og unødvendige tjenestene og dimensjonerte resten etter den reelle etterspørselen i stedet for anslag for verste fall. Deretter ble arbeidslastene flyttet bort fra AWS til en mer kostnadseffektiv hostingløsning, i etapper, så virksomheten fortsatte å gå gjennom hele flyttingen. Kostnadene falt omtrent ti ganger, uten tap av produktivitet.

Selskapets egen produksjonsvert ligger i den andre enden av skalaen. Den er en skyinstans med én kjerne, 512 MB minne og 10 GB disk, hvorav rundt 464 MB er brukbart, og den terminerer TLS for sju domener og kjører en git-forge, en onion-tjeneste for Tor, servere for Gemini og Gopher, krypterte sikkerhetskopier og utestenging av inntrengere. Spørsmålet om skyinstansen også kunne bære onion-tjenesten, fikk svar fra en dags målte stikkprøver: det tilgjengelige minnet holdt seg hele tiden over rundt 310 MB av de 464, swap-bruken var 2,6 %, og 99,7 % av prosessortiden sto ubrukt. Maskinen koster mindre per måned enn en lunsj, og e-post holdes med vilje borte fra den, fordi en e-postserver trenger en margin denne maskinen allerede har brukt opp.

Å leie betyr også å stole på leverandørens kopi til noe som er sjekket, erstatter den tilliten. Alt selskapet har, lå på én skyinstans, og leverandørens øyeblikksbilde var hele gjenopprettingsberedskapen: i samme konto som maskinen, kryptert av ingen her og aldri brukt til en eneste gjenoppretting. Kopien som teller nå, ligger hos en annen leverandør enn den som kjører maskinen: en systemd-timer sender et kryptert, deduplisert restic-øyeblikksbilde dit over SFTP, rydder etter oppbevaringsregelen og sjekker integriteten, og en dødmannsknapp pinges bare når alt lykkes. Det som før var tillit, er nå en sjekk: én gang i måneden hentes en kjent fil tilbake fra repoet og sammenlignes, så det som testes, er en gjenoppretting.

Hvor det går galt

Skyer svikter sjeldnere enn vanene rundt dem, og de vanlige problemene er langsomme, stille og dyre.

Regningen vokser mens produktet holder samme størrelse. Ressurser hoper seg opp: en testserver som fortsatt kjører etter testen, en disk som faktureres etter at maskinen er slettet, øyeblikksbilder som beholdes for alltid, en lastbalanserer foran ingenting. Å flytte data ut av en leverandør, eller mellom regionene dens, blir også målt, så logger og sikkerhetskopier som sendes over de grensene, koster for hver kopi. Merk hver ressurs med en eier og et formål, sett opp et budsjettvarsel, og les regningen linje for linje én gang i måneden.

Kapasiteten er dimensjonert for en dag som aldri kommer. Maskinstørrelser velges én gang, ved oppstart, ut fra en gjetning om verste fall, og gjetningen lever lenger enn folkene som gjorde den. Mål hva en arbeidslast bruker gjennom en vanlig uke og en travel uke, dimensjoner etter det med en margin, og la autoskaleringen krympe like villig som den vokser.

Leverandørens øyeblikksbilde behandles som sikkerhetskopien. Det ligger i samme konto, bak de samme påloggingsdataene, hos samme selskap som maskinen det beskytter, så en stjålet innlogging eller en suspendert konto tar serveren og dens eneste kopi på én gang. En ekte sikkerhetskopi ligger bak andre påloggingsdata, helst hos en annen leverandør, kryptert med en nøkkel den leverandøren aldri har, og den gjenopprettes etter en fast plan.

Sikkerheten blir stående der standardinnstillingene lot den være. De vanlige åpningene er en brannmurregel som slipper inn SSH fra hele internett, en langlivet tilgangsnøkkel i en utviklers dotfiler, en administratorkonto som brukes til hverdagsarbeid, og en lagringsbøtte som ble gjort offentlig for én demo. Gi den minste tilgangen som gjør jobben, foretrekk kortlivede påloggingsdata, krev en andre faktor ved hver menneskelig innlogging, og hold konfigurasjonen i kode, så en endring i den blir gjennomgått.

Å flytte ut viser seg å kreve en omskriving. Hver proprietær kø, hvert kjøremiljø for funksjoner og hver databasedialekt binder koden litt fastere til én leverandør. Hold kjernen på åpne grensesnitt der det er billig, som PostgreSQL, containere og vanlige virtuelle maskiner, og skriv ned hva det koster å forlate hver proprietær tjeneste når den tas i bruk.

Les mer

Ordliste