Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
DevOps kombinerar utveckling (Dev) och drift (Ops) för att förena människor, processer och teknik inom programplanering, utveckling, leverans och drift. DevOps möjliggör samordning och samarbete mellan tidigare siloade roller som utveckling, IT-drift, kvalitetsutveckling och säkerhet.
Teamen implementerar DevOps-kultur, metoder och verktyg för att öka förtroendet för de program de skapar, svara bättre på kundernas behov och uppnå affärsmål snabbare. DevOps hjälper teamen att kontinuerligt ge kunderna mervärde genom att producera bättre och mer tillförlitliga produkter.
DevOps och programmets livscykel
DevOps påverkar programmets livscykelunder planerings-, utvecklings-, leverans- och driftfaserna . Varje fas förlitar sig på de andra faserna och faserna är inte rollspecifika. En DevOps-kultur omfattar alla roller i varje fas i viss utsträckning.
Följande diagram illustrerar faserna i DevOps-programmets livsstil:
DevOps-mål och fördelar
När ett team antar DevOps-kultur, metoder och verktyg kan de uppnå fantastiska saker:
Förkorta tiden till marknaden
Genom ökad effektivitet, förbättrat teamsamarbete, automatiseringsverktyg och kontinuerlig distribution kan team snabbt minska tiden från produktstart till marknadslansering.
Anpassa sig till marknaden och konkurrensen
En DevOps-kultur kräver att teamen har ett kundfokus. Genom att gifta sig med flexibilitet, teamsamarbete och fokusera på kundupplevelsen kan team kontinuerligt leverera värde till sina kunder och öka sin konkurrenskraft på marknaden.
Upprätthålla systemstabilitet och tillförlitlighet
Genom att införa kontinuerliga förbättringsmetoder kan teamen skapa ökad stabilitet och tillförlitlighet för de produkter och tjänster som de distribuerar. Dessa metoder bidrar till att minska fel och risker.
Förbättra den genomsnittliga tiden till återställning
Genomsnittlig tid till återställningsmått anger hur lång tid det tar att återställa från ett fel eller en överträdelse. För att hantera programvarufel, säkerhetsöverträdelser och kontinuerliga förbättringsplaner bör teamen mäta och arbeta för att förbättra det här måttet.
Anta en DevOps-kultur
Om du vill implementera DevOps fullt ut måste du använda en DevOps-kultur. Att odla en DevOps-kultur kräver djupgående förändringar i hur människor arbetar och samarbetar. När organisationer engagerar sig i en DevOps-kultur skapar de en miljö där högpresterande team kan utvecklas. När du implementerar DevOps-metoder automatiserar och optimerar processer via teknik, utan en övergång till en DevOps-kultur inom organisationen och dess personer, får du inte de fulla fördelarna med DevOps.
Följande bild innehåller viktiga aspekter av Microsofts livewebbplatskultur.
Följande metoder är viktiga komponenter i en DevOps-kultur:
- Samarbete, synlighet och anpassning: Ett kännetecken för en hälsosam DevOps-kultur är samarbete mellan team. Samarbetet börjar med synlighet. Utveckling, IT och andra team bör dela sina DevOps-processer, prioriteringar och problem med varandra. Genom att planera sitt arbete tillsammans är de bättre positionerade för att anpassa sig till mål och mått på framgång när de relaterar till verksamheten.
- Förändringar i omfång och ansvarsskyldighet: När teamen anpassar sig tar de ansvar och engagerar sig i andra livscykelfaser – inte bara de som är centrala för deras roller. Utvecklare blir till exempel ansvariga inte bara för den innovation och kvalitet som etablerades i utvecklingsfasen, utan även för de prestanda och den stabilitet som deras förändringar medför i driftfasen. Samtidigt är IT-operatörerna säkra på att inkludera styrning, säkerhet och efterlevnad i planen och utvecklingsfasen.
- Kortare lanseringscykler: DevOps-team förblir flexibla genom att släppa programvara i korta cykler. Kortare versionscykler gör det enklare att planera och hantera risker eftersom förloppet är inkrementellt, vilket också minskar påverkan på systemets stabilitet. Genom att förkorta lanseringscykeln kan organisationer också anpassa sig och reagera på växande kundbehov och konkurrenstryck.
- Kontinuerlig inlärning: Högpresterande DevOps-team skapar ett tillväxttänk. De misslyckas snabbt och införlivar lärdomar i sina processer. De strävar efter att kontinuerligt förbättra, öka kundnöjdheten och påskynda innovation och marknadsanpassning.
Implementera DevOps-metoder
Du implementerar DevOps genom att följa DevOps-metoder (beskrivs i avsnitten som följer) under hela programmets livscykel. Vissa av dessa metoder hjälper till att påskynda, automatisera och förbättra en specifik fas. Andra sträcker sig över flera faser och hjälper team att skapa sömlösa processer som hjälper till att förbättra produktiviteten.
Kontinuerlig integrering och kontinuerlig leverans (CI/CD)
Kontinuerlig integrering (CI) är den praxis som används av utvecklingsteam för att automatisera, slå samman och testa kod. CI hjälper till att fånga buggar tidigt i utvecklingscykeln, vilket gör dem billigare att åtgärda. Automatiserade tester körs som en del av CI-processen för att säkerställa kvalitet. CI-system producerar artefakter och matar dem till lanseringsprocesser för att driva frekventa distributioner.
Kontinuerlig leverans (CD) är en process där kod skapas, testas och distribueras till en eller flera test- och produktionsmiljöer. Om du distribuerar och testar i flera miljöer ökar kvaliteten. CD-system producerar distribuerade artefakter, inklusive infrastruktur och appar. Automatiserade lanseringsprocesser använder dessa artefakter för att släppa nya versioner och korrigeringar till befintliga system. System som övervakar och skickar aviseringar körs kontinuerligt för att öka insynen i hela CD-processen.
Versionskontroll
Versionskontroll är en metod för att hantera kod i versioner – spåra revisioner och ändringshistorik för att göra koden enkel att granska och återställa. Den här metoden implementeras vanligtvis med hjälp av versionskontrollsystem som Git, vilket gör att flera utvecklare kan samarbeta i redigeringskoden. Dessa system ger en tydlig process för att sammanfoga kodändringar som sker i samma filer, hantera konflikter och återställa ä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 all kod för enkel återställning om det behövs. Versionskontroll är också ett nödvändigt element i andra metoder, till exempel kontinuerlig integrering och infrastruktur som kod.
Flexibel programvaruutveckling
Agile är en metod för programvaruutveckling som betonar teamsamarbete, kund- och användarfeedback och hög anpassningsbarhet för att förändras genom korta lanseringscykler. Team som övar agil ger ständiga ändringar och förbättringar till kunder, samlar in feedback och lär sig sedan och anpassar sig baserat på kundens önskemål och behov. Agil skiljer sig avsevärt från andra mer traditionella ramverk, till exempel vattenfall, som innehåller långa versionscykler som definieras av sekventiella faser. Kanban och Scrum är två populära ramverk som är associerade med Agile.
Infrastruktur som kod
Infrastruktur som kod definierar systemresurser och topologier på ett beskrivande sätt som gör det möjligt för team att hantera dessa resurser på samma sätt som de skulle koda. Dessa definitioner kan också lagras och versionshanteras i versionskontrollsystem, där de kan granskas och återställas – återigen som kod.
Genom att använda infrastruktur som kod kan team distribuera systemresurser på ett tillförlitligt, repeterbart och kontrollerat sätt. Infrastruktur som kod hjälper också till att automatisera distributionen och minskar risken för mänskliga fel, särskilt för komplexa stora miljöer. Med den här repeterbara, tillförlitliga lösningen för miljödistribution kan teamen underhålla utvecklings- och testmiljöer som är identiska med produktionen. Duplicering av miljöer till olika datacenter och molnplattformar blir också enklare och effektivare.
Konfigurationshantering
Konfigurationshantering avser hantering av tillståndet för resurser i ett system, inklusive servrar, virtuella datorer och databaser. Med hjälp av konfigurationshanteringsverktyg kan team distribuera ändringar på ett kontrollerat, systematiskt sätt, vilket minskar risken för att ändra systemkonfigurationen. Teams använder konfigurationshanteringsverktyg för att spåra systemtillstånd och hjälpa till att undvika konfigurationsavvikelser, vilket är hur en systemresurss konfiguration avviker över tid från det önskade tillstånd som definierats för den.
Tillsammans med infrastruktur som kod är det enkelt att templatera och automatisera systemdefinitioner och konfigurationer, vilket hjälper team att hantera komplexa miljöer i stor skala.
Kontinuerlig övervakning
Kontinuerlig övervakning innebär att ha fullständig insyn i prestanda och hälsa för hela programstacken i realtid. Den här synligheten sträcker sig från den underliggande infrastrukturen som kör programmet till programvarukomponenter på högre nivå. Synlighet uppnås genom insamling av telemetri och metadata och inställning av aviseringar för fördefinierade villkor som kräver uppmärksamhet från en operatör. Telemetri består av händelsedata och loggar som samlats in från olika delar av systemet, som lagras där de kan analyseras och frågas.
Högpresterande DevOps-team ser till att de ställer in användbara, meningsfulla aviseringar och samlar in omfattande telemetri så att de kan hämta insikter från stora mängder data. Dessa insikter hjälper teamet att åtgärda problem i realtid och se hur du kan förbättra programmet i framtida utvecklingscykler.
Planering
I planeringsfasen kan DevOps-teamen skapa, definiera och beskriva funktionerna i de program och system som de planerar att bygga. Team spårar aktivitetsframsteg på låg och hög kornighetsnivå, från enskilda produkter till flera produktportföljer. Teams använder följande DevOps-metoder för att planera med flexibilitet och synlighet:
- Skapa kvarvarande uppgifter.
- Spåra buggar.
- Hantera agil programvaruutveckling med Scrum.
- Använd Kanban-tavlor.
- Visualisera förloppet med instrumentpaneler.
En översikt över de flera lärdomar och metoder som Microsoft har antagit för att stödja DevOps-planering i företagets programvaruteam finns i How Microsoft plans with DevOps (Hur Microsoft planerar med DevOps).
Utveckling
Utvecklingsfasen omfattar alla aspekter av utveckling av programvarukod. I den här fasen utför DevOps-teamen följande uppgifter:
- Välj en utvecklingsmiljö.
- Skriva, testa, granska och integrera koden.
- Skapa koden i artefakter som ska distribueras till olika miljöer.
- Använd versionskontroll, vanligtvis Git, för att samarbeta om kod och arbeta parallellt.
DevOps-teamen vill förnya snabbt utan att offra kvalitet, stabilitet och produktivitet:
- Använd mycket produktiva verktyg.
- Automatisera vardagliga och manuella steg.
- Iterera i små steg genom automatiserad testning och kontinuerlig integrering (CI).
En översikt över de utvecklingsmetoder som Microsoft har infört för att stödja övergången till DevOps finns i How Microsoft develops with DevOps (Så utvecklas Microsoft med DevOps).
Leverera
Leverans är en process för att konsekvent och tillförlitligt distribuera program till produktionsmiljöer, helst via kontinuerlig leverans (CD).
I leveransfasen: DevOps-team:
- Definiera en versionshanteringsprocess med tydliga manuella godkännandesteg.
- Ställ in automatiserade portar för att flytta program mellan faser tills den slutliga versionen har släppts till kunderna.
- Automatisera leveransprocesser för att göra dem skalbara, repeterbara, kontrollerade och väl testade.
Leverans omfattar även distribution och konfiguration av leveransmiljöns grundläggande infrastruktur. DevOps-team använder tekniker som infrastruktur som kod (IaC), containrar och mikrotjänster för att leverera fullständigt styrda infrastrukturmiljöer.
Säkra distributionsmetoder kan identifiera problem innan de påverkar kundupplevelsen. Dessa metoder hjälper DevOps-team att leverera ofta med lätthet, förtroende och sinnesfrid.
Grundläggande DevOps-principer och processer som Microsoft har utvecklat för att tillhandahålla effektiva leveranssystem beskrivs i Hur Microsoft levererar programvara med DevOps.
Operations
Driftfasen omfattar underhåll, övervakning och felsökning av program i produktionsmiljöer, inklusive hybridmoln eller offentliga moln som Azure. DevOps-team strävar efter systemtillförlitlighet, hög tillgänglighet, stark säkerhet och noll driftstopp.
Metoder för automatiserad leverans och säker distribution hjälper teamen att identifiera och åtgärda problem snabbt när de inträffar. För att upprätthålla vaksamhet krävs omfattande telemetri, åtgärdsaviseringar och fullständig insyn i program och underliggande system.
Metoder som Microsoft använder för att driva komplexa onlineplattformar beskrivs i Hur Microsoft använder tillförlitliga system med DevOps.
Nästa steg
- Planera effektiva arbetsbelastningar med DevOps
- Utveckla modern programvara med DevOps
- Leverera kvalitetstjänster med DevOps
- Använda tillförlitliga system med DevOps
Andra resurser
- DevOps-lösningar i Azure
- DevOps-resan på Microsoft
- Börja göra DevOps med Azure
- Säkerhet i DevOps (DevSecOps)
- Vad är plattformsteknik?
Utbildning och certifieringar
- Kom igång med Azure DevOps
- Presentera DevOps Dojo: Skapa effektivitetsvinster som stöder ditt företag
- AZ-400: Kom igång med en DevOps-transformeringsresa
- Underlätta kommunikation och samarbete
- Exam AZ-400: Utforma och implementera Microsoft DevOps-lösningar
- AZ-400: Implementera säkerhet och validera kodbaser för efterlevnad