BloggGoogle Cloud Platform

Hvorfor kjøre nettsiden i skyen?

Bodybuilder som løfter små vekter inni en datamaskin, versus fire normale menn som løfter passende vekter i en sky.
Temaer i dette innlegget: Google Cloud, Google Cloud Hosting, Google Compute Engine, Google Kubernetes Engine

I artikkelen «Hva betyr det å ha database i skyen?» så vi på de største tekniske forskjellene mellom å kjøre en nettside på en vanlig datamaskin og å kjøre den i skyen.

Et av de viktigste poengene var at man i skyen har tilgang på forskjellige tjenester og systemer som kan frigjøre teknisk ansvarlige fra manuelt arbeid. I stedet for å installere databaseprogramvare på en datamaskin, konfigurere den en god del (tenk sikkerhet, stabilitet, ytelse), og så sørge for at den holder seg i live, så kunne man altså benytte en databasetjeneste fra skyen og dermed slippe unna disse vanlige og tidkrevende oppgavene man forbinder med oppsett av database. Vi så også på hva det ville si å benytte skyløsninger for lagring og servering av mediefiler.

Når du tar steget over i skyen med nettsiden er det ikke bare databasen og mediefilene som blir håndtert bedre – også selve nettsiden får fordeler. Vi skal i denne artikkelen se på hvordan og hvorfor skyløsninger håndterer både høyere og lavere trafikk bedre, som er et stort salgspunkt for skyløsninger. Som i den forrige artikkelen vil jeg prøve å gjøre det lesbart for deg som ønsker et glimt inn i vår verden, samtidig som jeg vil prøve å flette inn litt tekniske detaljer for de som liker sånt.

Bedre utnyttelse av ressurser

For at en nettside skal kunne eksistere må det finnes en datamaskin den kan kjøre på. Man trenger CPU og RAM, henholdsvis for å gjøre selve «utregningene» som kreves for at det dukker opp en nettside i nettleseren din og for å ha en notatblokk mens disse utregningene foregår. Computer Processing Unit (CPU) og Random Access Memory (RAM) kan også kalles prosessorkraft og minne. Så, med det ute av veien: hva forandrer seg i skyen?

Dette avsnittet kunne kunne også vært kalt «bedre utnyttelse av penga mine», for det handler like mye om det.

Minne og prosessorkraft koster penger. Kan vi ikke bare bruke akkurat så mye som vi trenger?

Absolutt. Men vi har to utfordringer:

  1. Hvor mye trenger vi?
  2. Hva gjør vi når vi trenger mer eller mindre?

Søker du litt rundt på nettet etter hosting-løsninger vil du fort finne ut at prismodellene ofte er basert på hvor mye futt (les: prosessorkraft og minne) nettsiden din trenger. En nettside som YouTube krever mer av datamaskinen enn en blogg, så det gir mening at man ikke kan gå til en leverandør og kjøpe en datamaskin som kan håndtere tusen brukere i minuttet for en fast månedlig pris. Så for å svare på det første spørsmålet: vi må vite hvor mye kraft nettsiden trenger for å vises i en nettleser, i tillegg til å vite hvor mange brukere som vil bruke nettsiden til enhver tid.. Da brukerne selvsagt ikke avtaler seg imellom når de skal besøke nettsiden, men heller sporadisk velter inn i puljer samtidig er dette vanskelig å estimere.

Men la oss si at vi stikker en kvalifisert finger i været og begynner med en stykk CPU og en bolk med minne – det er tross alt ganske vanlig for nye nettsider hvor man ikke vet så mye om ressurskrav. Når vi er oppe og går med nettsiden, så kan vi se hvordan vi ligger an med ressurser. I starten bruker vi nesten ingen ressurser fordi vi ikke har noe særlig trafikk. Etter en uke bruker vi nesten alt, og nettsiden har begynt å laste litt saktere. Det ser ut til at vi trenger flere ressurser, så hva nå?

Har man ikke nok kraft (CPU og RAM) må man legge til litt hvis man ikke vil at nettsiden skal gå tregt. Er det ikke mer å ta av måtte man før kjøre opp nettsiden på en ny maskin. Enten har den nye maskinen mye mer ressurser sånn at man kan skru av den gamle, eller så kjører man begge to samtidig. Hadde du ikke planlagt for at nettsiden skulle kunne kjøres to steder samtidig kan det hende du plutselig har en logistikkutfordring. Denne prosessen er i alle fall tidkrevende og ikke akkurat idiotsikker, så det involverer litt koordinering og kanskje en sen kveld for en heldig utvalgt slik at nettsiden ikke skal kunne bli utilgjengelig midt på dagen.

Men la oss si at det gikk bra å «skalere opp», som vi kaller det når vi øker ressursene. Hvis det økte behovet var kortvarig og du nå kun bruker halvparten av ressursene, så betaler du mer enn du trenger. Du kan skalere ned igjen. For eksempel skrur du av den ekstra versjonen du la til i stad, eller du flytter nettsiden over på en maskin med mindre ressurser. Det blir like mye jobb denne gangen. Og om ikke den tekniske biten var krevende nok, så var du kanskje nødt til å binde deg til en måned eller mer da du kjøpte mer ressurser hos leverandøren din.

For å gjøre en lang historie litt lenger så er det altså mye arbeid involvert i å prøve å passe på at en nettside har mye nok og lite nok ressurser. Hvis du syns det ble styrete så anbefaler jeg å lese videre, for nå skal vi se på hvordan vi løser dette i skyen!

Automatisk skalering i skyen

I skyen er det tre momenter som endrer bildet for nettsiden:

  1. Du kan be om mer og mindre ressurser uten å “flytte” nettsiden,
  2. du betaler for akkurat det du bruker,
  3. og man har systemer for å hjelpe til med skalering

La oss se på hva disse tre tingene betyr oss.

Trenger du mer kraft er det som regel enkelt å justere det. Tjenester som Google App Engine og Google Kubernetes Engine har kontrollpaneler hvor man kan trykke på noen knapper for å si at man vil ha mer eller mindre CPU og RAM. Det finnes unntak, men i utgangspunktet skal opp- og nedskalering kunne skje uten nedetid.

Når du ber om litt mer, så betaler du litt mer, og når du ber om litt mindre, så betaler du litt mindre. Det er ingen binding, og du kan justere opp og ned som du vil. Har du brukt 1 CPU i 100 sekunder, og så 2 CPUer i 200 sekunder, så betaler du for 300 sekunder. Det betyr at hvis man er flink til å skalere ned så fort man ikke trenger så mye ressurser, så kan man spare en del penger.

I stedet for å følge med på hvor mye ressurser nettsiden bruker, så har vi heller verktøy som kan si i fra når nettsiden burde skaleres. Verktøyene kan for eksempel si i fra til en administrator ved å sende en mail eller en melding i en chatte-applikasjon. Men enda bedre: de kan be systemet skalere nettsiden automatisk. Google App Engine, som jeg nevnte over, er et system som kan passe på at riktig mengde ressurser er tilgjengelig, helt automatisk. Ikke for mye, og ikke for lite.

Det samme gjelder Google Kubernetes Engine og Google Compute Engine. Hva disse tjenestene heter er ikke så viktig for deg som ikke skal administrere dem, men det er veldig smart å vite at de finnes, og at de kan hjelpe deg både med å spare penger, og å imøtekomme økt trafikk uten at du må binde deg til en måned med for mye ressurser.

Nå kan vi prøve å svare på spørsmålene igjen:

  1. Hvor mye ressurser trenger vi?
  2. Hva gjør vi når vi trenger mer eller mindre?

Vi begynner med spørsmål nummer to. Svaret er selvfølgelig at vi skalerer. Gjerne automatisk. Og når vi kan det, så trenger vi egentlig ikke å svare på det første spørsmålet.

Det blir litt antiklimaktisk å snakke om ressursbruk i skyen, men det var også mye av premisset for skyløsninger fra starten: det skal ikke være spenning knyttet til ressursjusteringer i skyen, det er det mest naturlige du kan gjøre.

Helt til slutt vil jeg nevne litt om det økonomiske aspektet ved den prismodellen  man får hos alle store skyleverandører. Det er lett å holde oversikt over hvor mye penger man har brukt i Google Cloud Platform. Det kan være vanskeligere å estimere hvor mye man kommer til å bruke. Det er mulig det dukker opp en artikkel om dette på et tidspunkt, men om du bestiller et oppdrag gjennom The Cloud People så har vi konsulenter med erfaring som vil hjelpe med dette.

Denne nettsiden bruker Google Analytics for innsamling av informasjonskapsler. Dette sørger for full funksjonalitet, hjelper oss å tilpasse innholdet og eventuell reklame, og kan bli brukt i analyseformål. Du kan lese mer om vår personvernerklæring her.

OK!