Hvis du vil forkorte utviklingslivssyklusen, øke programvarekvaliteten og sørge for kontinuerlig levering, bør du vurdere DevOps. Patrick Debois, en misfornøyd konsulent som var lei av ineffektiviteten som skyldtes skillet mellom programvareutvikling og IT-drift, lanserte begrepet i 2007.
Mange selskaper har siden tatt i bruk DevOps-prinsipper for å tilpasse seg virksomhetens behov mer effektivt. DevOps var tidligere begrenset til IT-tjenester, men har nå utvidet seg til å omfatte hele virksomheten, påvirke prosesser og dataflyter og føre til betydelige organisatoriske endringer.
Hva er DevOps?
DevOps er en metodikk som kombinerer programvareutvikling (Dev) og IT-drift (Ops). Det er et sett med praksiser, DevOps-verktøy, prosesser og til og med personer, som har som mål å øke samarbeidet i teamet og sørge for raskere og mer pålitelige produktlanseringer. Et DevOps-miljø skal oppmuntre til automatisering og dokumentasjon samt fremme kommunikasjon og samarbeid.
I motsetning til mer tradisjonelle tilnærminger (også Agile og Scrum), der avdelingene deles opp i «siloer», legger DevOps vekt på integreringen av alle teammedlemmene som er involvert i å skape produktet: fra programvareutviklerne til testerne og IT-driftsekspertene (som systemadministratorer, DBA-er og systemingeniører).
Slik fungerer DevOps
Utviklings- og driftsteam arbeider tettere sammen i en DevOps-modell. Ingeniørene i begge teamene integrerer og arbeider gjennom hele applikasjonens livssyklus, fra utvikling og testing til DevOps-distribusjon og drift. DevOps kombinerer ferdighetene fra begge sider gjennom hele applikasjonsprosessen.
Kvalitetssikrings- og sikkerhetsteam kan knyttes tettere sammen med utvikling og drift, samt gjennom hele programvareutviklingslivssyklusen, under ulike DevOps-modeller, for eksempel SecDevOps (som fokuserer på sikkerhet) eller QAOps (som legger større vekt på testing av produktkvalitet).
Disse gruppene bruker beste praksis for å automatisere tidligere arbeidskrevende og langsomme prosesser. De benytter en teknologistakk og infrastruktur for å drive og videreutvikle apper raskt og pålitelig.
DevOps-praksiser og -konsepter
DevOps dreier seg om noen viktige praksiser. La oss se en forklaring på hver av dem nedenfor.
Kontinuerlig integrasjon
Kontinuerlig integrasjon (CI) innebærer å slå sammen kodeendringer i et sentralt oppbevaringssted regelmessig og kjøre automatiserte bygginger og tester (inkludert enhetstester, integrasjonstester, tester av brukergrensesnittet og ende-til-ende-tester).
Hovedmålet med CI er å oppdage og rette feil raskere, øke den generelle kvaliteten på programvaren og redusere tiden det tar å validere og lansere nye programvareoppdateringer.
Have an account? Log In
Kontinuerlig levering
Kontinuerlig levering er nært knyttet til kontinuerlig integrasjon og er det neste logiske steget. Ved kontinuerlig levering er kravet at kodeendringer automatisk bygges, testes og klargjøres for levering i produksjonsmiljøet. Ideelt sett sendes alle endringer først til et testmiljø før de distribueres til produksjon.
Versjonskontroll
Også kjent som kildekontroll, innebærer dette å håndtere kode i versjoner, det vil si å spore revisjoner og kodeendringer over tid. Dette gjøres ofte ved hjelp av versjonskontrollsystemer som lar teammedlemmer samarbeide om kode.
Disse metodene beskriver en trinnvis fremgangsmåte for å slå sammen kodeendringer i de samme filene, løse konflikter og tilbakestille endringer til tidligere tilstander. Versjonskontroll er en av de viktigste DevOps-prosessene som hjelper utviklingsteam med å samarbeide, delegere kodeoppgaver til teammedlemmer og arkivere all kode for rask gjenoppretting.
Overvåking og logging
Kontinuerlig overvåking innebærer å identifisere mislykkede bygginger eller tester og sørge for at de ikke skaper forsinkelser. Automatisering gjør utviklingen betydelig raskere, men hvis en automatisert prosess mislykkes uten at noen oppdager det, er det bedre å fullføre oppgaven manuelt.
På samme måte er det avgjørende å holde øye med apper i produksjon for å oppdage problemer eller ytelsesproblemer før kundene dine gjør det.
Mikrotjenester
Mikrotjenestearkitektur er en stil der applikasjonen struktureres som en samling mindre, løst koblede og uavhengig distribuerbare tjenester. Dette gjør det mulig for leveringsteam å fokusere på bestemte tjenester som uavhengige enheter, noe som gjør utvikling, testing og distribusjon mye enklere.
Infrastruktur som kode (IaC)
Dette er en prosess for håndtering av IT-infrastrukturen (nettverk, virtuelle maskiner, lastbalanserere, tilkoblingsarkitektur) som bruker den samme versjonskontrollen for kildekode som DevOps-teamet.
En IaC-modell oppretter det samme miljøet hver gang den brukes, på samme måte som den samme kildekoden produserer den samme binærfilen. IaC er en avgjørende tilnærming som fungerer hånd i hånd med kontinuerlig levering.
Forskyvning til venstre
Dette er et begrep for en utviklingsprosess der teamet fokuserer på å begynne testingen så tidlig som mulig. Det endelige målet er økt kvalitet, kortere testsykluser og å unngå eventuelle overraskelser på slutten av utviklingssyklusen. Forskyvning til venstre forutsetter kontinuerlig testing (å skrive og kjøre automatiserte tester så tidlig og så ofte som mulig) og kontinuerlig distribusjon (å automatisere distribusjonen av nye bygg).
DevOps-livssyklusen
Den typiske DevOps-arbeidsflyten er iterativ og består av åtte hovedfaser:
- Planlegging: På dette stadiet identifiserer teamet virksomhetens krav og oppretter et veikart som maksimerer produktets forretningsverdi.
- Koding: Dette er stadiet der selve utviklingen utføres.
- Bygging: Når utviklingsoppgavene er fullført, legges koden inn i det delte repositoriet.
- Testing: Bygget distribueres til testmiljøet, der testene kjøres. Dette omfatter vanligvis enhetstesting, integrasjonstesting, automatisert brukergrensesnittstesting og manuelle tester, for eksempel brukerakseptansetester.
- Utgivelse: Når testfasen er fullført, klargjøres bygget av DevOps-ingeniørene for distribusjon til produksjonsmiljøet.
- Distribusjon: På dette stadiet installeres, testes og implementeres bygget i produksjon, og det blir tilgjengelig for sluttbrukerne.
- Drift: Håndtere leveringen av IT-tjenester til kunder fra begynnelse til slutt. Dette viser til prosedyrene for utforming, implementering, konfigurering, distribusjon og vedlikehold av IT-infrastrukturen som støtter en organisasjons tjenester.
- Overvåking: DevOps-teamet evaluerer hver utgivelse og leverer rapporter for å forbedre fremtidige programvareutgivelser. Ved å samle inn kontinuerlige tilbakemeldinger kan teamene optimalisere prosessene sine og integrere tilbakemeldinger fra brukerne i neste utgivelse.

Hva er fordelene med DevOps?
De viktigste fordelene med en DevOps-tilnærming er:
- Raskere levering av programvare: Med CI/CD-pipelines går distribusjonen raskere og skjer oftere. Det tar kortere tid å oppdatere eksisterende tjenester og distribuere nye systemer, funksjoner eller feilrettinger. Dette kan gi et viktig konkurransefortrinn og en bedre brukeropplevelse.
- Bedre samarbeid: Med DevOps-praksiser arbeider utviklerne og driftsteamene tett sammen og deler ansvaret, noe som øker synligheten i arbeidet. Teamene er bedre knyttet sammen og arbeider mot de samme målene og hensiktene.
- Større produktivitet: Når arbeidet ikke lenger er adskilt og kommunikasjonen er forbedret, blir det større åpenhet, noe som gjør at teamene arbeider mer effektivt.
- Automatiserte repetitive oppgaver: I tillegg til den store fordelen ved å slippe å utføre disse oppgavene manuelt, får teamet mer tid til å arbeide med innovasjon i prosjektet.
- Økt kvalitet og pålitelighet: Praksiser for kontinuerlig integrasjon og levering sikrer at endringer er funksjonelle og stabile, noe som forbedrer kvaliteten på et programvareprodukt. Overvåking gjør at teamene kan holde seg oppdatert på ytelsen i sanntid.
- Bedre sikkerhet: Sikkerheten i DevOps kan også forbedres ved å integrere sikkerhetstesting i pipelinen for kontinuerlig integrasjon, kontinuerlig levering og kontinuerlig distribusjon.
- Hyppigere utgivelser: Kundene kan motta oppdateringer og feilrettinger ofte, og dette fører til større kundetilfredshet.
Hvordan innføre en DevOps-kultur?
Overgangen til DevOps innebærer en endring i kultur og filosofi. I begynnelsen kan innføring av DevOps bety at drifts- og utviklingsteamene forplikter seg til å forstå problemene og teknologibegrensningene som finnes i hver fase av programvareutviklingsprosessen.
Etabler forbedrings-KPI-er, for eksempel kortere syklustider eller færre feil i produksjon. Ved å kommunisere på tvers av arbeidsaktivitetene kan du legge grunnlaget for kontinuerlige prosesser.
Undersøk de nåværende verktøyene for utvikling og IT-drift. Identifiser eventuelle svakheter, for eksempel et trinn som alltid fullføres manuelt, eller et verktøy som ikke har API-er for kommunikasjon med andre verktøy. Vurder å implementere én DevOps-leveransepipeline for hele selskapet. Teammedlemmer kan gå fra ett prosjekt til det neste uten å måtte gjennomgå ny opplæring.
Nå som DevOps-tankegangen er på plass, bestemmer du hvilke måltall som skal brukes til å måle suksess, og identifiserer verktøyene som skal brukes fremover (mer om dette senere). For å fortsette forbedringsarbeidet bør du konsentrere deg om beste praksis, kunnskapsdeling og kontinuerlig forbedring. Identifiser hindringer som påvirker KPI-ene dine, og optimaliser verktøyene og teknologien.
Modellen for DevOps-modenhet har 5 trinn:
- Opprinnelig: en tradisjonell modell der utviklingsteamet og driftsteamet arbeider i separate siloer.
- Administrert: det innledende skiftet mot DevOps, når driftsprosessene begynner å bli automatisert. Samarbeidet mellom utvikling og drift øker når teamene ikke lenger er adskilt. Dette er et prøvekonseptstadium.
- Definert: Automatiseringsprosesser for all praksis (inkludert utvikling og testing) defineres og innføres. Endringene gjennomføres på organisasjonsnivå.
- Målt: Teamene deler kunnskap og tilpasser praksis ved hjelp av prosessene og verktøyene som er på plass. Automatisering og kommunikasjon mellom verktøyene forbedres, og retningslinjer brukes til å håndheve standarder.
- Optimalisert: Resultatene begynner å bli synlige takket være kontinuerlig forbedring. DevOps kan utvikle seg til flere verktøysett eller prosedyrer. Kundeorienterte apper (som vanligvis er B2C-apper) lanseres for eksempel oftere, mens FinTech-apper i større grad følger DevSecOps-prinsippene.
DevOps-verktøy
DevOps-metodikken fokuserer på å automatisere programvareutviklingsaktiviteter som bygging, testing og utrulling for å oppnå kortere tid til markedet, produkter av høy kvalitet og færre feil og tilbakerullinger av programvarefunksjoner. Alt dette tatt i betraktning vil den riktige verktøystakken bidra til å sikre at du kan oppnå en vellykket DevOps-kultur.
Verktøyene og teknologiene som hjelper utviklings- og driftspersonell med å samhandle gjennom hele programvarens livssyklus, omtales som en DevOps-verktøykjede. Kontinuerlig integrasjon, kontinuerlig levering, automatisering og samarbeid er blant de sentrale DevOps-elementene som dekkes.
Så hvilke vanlige verktøy brukes i DevOps?
Planleggingsverktøy
Dette er hovedsakelig de samme verktøyene som brukes i metodikker for smidig utvikling. Et av de mest populære verktøyene for dette trinnet er kanskje Jira. Hvis du ikke allerede kjenner til det, er det et prosjektstyringsverktøy fra Atlassian som er utviklet for at smidige team skal kunne følge opp oppgaver, problemer og feil. Det gjør det mulig å integrere med flere andre verktøy som brukes i andre faser av DevOps-prosessen.
God kommunikasjon er avgjørende i DevOps, både i planleggingsfasen og i de andre fasene, så det er lurt å bruke en meldingsapplikasjon som også kan integreres med resten av verktøyene. Slike applikasjoner omfatter Slack, også fra Atlassian, eller Microsoft Teams.
Versjonskontrollverktøy
Versjonskontrollverktøy hjelper team som utvikler applikasjoner, med å håndtere endringer i kildekoden over tid. De hjelper programvareteam med å arbeide raskere og smartere etter hvert som utviklingsmiljøene øker i omfang.
Versjonskontrolløsninger bidrar særlig til å redusere utviklingstiden og øke sannsynligheten for vellykkede utrullinger. Git er trolig det mest brukte versjonskontrollverktøyet, men noen team kan velge å bruke TFS, SVN eller GitHub til kildekontroll.
Verktøy for kontinuerlig integrasjon
Verktøy for kontinuerlig integrasjon kjører automatiserte tester på utviklingsgrenene og gjør det mulig å sende endringer til hovedgrenen når byggingene er vellykkede. De gir også kontinuerlige tilbakemeldinger gjennom sanntidsvarsler i chat fra teamet ditt, ved hjelp av enkle integrasjoner. Viktige verktøy omfatter Jenkins (som er et verktøy med åpen kildekode), Circle CI og AWS.
More Articles
Verktøy for konfigurasjonsstyring
Gjennom hele DevOps-livssyklusen viser konfigurasjonsstyring til vedlikehold og kontroll av komponentene i store, komplekse systemer, slik at de er i en kjent, konsistent og fastsatt tilstand. Servere, nettverk, lagring og applikasjoner er alle eksempler på komponenter i IT-systemer.
Verktøy for konfigurasjonsstyring gjør distribusjonsprosessen sømløs og konsistent gjennom hele produksjonsprosessen. Noen fremtredende verktøy for konfigurasjonsstyring er Ansible, Puppet og Chef.
Verktøy for kontinuerlig drift
Verktøy for kontinuerlig drift brukes til å automatisere prosessen med å starte appen og oppdateringene av den. Kontinuerlig drift eliminerer nedetid ved å benytte løsninger for containeradministrasjon, som Kubernetes og Docker. Disse teknologiene for containeradministrasjon gjør prosessen med å utvikle, teste og distribuere en app på tvers av ulike miljøer mye enklere.
Er DevOps noe for deg?
Selv om ingen metodikk passer for alle, har du kanskje nå et klarere bilde av hva DevOps er, og hva du trenger for å ta det i bruk. På bakgrunn av dette og mer informasjon om priser for DevOps kan du avgjøre om DevOps er en prosess som passer med teamets mål.
Når det er sagt, bør du vurdere å samarbeide med den rette programvareutviklingspartneren i en nærliggende region hvis du undersøker hvordan du kan implementere DevOps eller skalere det mer effektivt.
Ser du etter flere beste praksiser for DevOps? Abonner på The CTO Clubs nyhetsbrev for å få de nyeste innsiktene.







