1. Mikrotjeneste-arkitektur
Cloud-native applikasjoner er vanligvis inndelt i mindre, selvstendige tjenester som kalles mikrotjenester. Disse tjenestene kan utvikles, testes, distribueres og skaleres uavhengig av hverandre.
2. Containerisering
Cloud-native applikasjoner bruker ofte teknikker for å pakke applikasjonen og dens avhengigheter i isolerte enheter, såkalte containere.
3. Elastisitet og skalerbarhet
Cloud-native applikasjoner er utformet for å være elastiske og skalerbare. De kan raskt tilpasses til endrede belastningskrav ved hjelp av automatisert opp- eller nedskalering av ressurser basert på etterspørsel. Dette åpner for optimal bruk av skyressurser og gjør det mulig å håndtere store volum av brukere og data.
4. Deklarativ konfigurasjon
I stedet for hardkodede konfigurasjoner benytter cloud-native applikasjoner ofte deklarativ konfigurasjon. Konfigurasjonen beskrives i filer eller kode og brukes av automatiserte verktøy til å klargjøre og håndtere infrastrukturen og tjenestene som applikasjonen er avhengig av. Dette gjør det enkelt å gjenskape og håndtere infrastruktur, og det gir fleksibilitet ved endringer.
Cloud-native applikasjoner er altså utformet for å utnytte skyen og dens fordeler optimalt. Men hva er forskjellen på å utvikle cloud-native applikasjoner og å utvikle tradisjonelle applikasjoner – og hvordan kommer man i gang med agil utvikling av førstnevnte?
Agil utvikling av cloud-native applikasjoner har tre grunnleggende forutsetninger:
Nedenfor går vi gjennom hva de innebærer, og hvordan de bidrar til en vellykket utviklingsprosess.
Innføring av DevOps er alfa og omega for å lykkes med agil utvikling. Ved å skape en kultur der utviklere og driftsteam samarbeider tett om å automatisere prosesser knyttet til bygging, testing, distribusjon og idriftsetting, kan man redusere tiden det tar å utvikle og implementere nye funksjoner og forbedringer. På den måten kan man både øke produktiviteten og minimere utviklingskostnadene.
Ved å bruke verktøy og teknikker for kontinuerlig integrasjon og distribusjon (CI/CD) kan utviklingsteam kontinuerlig integrere kodeendringer, automatisere testing og distribuere applikasjoner. Dette resulterer i en mer effektiv utviklingsprosess og muliggjør raskere og sikrere utrulling til produksjon. Denne måten å jobbe på gjør det også mulig å oppdage og rette feil og problemer på et tidlig tidspunkt. Automatisert testing og kontinuerlig overvåking bidrar dessuten til å sikre høy kvalitet og stabilitet.
En annen grunnleggende forutsetning for å lykkes med agil utvikling av cloud-native applikasjoner er å definere infrastrukturen som kode (IaC). I stedet for å håndtere infrastrukturen manuelt, kan man bruke IaC til å definere og distribuere ressurser som servere, nettverk og lagring ved å lage kodebaserte beskrivelser. Dette gjør det mulig å opprette, endre og tilbakestille infrastrukturen automatisk. Med IaC kan infrastrukturen også opprettes – og gjenskapes – på en enhetlig måte i ulike miljøer. Det kan være nyttig i DevOps, siden man kan gjenskape ett og samme miljø ved for eksempel utvikling, testing og produksjon. Ved hjelp av kodehåndteringsverktøy kan man versjonshåndtere og dokumentere infrastrukturdefinisjoner. Dette gir større grad av kontroll og forenkler sporbarhet, tilbakestilling og teamsamarbeid.
I tillegg trenger cloud-native applikasjoner som er bygd opp av mikrotjenester (micro services), et miljø å kjøre i. Der kommer containerisering inn i bildet. Det er en teknologi som gjør det mulig å kjøre applikasjoner og deres avhengigheter isolert i en standardisert enhet – en såkalt container. En container pakker programvare med nødvendige komponenter (inkludert bibliotek, verktøy og konfigurasjoner) og skaper et flyttbart og selvstendig miljø som kan kjøres på ulike systemer. Ved hjelp av containerisering kan utviklere raskt pakke og distribuere applikasjoner. Det forenkler kontinuerlig integrasjon og distribusjon (CI/CD) og gjør at man raskt kan levere nye funksjoner og sette nye oppdateringer i produksjon.
Vil du ha eksperthjelp med å skape riktige forutsetninger for din transformasjonsreise? Hos Accelerate at Iver har vi konsulenter med spisskompetanse for å gjennomføre vellykkede agile prosjekt tilpasset dine behov. Med teknologikunnskap og erfaring fra tilsvarende prosjekter hjelper vi organisasjonen din med å utvikle og etablere agile arbeidsmåter og optimalisere virksomhetsprosesser. Les mer om Accelerate at Iver eller ta kontakt via skjemaet nedenfor.