Vad är DevOps?

Lär dig hur DevOps förenar människor, processer och teknik för att snabbt ge bättre produkter till kunder

Definitionen av DevOps

DevOps är en sammansättning av Dev (development – utveckling) och Ops (operations – drift) och är föreningen av människor, process och teknik för att ge fortsatt mervärde till kunderna.

Vad betyder DevOps för teamen? Med DevOps kan tidigare siloroller – utveckling, IT, kvalitetsteknik och säkerhet – samordna och samarbeta för att producera bättre, pålitligare produkter. Genom att anta en DevOps-kultur tillsammans med DevOps-metoder och -verktyg får teamen förmågan att bättre kunna svara på kundernas behov, öka tillförsikten i apparna de skapar och uppnå affärsmål snabbare.

Fördelarna med DevOps

Team som har infört DevOps-kultur, -metoder och -verktyg blir högpresterande och skapar bättre produkter snabbare för större kundtillfredsställelse. De här förbättrade funktionerna för samarbete och produktivitet är också väsentliga för att uppnå följande affärsmål:

Kortare tid till marknaden

Anpassning efter marknad och konkurrens

Bibehåller systemets stabilitet och tillförlitlighet

Förbättrar snittiden för återställning

DevOps och applivscykeln

DevOps influerar applivscykeln genom dess planerings-, utvecklings-, leverans- och körningsfaser. Varje fas är beroende av de andra, och faserna är inte rollspecifika. I en sann DevOps-kultur är alla roller inblandande i varje fas i viss utsträckning.

Plan

I planeringsfasen bildar DevOps-teamen sig en uppfattning om, definierar och beskriver funktioner och egenskaper hos appar och system de skapar. De spårar förloppet på låg och hög detaljnivå – från uppgifter för enskilda produkter till uppgifter som rör hela portföljer med flera produkter. Skapa poster för kvarvarande uppgifter, spåra buggar, hantera smidig programutveckling med Scrum, använda Kanban-tavlor och visualisera framsteg med instrumentpaneler är några sätt som DevOps-team planerar med smidighet och synlighet.

Utveckla

Utvecklingsfasen omfattar alla aspekter av kodning – skriva, testa och granska samt integreringen av kod av teammedlemmar – samt bygga in den koden i artefakter som kan distribueras till olika miljöer. DevOps-teamen vill skapa innovationer snabbt utan att offra kvalitet, stabilitet och produktivitet. För att göra det använder de högproduktiva verktyg, automatiserar vardagliga och manuella steg och itererar i små steg genom automatiserad testning och kontinuerlig integrering.

Leverera

Leverans är processen med att distribuera appar till produktionsmiljöer på en konsekvent och tillförlitligt sätt. Leveransfasen omfattar även att distribuera och konfigurera det fullständigt styrda grundinfrastrukturen som utgör dessa miljöer.

I leveransfasen definierar teamen en versionshanteringsprocess med tydliga manuella godkännandesteg. De anger även automatiska portar som flyttar appar mellan olika steg tills de görs tillgängliga för kunder. Automatisering av dessa processer gör dem skalbara, upprepningsbara och kontrollerade. På så sätt kan team som använder sig av DevOps leverera med lätthet, tillförsikt och trygghet.

Körning

Körningsfasen omfattar underhåll, övervakning och felsökning av appar i produktionsmiljöer. I införandet av DevOps-metoder arbetar teamen för att säkerställa systemtillförlitlighet, hög tillgänglighet och siktar på noll stilleståndstid, och stärker samtidigt säkerhet och styrning. DevOps-teamen vill identifiera problem innan de påverkar kundupplevelsen och åtgärda problemen snabbt när de inträffar. Att upprätthålla den här vaksamheten kräver avancerad telemetri, användbara varningar och fullständig insyn i appar och de underliggande systemen.

DevOps-kultur

Införande av DevOps-metoder och optimerar processer genom teknik, men allt börjar med kulturen inom organisationen – och de människor som spelar en roll i den. Utmaningen med att odla en DevOps-kultur kräver djupgående förändringar i hur människor arbetar och samarbetar. Men när organisationer engagerar sig i en DevOps-kultur kan de skapa en miljö där högpresterande team kan utvecklas.

Samarbete, synlighet och inriktning

Ett kännetecken på en sund DevOps-kultur är samarbetet mellan team, som har sin utgångspunkt i synlighet. Olika team som utveckling och IT måste dela sina DevOps-processer, -prioriteringar och -bekymmer med varandra. Dessa team måste även planera arbetet tillsammans samt jobba efter samma mål och framgångsmått då de relaterar till verksamheten.

Skiften i omfattning och ansvarighet

När riktar in sig efter varandra övertar de ägarskapet och blir involverade i flera livscykelfaser – inte bara sådana som är centrala för deras roller. Till exempel blir utvecklare ansvariga inte bara för innovation och kvalitet som etableras i utvecklingsfasen, utan även för den prestanda och stabilitet som deras ändringar för med sig i körningsfasen. Samtidigt ser IT-operatörer till att inkludera styrning, säkerhet och efterlevnad i planerings- och utvecklingsfasen.

Kortare utgivningscykler

DevOps-teamen behåller sin smidighet genom att släppa programvara i korta cykler. Kortare utgivningscykler gör planeringen och riskhanteringen lättare eftersom förloppet sker stegvis, vilket även minskar påverkan på systemstabiliteten. Med en förkortad utgivningscykel kan organisationer även anpassa sig efter och reagera på framväxande kundbehov och konkurrenstryck.

Kontinuerlig inlärning

Högpresterande DevOps-team etablerar ett tillväxttänkande. De misslyckas snabbt och tar med lärdomar i sina processer, med ständiga förbättringar, ökad kundtillfredsställelse och accelererande innovationer och marknadsanpassning. DevOps är en resa, så det finns alltid utrymme att växa.

Se hur team hos Microsoft införde en DevOps-kultur

Läs mer

DevOps-metoder

Utöver att etablera en DevOps-kultur väcker teman liv i DevOps genom att implementera vissa metoder genom applivscykeln. Vissa av dessa metoder hjälper till att accelerera, automatisera och förbättra en specifik fas. Andra spänner över flera faser och hjälper teamen att skapa sömlösa processer som hjälper till att förbättra produktiviteten.

Kontinuerlig integrering och kontinuerlig leverans (CI/CD)

Kontinuerlig integrering är en programutvecklingsmetod där utvecklare slår samman kodändringar ofta i huvudkodgrenen. Kontinuerlig integrering använder sig av automatiserad testning, som körs varje gång ny kod sparas så att koden i huvudgrenen alltid är stabil.

Kontinuerlig leverans är den frekventa, automatiska distributionen av nya appversioner till en produktionsmiljö. Genom att automatisera de steg som krävs för distribution minskar teamen de problem som kan inträffa vid distribution och möjliggöra tätare uppdateringar.

När båda metoderna är på plats är den resulterande processen CI/CD, som omfattar den fullständig automatiseringen av alla steg mellan sparad kod till produktionsdistribution. Med implementering av CI/CD kan teamen fokusera på att bygga kod och tar bort arbetet och potentiella mänskliga fel i manuella, vardagliga steg. CI/CD gör även processen med att distribuera ny kod snabbare och mindre riskabel. Distributioner sker sedan oftare och i mindre steg, vilket hjälper teamen att bli smidigare, mer produktiva och tryggare i deras kod som körs.

Versionskontroll

Versionskontroll är metoden att hantera kod i versioner – spåra revideringar och ändringshistorik för att göra koden enkel att granska och återställa. Den här metoden implementeras normalt med hjälp av versionskontroll som Git, som tillåter att flera utvecklare samarbetar med redigeringen av kod. De här systemen ger en tydlig process för att slå samman kodändringar som sker i samma filer, hantera konflikter och rulla tillbaka ändringar till tidigare tillstånd.

Användningen av versionskontroll är en grundläggande DevOps-metod som hjälper utvecklingsteam att arbeta tillsammans, dela upp kodningsuppgifter mellan teammedlemmar och lagra alla kod för enkel återställning vid behov.

Versionskontroll är även en nödvändig del i andra metoder som kontinuerlig integrering och infrastruktur som kod.

Läs mer om Git

Agile-programutveckling

Agile is a software development approach that emphasizes team collaboration, customer and user feedback, and high adaptability to change through short release cycles. Teams that practice Agile provide continual changes and improvements to customers, collect their feedback, then learn and adjust based on customer wants and needs. Agile is substantially different from other more traditional frameworks such as waterfall, which includes long release cycles defined by sequential phases. Kanban and Scrum are two popular frameworks associated with Agile.

Learn how Agile and DevOps work together

Infrastruktur som kod

Infrastruktur som kod definierar systemresurser och topologier på ett beskrivande sätt som gör att teamen kan hantera dessa resurser på samma sätt som kod. Dessa definitioner kan även lagras och versionshanteras i versionskontrollsystem, där de kan granskas och återställas – återigen på samma sätt som kod.

Genom att använda infrastruktur som kod kan teamen distribuera systemresurser på ett tillförlitligt, upprepningsbart och kontrollerat sätt. Infrastruktur som kod hjälper även till att automatisera distribution och minskar risken för mänskliga fel, särskilt för komplexa stora miljöer. Med den här upprepningsbara, pålitliga lösningen för miljödistribution kan teamen ha utvecklings- och testningsmiljöer som är identiska med produktion. Duplicering av miljöer i olika datacenter och molnplattformar blir också enklare och effektivare.

Konfigurationshantering

Konfigurationshantering innebär att hantera tillståndet för resurser i ett system, som servrar, virtuella datorer och databaser. Med hjälp av konfigurationshanteringsverktyg kan teamen rulla ut ändringar på ett kontrollerat, systematiskt sätt, och därmed minska riskerna för att modifiera systemkonfigurationen. Teamen använder konfigurationshanteringsverktyg för att spåra systemtillståndet och hjälpa till att undvika konfigurationsförändringar, som är hur en systemresurs konfiguration avviker över tid från det önskade tillstånd som har definierats för den.

Systemdefinition och -konfiguration används tillsammans med infrastruktur som kod, och båda är enkla mallifiera och automatisera, vilket hjälper teamen att köra komplexa miljöer skalanpassat.

Kontinuerlig övervakning

Kontinuerlig övervakning innebär att fullständig insyn i realtid i hela programstackens prestanda och status, från den underliggande infrastrukturen som kör appen till programkomponenterna på högre nivå. Denna insyn består av insamlingen av telemetridata och metadata samt inställningar av varningar för fördefinierade villkor som kräver uppmärksamhet av en operatör. Telemetri omfattar händelsedata och -loggar som samlas in från olika delar av systemet, som lagras där de kan analyseras och köras frågor på.

Högpresterande DevOps-team ser till att ange användbara, meningsfulla varningar och samla in innehållsrika telemetridata så att de kan analysera enorma mängder data. Med denna information kan teamet åtgärda problem i realtid och se hur de kan förbättra appen i framtida utvecklingscykler.

DevOps-verktyg

Teamen har många DevOps som hjälper dem att verka för en DevOps-kultur i deras organisation. De flesta team förlitar sig på flera verktyg och skapar verktygskedjor som passar deras behov för varje fas i applivscykeln. Att införa ett visst verktyg eller en viss teknik är inte detsamma som att införa DevOps, men när det finns en DevOps-kultur och processerna är definierade kan DevOps-metoder implementeras och effektiviseras om rätt verktyg väljs. Skaffa verktygen för att sätta DevOps i verket:

DevOps och molnet

Flytten till molnet har inneburit en fundamental omvandling av det sätt som teamen skapar, distribuerar och kör appar. Tillsammans med införandet av DevOps har teamen nu större möjligheter att förbättra sina metoder och ge bättre service till sina kunder.

Smidighet i molnet

Med förmågan att snabbt etablera och konfigurera molnmiljöer för flera miljöer med obegränsade resurser kan teamen snabbt och smidigt distribuera sina appar. Istället för att behöva köpa, konfigurera och underhålla fysiska servrar kan teamen nu skapa komplexa molnmiljöer på några minuter och sedan stänga ned dem när de inte längre behövs.

Kubernetes

Då allt fler appar använder containerteknik blir Kubernetes branschlösningen för orkestrering av containrar skalanpassat. Automatisering av processerna för att skapa och distribuera containrar via CI/CD-pipelines och övervaka dessa containrar i produktion håller på att bli nödvändiga metoder i Kubernetes tidsålder.

Databearbetning utan server

Då det mesta av arbetet med att hantera infrastruktur flyttas till molnleverantören kan teamen fokusera på sina appar istället för på den underliggande infrastrukturen. Serverlös databehandling ger smidigheten att köra appar utan att konfigurera och underhålla servrar. Vissa alternativ minskar komplexiteten och distributions- och verksamhetsrisker.

Påbörja din resa med DevOps

Med alla olika tillgängliga metoder och lösningar kan DevOps till en början kännas överväldigande. Nyckeln är att börja i liten skala och lära sig av andra.

Vanliga frågor och svar

  • DevOps is practiced across different roles in an organization and requires several of them to collaborate closely. In most cases, DevOps roles include development, IT, operations, security, and support.

    Learn to build a DevOps practice.

  • DevOps är inte begränsat till en enda roll. Alla som deltar i appens livscykelfaser måste anta DevOps-kulturen. Men i vissa organisationer finns det några personer eller team vars enda fokus är att möjliggöra automatisering, definiera metoder och implementera CI/CD-pipelines. Ibland är den officiella titeln för dessa roller DevOps-tekniker eller DevOps-specialist.
  • Det kan vara extremt utmanande att införa DevOps i en stor organisation. Att ändra kulturen för en stor organisation och standardisera processer och verktyg kräver tålamod och uthållighet. I de flesta stora organisationer finns det tidiga användare av DevOps-metoder. Då dessa metoder mognar och ger positiva resultat följer oftast andra team efter – och påbörjar sin DevOps-resa.

    Upptäck hur team hos Microsoft införde en DevOps-kultur.

  • Den verkliga meningen med DevOps handlar om att ständigt ge kunderna mervärde. Resultatet när DevOps har införts måste mätas i förhållande till verksamhetsmål. DevOps-teamen samlas kring dessa mål och uppnår dem med hjälpa av korta utgivningscykler. Dessa cykler tillåter smidiga svar på marknaden och kontinuerlig inlärning via kundfeedback.
  • Both DevOps and Agile are modern software development frameworks for producing a product, a launch, or a release. DevOps is a culture, fostering collaboration among all roles involved in the development and maintenance of software. Agile is a development methodology designed to maintain productivity and drive releases with the common reality of changing needs. DevOps and Agile are not mutually exclusive and are often practiced together.

    Learn to incorporate DevOps and Agile.

  • Tillsammans med kontinuerlig integrering är kontinuerlig leverans och kontinuerlig distribution metoder som automatiserar programleveransens faser.