article

Hur förhåller sig DevOps till SAFe?

Av Jesper Gunnarson

DevOps kulturen är här för att stanna och så är även olika sätt att skala upp agil systemutveckling, där ramverket SAFe just nu är ledande. SAFe tar sig an DevOps via något som förkortas CALMR. I denna artikel tittar vi närmare på vad denna förkortning avser.


C – Culture of Shared Responsibility

DevOps är en kultur och en samling koncept inom mjukvaruutveckling där målet är att kunna leverera värde till intressenterna oftare och samtidigt se till att ha en stabil och säker driftmiljö. Ansvaret för detta delas mellan utveckling (Development) och driftsättning (Operations). Historiskt sett är ofta dessa funktioner olika delar av en organisation eller helt olika organisationer. 

I DevOps har man en tolerans för fel och arbetar för att ha möjlighet till snabb återställning. Detta skiljer sig från traditionellt driftsättningsarbete där man vanligtvis förbereder sig länge inför varje driftsättning med både hängslen och livrem för att undvika alla typer av fel.

DevOps-kulturen liksom den agila kulturen handlar om att dela information, arbetssätt, verktyg och lärande, samt att undvika att arbeta i silos.

A - Automation

Inom DevOps anser man att manuella processer är ett hinder i att kunna leverera värde i snabb takt på ett kontrollerat sätt. Därför strävar man efter att automatisera så mycket som möjligt av driftsättningsprocessen. Detta innebär bland annat att kunna hantera och arbeta med flera olika miljöer (utveckling, test, staging och produktion) som måste vara så lika som möjligt. Därtill är det avgörande att den så kallade stagingmiljön är mer eller mindre identisk med produktionsmiljön.

Till detta automatiseras både funktions- och prestandatester så mycket det går för att undvika manuella regressionstester.

L - Lean Flow

För att optimera flöde av värde (fungerande mjukvara) behöver flaskhalsar identifieras och förhållandet mellan utveckling och förvaltning måste balanseras.

Några vanliga sätt att öka flödet och öka genomströmningen av värde är att begränsa det pågående arbetet (Work In Progress) i processen, dela upp i mindre arbetspaket och att försöka undvika att arbete ansamlas i långa köer vid vissa arbetsmoment.

M - Measure everything

Här handlar det om att mäta så mycket som möjligt. Detta omfattar bland annat att utföra kontinuerlig övervakning, lagra loggar samt information från driftsättningar. Tydlig övervakning av både miljöer och driftsättningar är viktigt.

R - Recovery

Eftersom målet är att kunna göra driftsättningar ofta och automatiskt behövs mekanismer att kunna återställa fel på ett enkelt och snabbt sätt. Därför behövs miljöer där både roll-back och fix forward kan göras.

Verktyg och metoder som "Feature Toogles", "Dark Launches", "Chaos Monkey" och "Canary Releases" är vanliga i detta sammanhang. På detta sätt minskas riskerna med en driftsättning.

Med CALMR som ledstjärna är det möjligt att skala upp DevOps att fungera i en SAFe implementation.

Kurser