Begrepet "cloud" (skyen) har blitt et av IT-verdenens mest brukte, men også mest misforståtte ord. Spør du fem forskjellige IT-ledere om hva begrepet cloud betyr for dem, vil du sannsynligvis få minst fire forskjellige svar. For noen betyr det bare å slippe å ha en server stående fysisk i sine lokaler, mens det for andre handler om en arkitektur og en fundamental måte å skrive og kjøre programvare på.
Denne forvirringen oppstår fordi "cloud" ikke er én enkelt teknologi, men en samling av ulike tjenestemodeller, arkitekturer og filosofier. For å forstå potensialet som ligger i moderne IT-løsninger, må vi rydde i begrepene og se mer nyansert på hva det betyr; cloud vs. cloud native.
Den tradisjonelle skyen: Infrastruktur og ferdige løsninger
Når vi snakker om tradisjonell cloud eller sky på norsk, handler det i stor grad om å flytte kjente IT-modeller ut av egne datasentre og over til store leverandører som Google Cloud, AWS eller Microsoft Azure. Her skiller vi gjerne mellom ulike tjenestenivåer:
IaaS (Infrastructure as a Service): Den mest rendyrkede formen er virtuelle maskiner (VM-er) som en tjeneste. I stedet for å kjøpe fysisk maskinvare, leier du en virtuell server i skyen. Du må fortsatt installere operativsystem, oppdatere programvare og drifte serveren selv, men du slipper å tenke på strøm, kjøling og fysiske harddisker.
SaaS (Software as a Service): I den andre enden av skalaen finner vi ferdig programvare levert over internett (som Microsoft 365, Salesforce eller Slack). Her drifter leverandøren alt, og du betaler kun for tilgang via en nettleser eller app.
Hvorfor flyttet alle til skyen?
Uansett om man velger IaaS eller SaaS, byr den tradisjonelle skyen på fire massive fordeler sammenlignet med gamle fysiske servere (on-premise):
Skalerbarhet: Trenger du mer lagringsplass eller kraft i morgen? Du kan oppgradere kapasiteten med noen få klikk i stedet for å vente uker på at ny maskinvare skal leveres og monteres.
Elastisitet: Dette tar skalerbarheten et skritt videre. Det betyr at systemet automatisk kan krympe eller vokse basert på trafikk. Har du en nettbutikk med ekstrem pågang under Black Friday, utvider skyen seg automatisk for å ta unna trafikken, og krymper igjen når kundene har lagt seg. Du betaler kun for det du faktisk bruker.
Fleksibilitet: Utviklere kan teste ut nye ideer, starte opp testmiljøer på minutter, og stenge dem ned igjen når de er ferdige. Det gir en enorm innovasjonshastighet.
Sikkerhet og Compliance: De store skyoperatørene investerer milliarder i sikkerhet. Ved å bruke deres infrastruktur får bedrifter automatisk tilgang til innebygd kryptering, avansert DDoS-beskyttelse og sertifiseringer (som ISO og GDPR-etterlevelse) som det ville vært astronomisk dyrt å bygge opp på egen hånd.
Det neste steget: Hva er Cloud Native?
Hvis tradisjonell sky handler om hvor programvaren kjører, handler Cloud Native om hvordan programvaren kjører og er bygget.
Å flytte en gammel, tung programvare over på en virtuell maskin i skyen gjør den ikke moderne – det kalles bare "lift and shift". Programmet er fortsatt en stor, sammenvevd floke der én feil kan krasje hele systemet.
Cloud native er en tilnærming der applikasjoner designes spesifikt for å utnytte skymiljøets unike egenskaper optimalt fra dag én. Fundamentet i denne arkitekturen består av to ting: microservices og containere.
Microservices (Mikrotjenester)
I stedet for å bygge én gigantisk applikasjon, deles systemet opp i mange små, uavhengige programmer – mikrotjenester. Hver tjeneste har én spesifikk oppgave (f.eks. en tjeneste for håndtering av handlekurv, en for betaling, og en for lagerstatus). Siden de er uavhengige, kan utviklerne oppdatere betalingsløsningen uten å røre eller risikere å krasje resten av systemet.
Containerbasert Execution Environment
For at disse mikrotjenestene skal kjøre stabilt, pakkes de inn i containere (for eksempel ved bruk av Docker). En container inneholder akkurat det mikrotjenesten trenger av kode og biblioteker for å kjøre. Dette isolerte kjøremiljøet (execution environment) gjør at koden oppfører seg nøyaktig likt enten den kjører på utviklerens bærbare PC eller i produksjon i skyen.
Hvordan kjøres Cloud Native i praksis?
Når arkitekturen er delt opp i containere, trenger bedriften verktøy for å kjøre dem. Her skiller vi ofte mellom enkle applikasjoner og komplekse miljøer:
Cloud Run: For enkeltstående programmer
For mindre komplekse behov eller frittstående applikasjoner er verktøy som Google Cloud Run helt genialt. Dette er en såkalt serverless containertjeneste. Det betyr at du bare gir skyen containeren din, så ordner den resten. Cloud Run skalerer automatisk opp fra null når det kommer trafikk, og ned til absolutt null når ingen bruker appen. Det betyr at du ikke betaler en eneste krone når applikasjonen står ubrukt.
Kubernetes: For de komplekse miljøene
Når en bedrift har hundrevis av mikrotjenester som må snakke sammen, holde styr på data og fungere synkront, blir Cloud Run for enkelt. Da trenger man mer kompleks orkestrering - Kubernetes. Kubernetes (ofte forkortet K8s) er et plattformverktøy som gir kontroll og automatiserer utrulling, skaleringsstyring og overvåking av containerbaserte applikasjoner.
Hva betyr dette for bedrifter?
Forskjellen på tradisjonell sky og cloud native er som forskjellen på å leie en parkeringsplass til den gamle bilen din, kontra det å kjøpe en flåte med selvkjørende, elektriske modulbiler. Cloud native gir bedrifter en uovertruffen oppetid, lynrask endringstakt og en ekstremt effektiv utnyttelse av IT-kostnadene.
I CAP10 har vi tatt denne arkitekturen og teknologien i bruk både for oss selv og våre kunder. Våre egne proprietære støttesystemer er bygget helt fra bunnen av etter cloud native-prinsipper. Ved å kjøre disse systemene på Google Cloud Platform (GCP), sikrer vi at arkitekturen vår er maksimalt robust, lynrask og klar til å skalere i takt med våre kunders behov.
