Hva er DevOps?

Finn ut mer om hvordan DevOps forener folk, prosess og teknologi for å levere bedre produkter raskere til kunder

DevOps-definisjon

En blanding av utvikling (Dev) og operasjoner (Ops), DevOps er foreninger av personer, prosess og teknologi for å levere verdi til kundene hele tiden.

Hva betyr DevOps for team? DevOps muliggjør at tidligere roller- utvikling, IT-operasjoner, kvalitetsteknikk og sikkerhet- kan koordinere og samarbeide for å produsere bedre og mer pålitelige produkter. Ved å bruke en DevOps-kultur sammen med DevOps-praksiser og -verktøy får team muligheten til å svare bedre på kundebehov, øke troen på applikasjonene de bygger og oppnå forretningsmål raskere.

Fordelene med DevOps

Team som tar i bruk DevOps-kultur, praksiser og verktøy presterer bedre og bygger bedre produkter raskere for større kundetilfredshet. Dette forbedrede samarbeidet og produktiviteten er også vesentlig for å nå forretningsmål som disse:

Akselerer tiden til markedet

Tilpasser til markedet og konkurrentene

Opprettholde systemstabilitet og pålitelighet

Forbedre gjennomsnittlig tid til gjenoppretting

DevOps og programlivssyklusen.

DevOps påvirker applikasjonslivssyklusen gjennom plan-, utviklings-, leverings- og driftsfasene. Hver fase avhenger av de andre, og fasene er ikke rollespesifikke. I en ekte DevOps-kultur er hver rolle involvert i hver fase til en viss grad.

Abonnement

I planfasen lager DevOps-team ideer, definerer og beskriver funksjoner og muligheter ved applikasjonene og systemene de bygger. De sporer fremdrift ved lave og høye granularitetsnivåer - fra enkeltproduktoppgaver til oppgaver som omfatter porteføljer for flere produkter. Opprettelse av gjenværende arbeid, sporing av feil, administrering av smidig programvareutvikling med Scrum, bruk av Kanban-tavler og visualisering av fremdrift med instrumentbord er noen av måtene DevOps-team planlegger med smidighet og synlighet.

Utvikle

Utviklingsfasen inkluderer alle aspekter av koding - skriving, testing, gjennomgang og integrasjon av kode av teammedlemmer - så vel som å bygge den koden inn i byggartefakter som kan distribueres i ulike miljøer. DevOps-team ønsker å være innovative uten å ofre kvalitet, stabilitet og produktivitet. For å gjøre det bruker de svært produktive verktøy, automatiserer trivielle og manuelle trinn og gjentar i små trinn gjennom automatisert testing og kontinuerlig integrasjon.

Lever

Levering er prosessen med å distribuere programmer i produksjonsmiljøer på en konsekvent og pålitelig måte. Leveringsfasen inkluderer også distribuering og konfigurering av infrastrukturen som utgjør disse miljøene.

I leveringsfasen definerer team en utgivelsesadministreringsprosess med klare manuelle godkjenningsstadier. De setter også automatiske porter som flytter applikasjoner mellom trinn til de gjøres tilgjengelige for kunder. Automatisering av disse prosessene gjør dem skalerbare, repeterbare, kontrollerte. På den måten kan team som bruker DevOps levere hyppig med enkelhet, selvsikkerhet og ro i sjelen.

Bruk

Driftsfasen innebærer å opprettholde, overvåke og feilsøke applikasjoner i produksjonsmiljøer. Når DevOps-praksiser tas i bruk, jobber team for å sikre systempålitelighet, høy tilgjengelighet og har null nedetid som mål samtidig som sikkerhet og styring styrkes. DevOps-team forsøker å identifisere feil før de påvirker kundeopplevelsen og demper feil raskt når de oppstår. Opprettholdelse av denne årvåkenheten krever rik telemetri, varsling som kan omsettes i handling og full innsikt i applikasjoner og det underliggende systemet.

DevOps-kultur

Selv om bruk av DevOps-praksiser automatiserer og optimaliserer prosesser gjennom teknologi, starter alt med kulturen i organisasjonen - og personene som spiller en rolle i den. Utfordringen med å dyrke en DevOps-kultur krever dype endringer i måten folk jobber og samarbeider. Men når organisasjoner forplikter seg til en DevOps-kultur, kan de skape miljøet som gjør at team utvikler seg.

Samarbeid, synlighet og justering

Et kjennemerke med en sunn DevOps-kultur er samarbeid mellom team, som starter med synlighet. Ulike team som utvikling og IT-drift må dele deres DevOps-prosesser, prioriteringer og bekymringer med hverandre. Disse teamene må også planlegge sammen så vel som justere mål og mål på suksess når det relaterer til virksomheten.

Endring i omfang og ansvar

Når team justerer seg, tar de eierskap og blir involvert i de ekstra livssyklusfasene- ikke bare de som er vesentlige for deres roller. Utviklere blir for eksempel ansvarlige ikke bare for innovasjonen og kvaliteten i utviklingsfasen, men også for ytelsen og stabiliteten endringene deres bringer i driftsfasen. Samtidig sørger IT-operatører for å inkludere styring, sikkerhet og samsvar i plan- og utviklingsfasen.

Kortere utgivelsessykluser

DevOps-team forblir smidige ved å gi ut programvare i korte sykluser. Kortere utgivelsessykluser gjør planlegging og risikostyring enklere siden fremdriften er trinnvis, noe som også reduserer innvirkningen på systemstabilitet. Forkortelse av utgivelsessyklusen gjør det også mulig for organisasjoner å tilpasse seg og reagere på endrede kundebehov og konkurransepress.

Kontinuerlig læring

DevOps-team som presterer godt har en veksttankegang. De håndterer feil raskt og inkorporerer læring i prosessene deres, forbedrer seg kontinuerlig, øker kundetilfredshet og fremskynder innovasjon og tilpasningsevne til markedet. DevOps er en reise, så det er alltid rom for å vokse.

Se hvordan team på tvers av Microsoft gikk over til en DevOps-kultur

Mer informasjon

DevOps-praksiser

Utover å etablere en DevOps-kultur, bringer team DevOps til liv ved å etablere visse praksiser gjennom programlivssyklusen. Noen av disse praksisene får fart på, automatiserer og forbedrer en spesifikk fase. Andre strekker seg over flere faser og hjelper team med å lage sømløse prosesser som bidrar til å forbedre produktivitet.

Kontinuerlig integrering og levering (CI/CD)

Kontinuerlig integrering er en programvareutviklingspraksis der utviklere slår sammen kodeendringer ofte i hovedkodegrenen. Kontinuerlig integrering tar i bruk automatisert testing, som kjører hver gang ny kode lagres slik at koden i hovedgrenen alltid er stabil.

Kontinuerlig levering er den hyppige, automatiserte distribusjonen av nye applikasjonsversjoner i et produksjonsmiljø. Ved å automatisere trinnene som kreves for distribusjon reduserer team feil som kan oppstå ved distribusjon og muliggjør mer hyppige oppdateringer.

Når begge praksiser er på plass, er den resulterende prosessen CI/CD, som inkluderer den fullstendige automatiseringen av alle trinn mellom kodelagring til produksjonsdistribusjon. Implementering av CI/CD lar team fokusere på å bygge kode og fjerne administrasjons- og potensiell menneskelig feil i manuelle, trivielle trinn. CI/CD gjør også prosessen med å distribuere ny kode raskere og mindre risikabelt. Distribusjoner skjer da oftere og i mindre trinn og hjelper team med å bli mer smidige, mer produktive og mer selvsikre på koden de kjører.

Versjonskontroll

Versjonskontroll er praksisen med å administrere kode i versjoner-der man sporer revisjoner og endrer historikk for å gjøre kode enkelt å gjennomgå og gjenopprette. Denne praksisen implementeres vanligvis ved å bruke versjonskontrollssytemer som Git, som gjør det mulig for flere utviklere å samarbeide om å skrive kode. Disse systemene gir en klar prosess for å slå sammen kodeendringer som skjer i de samme filene, håndtere konflikter og rulle tilbake endringer til tidligere tilstander.

Bruken av versjonskontroll er en grunnleggende DevOps-praksis, noe som hjelper utviklingsteam med å jobbe sammen, dele kodeoppgaver mellom teammedlemmer og lagre all kode for enkel gjenoppretting om nødvendig.

Versjonskontroll er også et nødvendig element i andre praksiser som kontinuerlig integrering og infrastruktur som kode.

Finn ut mer om Git

Agile programvareutvikling

Agile er en programvareutviklingstilnærming som legger vekt på teamsamarbeid, kunde- og brukertilbakemelding og høy tilpasningsevne til endring gjennom korte utgivelsessykluser. Team som praktiserer Agile leverer kontinuerlige endringer og forbedringer til kunder, samler inn tilbakemeldingene deres og lærer og justerer seg basert på kunders ønsker og behov. Agile er svært forskjellig fra andre mer tradisjonelle rammeverk som fossefall, som inkluderer lange utgivelsessykluser definert av sekvensielle faser. Kanban og Scrum er to populære rammeverk forbundet med Agile.

Finn ut hvordan Agile og DevOps fungerer sammen

Infrastruktur som kode

Infrastruktur som kode definerer systemressurser og -topologier på en beskrivende måte som lar team administrere disse ressursene på samme måte som de ville gjort med kode. Disse definisjonene kan også lagres og gjengis i versjonskontrollsystemer, der de kan gjennomgås og gjenopprettes-igjen som kode.

Øving på infrastruktur som kode hjelper team å distribuere systemressurser på en pålitelig, repeterbar og kontrollert måte. Infrastruktur som kode bidrar også til å automatisere og distribusjon og reduserer risikoen for menneskelig feil, spesielt for komplekse store miljøer. Denne repeterbare, pålitelige løsningen for miljødistribusjoner lar team opprettholde utviklings- og testmiljøer som er identiske med produksjon. Duplisering av miljøer til ulike datasentre og skyplattformer blir enklere og mer effektivt.

Konfigurasjonsbehandling

Konfigurasjonsadministrasjon refererer til administrering av ressurstilstander i et system inkludert servere, virtuelle maskiner og databaser. Ved hjelp av konfigurasjonsadministrasjonsverktøy kan team rulle ut endringer på en kontrollert, systematisk måte og redusere risikoen for å endre systemkonfigurasjon. Team bruker konfigurasjonsadministrasjon for å spore systemtilstand og unngå konfigurasjonsavvik, som er måten en systemressurs sin konfigurasjon avviker over tid fra den ønskede tilstanden definert for den.

Praktisert sammen med infrastruktur som kode er både systemdefinisjon og konfigurasjon lett å lage maler av og automatisere og hjelper team å drive komplekse miljøer i riktig skala.

Kontinuerlig overvåking

Kontinuerlig overvåking innebærer å ha full synlighet i sanntid i ytelsen og tilstanden til hele applikasjonsstakken, fra den underliggende infrastrukturen som kjører applikasjonen til programvarekomponenter på høyere nivå. Synligheten består av innsamling av telemetri og metadata så vel som innstilling av varsler for de forhåndsdefinerte betingelsene som krever oppmerksomhet fra en operatør. Telemetri består av hendelsesdata og logger samlet inn fra ulike deler av systemet, som lagres der de kan analyseres og spørres.

DevOps-team som presterer godt sørger for at de angir meningsfylte varsler som kan omsettes i handling og samler inn rik telemetri slik at de kan få innsikt fra store mengder data. Denne innsikten hjelper teamet med å dempe feil i sanntid og se hvordan de kan forbedre applikasjonen i fremtidige utviklingssykluser.

DevOps-verktøy

Team har mange DevOps-verktøy for å hjelpe dem å støtte en DevOps-kultur i organisasjonen deres. De fleste team avhenger av flere verktøy og bygger egendefinerte verktøyskjeder som passer med deres behov for hver fase i applikasjonslivssyklusen. Selv om bruk av et spesifikt verktøy eller en spesifikk teknologi er ikke det samme som å ta i bruk DevOps, når den definerte DevOps-kulturen er tilstede og prosessene er definerte, kan folk implementere og strømlinjeforme DevOps-praksiser hvis de velger riktige verktøy. Få verktøyene til å bruke DevOps i praksis:

DevOps og skyen

Skybruk har fundamentalt endret måten team bygger, distribuerer og driver applikasjoner. Sammen med bruken av DevOps, har team nå større mulighet for å forbedre praksisene deres og kan bedre betjene kundene deres.

Skysmidighet

Med muligheten til raskt å klargjøre og konfigurere skymiljøer i flere områder med ubegrensede ressurser får team smidighet når det gjelder å distribuere appene deres. I stedet for å måtte kjøpe, konfigurere og opprettholde fysiske servere, lager team komplekse skymiljøer på minutter og slår dem av igjen når de ikke lenger trengs.

Kubernetes

Etter hvert som flere og flere applikasjoner bruker beholderteknologi, blir Kubernates bransjeløsningen for instrumentering av beholdere i rett skala. Automatisering av prosessene med å bygge og distribuere beholdere via CI/CD-datasamlebånd og overvåking av disse beholderne i produksjon blir essensielle praksiser i tidsalderen til Kubernetes.

Serverløs databehandling

Med mesteparten av administrasjonen av infrastruktur flyttet til skyleverandøren, kan team fokusere på appene deres heller enn den underliggende infrastrukturen. Serverløs databehandling gir muligheten for å kjøre applikasjoner uten å konfigurere og opprettholde servere. Noen alternativer reduserer kompleksiteten og risikoen for distribusjon og drift.

Start DevOps-reisen din

Med alle de ulike tilgjengelige praksisene og løsningene, kan DevOps først virke overveldende. Nøkkelen er å starte i det små og lære av andre.

Vanlige spørsmål

  • DevOps praktiseres i ulike roller i en organisasjon og krever at flere av dem samarbeider tett. I de fleste tilfeller inkluderer DevOps-roller utvikling, IT, drift, sikkerhet og støtte.

    Finn ut hvordan du bygger en DevOps-fremgangsmåte.

  • DevOps er ikke begrenset til en enkelt rolle. Alle som tar del i hver applikasjonslivssyklusfasen må omfavne DevOps-kulturen. Men i enkelte organisasjoner er det et par personer eller team hvis eneste fokus er å muliggjøre automatisering, definere praksiser og implementere CI/CD-datasamlebånd. Noen ganger er den offisielle tittelen på disse rollene DevOps-tekniker eller DevOps-spesialist.
  • Bruk av DevOps i en stor organisasjon kan være ekstremt utfordrende. Endring av kulturen i en stor organisasjon så vel som standardisering av prosesser og verktøy krever tålmodighet og utholdenhet. I de fleste store organisasjoner finner man de som tar i bruk nye DevOps-praksiser raskt. Etter hvert som disse praksisene utvikler seg og gir positive resultater, følger vanligvis andre team etter – og starter DevOps-reisen sin.

    Lær hvordan team på tvers av Microsoft gikk over til en DevOps-kultur.

  • Den ekte meningen av DevOps handler om å levere kontinuerlig verdi til kunder. Resultatene av å bruke DevOps må måles sammenlignet med forretningsmål. DevOps-team er innrettet rundt disse målene og oppnår dem ved hjelp av korte utgivelsessykluser. Disse syklusene muliggjør smidig respons til markedet og kontinuerlig læring gjennom kundetilbakemelding.
  • Både DevOps og Agile er moderne programvareutviklingsrammeverk for å produsere et produkt, en lansering eller en utgivelse. DevOps er en kultur som fremmer samarbeid mellom alle rollene som er involvert i utvikling og vedlikehold av programvare. Agile er en utviklingsmetodikk designet for å opprettholde produktivitet og kjøre utgivelser med den vanlige realiteten av behov som endres. DevOps og Agile er ikke gjensidig utelukkende og praktiseres ofte sammen.

    Finn ut hvordan du innlemmer DevOps og Agile.

  • Sammen med kontinuerlig integrering er kontinuerlig levering og kontinuerlig distribusjon praksiser som automatiserer faser av programvarelevering.