Del 3. Snabba och säkra leveranser med Continuous Delivery Pipeline

Hur du lyckas med din digitala omställning

Varför är det så få som lyckas med sin digitala transformation och vad kan man göra för att undvika ett magplask när man dyker ner i den digitala eran? I denna artikelserie så tar vi en djupare blick på problemen som kan uppstå och ger dig svaren du letat efter för att lyckas

Publicerad: 06.03.2020

Hur du lyckas med din digitala omställning

Varför är det så få som lyckas med sin digitala transformation och vad kan man göra för att undvika ett magplask när man dyker ner i den digitala eran? I denna artikelserie så tar vi en djupare blick på problemen som kan uppstå och ger dig svaren du letat efter för att lyckas

Del 3 : Snabb och säker leverans med Continuous Delivery Pipeline

En bra kultur och bra praxis men utan automation så kommer din DevOps-fabrik aldrig att lyckas. Det viktigaste med automatisering är att besegra är det mänskliga faktorn. Man förlorar 100-tals timmar på att göra alla tester och kontroller manuellt. Med hjälp av automation så kommer man till produktion mycket snabbare och med en bättre och felfri slutprodukt. För att lösa problemet med de mänskliga faktorn så kommer vi använda oss av en del verktyg. Det finns två koncept att implementera för att leverera produkter och tjänster effektivt och kvalitativt: Continuous Delivery Pipeline och Agile Testing. I denna artikel så kommer vi att prata om Pipelines.

Historia

Continuous Delivery Pipeline är den del av continuous integration & delivery (CI/CD) ett arbetssätt som växt fram ur den agila revolutionen.  Continuous delivery har alltid varit ett mål i det agila tankesättet men det är inte förens ca 2015 som tekniken på riktigt har funnits där för att göra det till en verklighet. CI/CD verktyg som originalet Jenkins, CircleCI, AWS CodeBuild, Azure DevOps, Atlassian Bamboo, or Travis CI är några de som pushat tekniken framåt.

Tre stora fördelar med pipelines

Hastighet
Att bygga och underhålla en pipeline ger möjlighet att leverera ny funktionalitet i dagliga utgåvor, ibland även så snabbt att man kan hinna med nya utgåvor flera gånger per dag. Detta hjälper företag att svara på marknadsförändringar bättre och snabbare.

Produktivitet
Produktiviteten ökar när tråkiga och repetitiva uppgifter, som att fylla i en felrapport för varje upptäckt bugg, kan utföras av en pipeline istället för människor. Detta låter teamen fokusera på visionen och att vara kreativa medan pipelines gör verkställandet. Detta innebär glada team som är mer engagerade. Och kan hålla högre kvalitet då de får fokusera på det som är roligt.

Hållbarhet
Att arbeta hårt dygnet runt kommer att leda till tidig utbrändhet. Istället, arbeta smart och delegera det repetitiva arbetet till maskiner, som förresten inte behöver kaffepauser och inte pratar tillbaka! Varje organisation, oavsett om det är ett teknikföretag eller inte, använder teknik för att dela upp uppgifter. Automatiserade Pipelines minskar manuellt arbete och leder till eventuella besparingar eftersom personal är dyrare än verktyg.

Tre stora fördelar med pipelines

Hastighet
Att bygga och underhålla en pipeline ger möjlighet att leverera ny funktionalitet i dagliga utgåvor, ibland även så snabbt att man kan hinna med nya utgåvor flera gånger per dag. Detta hjälper företag att svara på marknadsförändringar bättre och snabbare.

Produktivitet
Produktiviteten ökar när tråkiga och repetitiva uppgifter, som att fylla i en felrapport för varje upptäckt bugg, kan utföras av en pipeline istället för människor. Detta låter teamen fokusera på visionen och att vara kreativa medan pipelines gör verkställandet. Detta innebär glada team som är mer engagerade. Och kan hålla högre kvalitet då de får fokusera på det som är roligt.

Hållbarhet
Att arbeta hårt dygnet runt kommer att leda till tidig utbrändhet. Istället, arbeta smart och delegera det repetitiva arbetet till maskiner, som förresten inte behöver kaffepauser och inte pratar tillbaka! Varje organisation, oavsett om det är ett teknikföretag eller inte, använder teknik för att dela upp uppgifter. Automatiserade Pipelines minskar manuellt arbete och leder till eventuella besparingar eftersom personal är dyrare än verktyg.

Vad är en Continuous Delivery Pipeline?

En pipeline kan definieras som de bearbetningssteg källkoden går igenom. Det innefattar pull requests, kodgranskningar, tester och hantering av dess resultat för att öppna grindar för Test Deployment och Staging Deployment miljöerna och sedan slutligen produktionsmiljö. Pipelines bearbetar inte bara programvarukoden utan också infrastrukturen som koden kommer att köras på och de övervaknings-möjligheter som kommer att användas i underhållsfasen för programvarans livscykel.

Grunden som vi bygger vår pipeline på

Källkodskvaliteten verifieras och testas emot Definition of Done (DoD) i varje steg av pipelinen. I denna definition bestäms vad som måste vara uppfyllt för att en uppgift ska kunna definieras som ”klar”. Ett exempel ur IT-perspektiv kan vara att koden måste vara skriven på ett korrekt sätt och vissa typer av tester måste vara genomförda och godkända för att uppgiften ska få kallas klar. Detta är grunden som en pipeline är byggd på.

Så här fungerar en Continuous Delivery Pipeline

Föreställ dig att kunden har beställt en webbapplikation som kommer att distribueras på live webbservrar. Du kommer att ha en uppsättning utvecklare som är ansvariga för att skriva koden. Utvecklarna matar in koden i pipelinen och första steget är build-fasen.

Build

Förutsätt att vi har en Java-kod och den måste sammanställas innan den körs. Då är det i build-fasen som den sammanfogar alla funktioner och kompileras. Nu är koden binär, den testas emot DOD och skickas vidare till Test Deployment.

Test Deployment

När build-fasen är över går du vidare till test-fasen. I den här fasen har vi olika typer av tester, en av dem är unit test (där du testar en unit av programvaran eller utför ett sanity test), och sedan skickas tillbaka till utvecklaren med ett resultat om koden är godkänd eller ej.

Staging Deployment

När testet är avslutat går du vidare till Staging Deployment-fasen, där du distribuerar det i en iscensättning eller en testserver. Här kan du se koden eller se appen i en simulator.

Produktion

När koden har distribuerats framgångsrikt görs några sista tester innan den är redo för produktion och leverans till kund!

Nästa del i artikelserien

Nu när vi har koll på Pipelines vet vi hur man effektiv och säkert levererar en produkt. Nästa steg att lyckas med en digital omställning är att sätta upp en agil arkitekturen men hjälp av Microservices. Håll dig uppdaterat på vår Linkedin eller Facebook för att inte missa nästa del av denna serien.

Läs hela artikelserien