Hva betyr egentlig “Cloud native”?

Konsulent Ole Kristian Pedersen i Bekk forklarer hva som ligger bak det "hypede" uttrykket.

Cloud native er et hyppig brukt begrep: cloud native-applikasjoner, cloud native-arkitektur, og så videre.

Cloud native har utvilsomt fått en del hype, og Gartner spår at cloud native vil nå toppen av sin hype cycle (også kalt Peak of Inflated Expectation) i løpet av få år (Gartner Cloud Hype Cycle, 2019).

Enn så lenge er cloud native-hypen på vei oppover, men hva betyr det egentlig at noe er cloud native?

Cloud Native Computing Foundation

Cloud Native Computing Foundation (CNCF) er en organisasjon som jobber “… to make cloud native computing ubiquitous.” Altså, CNCF jobber med å muliggjøre og forbedre et økosystem av teknologier som lar applikasjoner og tjenester kjøres uavhengig av den underliggende infrastrukturen.

Organisasjonen jobber for å tilrettelegge for at applikasjoner skal kunne kjøres over alt, fra store skytjenester til små, avsidesliggende IoT-installasjoner med dårlig internettforbindelse.

CNCF er ikke en organisasjon som utvikler nye teknologier selv, men har en støttefunksjon for open source cloud native-prosjekter som er eller ønsker å bli en del av organisasjonen, arrangerer KubeCon + CloudNativeCon og har en del ressurser for sluttbrukere som vil orientere seg i økosystemet, for eksempel cloud native trail map og ikke minst cloud native landscape som ble kilden til diskusjoner og memes når det ble publisert.

CNCFs definisjon av Cloud Native

CNCF har følgende definisjon for cloud native-teknologier:

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

Her defineres cloud native-teknologier som teknologier som skal hjelpe organisasjoner lage fleksible systemer av løst knyttede og uavhengig skalerbare applikasjoner. Merk at containere nevnes eksplisitt her, men skyleverandørspesifikke FaaS og PaaS faller også innunder denne definisjonen — en cloud native-applikasjon trenger ikke kjøre i en container.

Teknologiene skal også underbygge applikasjoner som kjøres i moderne, dynamiske miljøer. Selv om public, private og hybrid clouds nevnes eksplisitt, utelukkes heller ikke applikasjoner som kjører i mer krevende miljøer, for eksempel IoT-systemer.

“Cloud native” betyr altså at applikasjonen, systemet eller arkitekturen er bygd på prinsippene om løst knyttede systemer av uavhengig skalerbare applikasjoner.

Hvorfor cloud native?

Den siste delen av CNCFs definisjon påstår at cloud native-teknologier sammen med god automasjon tilrettelegger for at utviklingsteam kan ha høy hastighet. Med andre ord, cloud native-teknologier tilrettelegger for kontinuerlige leveranser.

Accelerate: The Science of Lean Software and DevOps handler om hva som skal til for å bli en høytpresterende og leveransedyktig IT-organisasjon. Boken har en forskningsbasert tilnærming, og bruker data fra State of DevOps-rapportene. Her kommer det frem at en løst koblet og velfungerende arkitektur fører til kontinuerlige leveranser. Dette understøtter altså påstanden i CNCFs definisjon.

Videre indikerer forskningen presentert i Accelerate at kontinuerlige leveranser fører til høyere jobbtilfredshet, mindre utbrenthet og at organisasjonen som helhet presterer bedre — alle gode grunner til å ta i bruk teknikkene, teknologiene og verktøyene som cloud native-økosystemet tilbyr.