Traditionel compute cloud vs. serverless vs. infraless

En sammenligning af cloud-generationer.

Cloud-generationer og brugervenlighed

Alle har deres fordele, men afhængigt af dine behov kan den ene være et bedre match end den anden. Tabellen nedenfor illustrerer den gradvise abstraktion og forenkling fra traditionel cloud computing til infraless computing, hvor serverless computing fungerer som et mellemtrin. Infraless compute cloud udvider serverless-modellen ved ikke kun at abstrahere compute-ressourcer, men også en lang række yderligere services og infrastrukturkomponenter. Det giver et udviklingsmiljø, der på én gang er både enklere, mere omfattende og mere integreret.

Først gennemgår vi, hvordan de forskellige cloud-generationer definerer udviklernes involvering i – og ansvar for – opsætning og maintenance af clouden, og derefter hvordan de påvirker softwareleverance og performance.

Bemærk: Et “←” i en kolonne betyder, at funktionerne er identiske med kolonnen til venstre, og et “+” betyder, at funktionerne er yderligere ift. dem til venstre.

Traditionel
Serverless
Infraless
Yderligere info
Niveau for infrastrukturabstraktion
Du står selv for opsætningen og den løbende maintenance af VMere, servere og infrastruktur, hvilket kræver meget tid og ekspertise. Som et eksempel har AWS mere end 240 services – og det kan umiddelbart virke som en fordel, men i virkeligheden kræver det flere års erfaring at finde ud af, hvilke der er nødvendige eller relevante for dig, og hvordan du opsætter og maintainer dem
Udbyderen provisionerer og administrerer kerneinfrastrukturen: servere, skalering og maintenance.

Du kan fokusere på dit produkt og ikke-cloud-relaterede værktøjer og applikationer.
← + Udbyderen håndterer yderligere infrastruktur, såsom f.eks. authentication, databaser, fil-lagring, caching og job queues, ved at abstrahere service-til-service-kommunikation og -koordinering bag et message-passing interface. Så får I alle fordelene uden at skulle lære og forstå værktøjerne.

Så I kan fokusere helt og aldeles på jeres produkt.
Du kan finde en kort forklaring af serverless her og af infraless her.
Platform performance
Scalability
Skalering er manuel eller kræver forudkonfigurerede auto-scaling-regler. Du skal altså forudse efterspørgslen for at undgå over- eller under-provisionering, hvilket enten går ud over dit budget eller din softwares performance.
Automatisk og øjeblikkelig (zero cold-start) skalering baseret på efterspørgsel uden manuel indgriben, håndteret af platformen. Ressourcer allokeres dynamisk efter behov.
Performance
Potential latency ved høj trafik, begrænset af den reserverede kapacitet, hvis du har under-provisioneret ressourcer eller rammer en manuel skaleringsbegrænsning.
Hurtigere svartider via distribuerede requests og automatisk tilpasning til at håndtere udsving i trafikken, hvilket minimerer latency og performance bottlenecks, samtidig med at risikoen for at overbetale for ubrugte ressourcer er fjernet.
← + Optimeret performance via AI/machine learning samt integreret caching og workflows.
 
Availability & redundancy
Kræver, at du selv konfigurerer og maintainer backups, failover og disaster recovery-opsætninger
Redundans er indbygget i platformen: Din kode distribueres automatisk på tværs af flere fysiske lokationer, og disaster recovery håndteres af platformen.
 
Sikkerhed
Sikkerhedsopsætning er i høj grad dit ansvar, inklusive patching, opdateringer og monitoring.
Mange sikkerhedsopgaver håndteres af udbyderen (f.eks. kryptering, patching), men du er stadig ansvarlig for sikkerheden på applikationsniveau.
← + udbyderen håndterer sikkerhed relateret til yderligere abstraheret infrastruktur.
 
Monitoring & logging
Du implementerer løsningerne.
Udbyderen tilbyder værktøjer, som ofte kræver yderligere opsætning.
Integrerede monitoring- og logging-løsninger er inkluderet.
 
Resulterende developer...
 ... maturity
DevOps, som du kender det.
DevOps, men med lidt mindre Ops.
Fuld NoOps, så dine udviklere kan fokusere på udvikling.
 ... productivity
Udviklere er tvunget til at dele deres tid og opmærksomhed mellem både produkt- og operations-relaterede opgaver og deadlines, hvilket resulterer i længere time-to-market.
Udviklere slipper for cloud management og de tilhørende værktøjer, så de kan fokusere mere på deres produkt, men de skal stadig opsætte og maintaine alle de sædvanlige ikke-cloud-relaterede infrastrukturværktøjer og applikationer.
Udviklere kan fokusere deres tid og opmærksomhed på deres produkt, mens udbyderen håndterer alt der er cloud-relateret, samt mange andre værktøjer og apps, i et dokumenteret, self-service-miljø, hvilket drastisk reducerer time-to-market.
 
 ... experience
Udviklere har en høj risiko for burnout, især på grund af udfordringer med at prioritere mellem development og operations.
Udviklere har mindre risiko for burnout, da cloud operations ikke længere er en konkurrerende prioritet. I stedet kan deres tid og opmærksomhed næsten udelukkende fokuseres på deres produkt.
Udviklere frigøres ikke kun fra driftsopgaver, men også fra mange andre trivielle infrastruktur-opgaver, hvilket markant reducerer deres kognitive belastning og giver dem mulighed for at opnå dybere fokus – og reel udviklerglæde.
 

Cloud-generationer og software delivery performance

Med det på plads ser vi på, hvordan de forskellige platforme påvirker de fire nøgler til software delivery performance, jf. DORA’s State of DevOps 2024 rapport.

Bemærk, at for infraless er svarene baseret på Merrymakes løsning, da der endnu ikke findes mange udbydere af infraless cloud. Svarene er derfor ikke kun begrænset til forskelle mellem cloud-teknologier, men afspejler også de forskellige tilgange til softwareudvikling, som typiske udbydere muliggør.

Med det sagt kræver god software delivery performance:

Traditional
Serverless
Infraless
Yderligere info
Low change lead time
Fordi du ikke kun er ansvarlig for dit produkt, men også for cloud provisioning og al infrastruktur (inkl. containers), vil der være plads til forbedring af jeres change lead time.
Fordi du bliver fritaget for alt der har med cloud operations at gøre, gør serverless det muligt for dig at fokusere og forkorte lead times.

Men du skal stadig håndtere dine deployment-processer.
Du kan fokusere udelukkende på applikationskoden. Merrymakes platform håndterer provisioning, deployment pipelines og yderligere infrastruktur, hvilket gør det muligt for dig at implementere ændringer hurtigt.
En anden almindelig hindring ved traditionelle clouds er en direkte kommunikationsarkitektur, da det kræver koordinering mellem services og udviklerteams, før der kan foretages ændringer.

Merrymake har, udover dens abstraktioner, en indirekte, to-lags kommunikations-arkitektur, der gør det markant nemmere og hurtigere for udviklere at implementere ændringer.

Se en kort demo på min 20sek, der i realtid viser, hvor hurtigt det er at deploye og opdele en service i to.
High deployment frequency
Du opsætter og manager custom CI/CD-pipelines og er selv ansvarlig for processen og hvor lang tid en deployment tager.

I mange tilfælde motiverer det udviklere til at samle ændringer og kun deploye én eller to gange om dagen, hvilket er i strid med best practice om hyppige deployment af små batches. Det øger risikoen for fejl og forlænger recovery time markant.
Udbyderen tilbyder (ofte) forenklede deployeringsprocesser med automatiserede CI/CD-pipelines.

Og jo nemmere det er at deploye, desto oftere vil det blive gjort.
Merrymake har fuldt automatiserede deployments med indbygget CI/CD. Deployér med Git eller en enkelt kommando i CLIet, og vær live på 10 sekunder.

Det fremmer en kultur med små, hyppige deployments, hvilket reducerer fejlraten og recovery tiden, når noget går galt.
Low change fail rate
Du er ansvarlig for alle teststrategier, deployment-processer og overdragelser – og værst af alt: at holde et testmiljø opdateret med produktion. Det øger altsammen risikoen for deploys, der lægger Produktion ned.
Udbyderen kan tilbyde værktøjer, der automatiserer testing og deployment, hvis du sætter dem op.

Du er dog stadig afhængig af selv at administrere et testmiljø, hvis du ønsker det, eller f.eks. at teste i Produktion med feature flags, hvilket gør det muligt at reducerer fejlraten – på bekostning af øget change lead time.
Merrymakes indirekte, to-lags kommunikations-arkitektur fjerner behovet for testmiljøer eller feature flags – i stedet kan du teste risikofrit direkte i Produktion.

Merrymake inkluderer desuden en automatisk “init container” (smoke test) ved deploy, hvilket yderligere reducerer risikoen for fejl.
 
Low failure recovery time
Failure recovery times afhænger af de processer og værktøjer, du har sat op og vedligeholder – og det gælder ikke kun for håndtering af fejl, men også for deployment (husk, at store batches af ændringer gør det sværere at identificere årsagen til fejlen).
Merrymakes offline simulator lader dig spinne en lokal version af hele dit system eller et relevant subsystem op – øjeblikkeligt. Og fordi platformen er event-baseret, kan en identisk event til den, der forårsagede den uventede adfærd, postes, så du kan se, hvad der sker ved trin-for-trin. Det giver dig reelt et slow-motion replay (også kendt som event sourcing). Du kan afspille det så mange gange, du vil, og tilføje mere logging eller bogstaveligt talt ændre services lokalt for at se, hvordan det påvirker adfærden. På den måde kan du teste løsninger i et isoleret miljø, og når du har set ændringerne virke, kan du deploye dem til Produktion.
 

Men hvad kan jeg bruge det til? Og hvor meget koster det?

Traditional
Serverless
Infraless
Additional info
Use Cases
Applikationer med konsistente workloads og/eller monolitter.
Microservice-arkitekturer med varierende workloads (f.eks. APIer, realtids-databehandling, event-drevne applikationer, tilbagevendende databehandling eller IoT).
← + komplekse applikationer med flere integrerede services.
Cost Model
Du betaler for at reservere en fast compute-kapacitet, selv i perioder med lav udnyttelse.
Du betaler kun for det faktiske ressourceforbrug når din kode kører, ikke for at reservere ressourcer.

Prissætningen er typisk sammenlignelig med traditionel cloud, men uden at der spildes penge på overprovisionerede eller ubrugte ressourcer.
← + Ud over kun at betale for det, du faktisk bruger, opnår du også organisatoriske fordele ved øget udviklerproduktivitet og -trivsel.

Klar til infraless og alle dets fordele?

Hop direkte til vores tutorial, eller stil dine spørgsmål på Discord eller i et møde!