's Picture

Deploy it! Deploy it! Deploy it!

Postad av Joel Abrahamsson

Vi har en utvecklingsfilosofi på Expressen Utveckling. Den har flera komponenter. Exempelvis tror vi på att ha produktägare nära våra utvecklingsteam. Till och med så nära att produktägarna är medlemmar i teamen. En annan är att vi tror starkt på parprogrammering, eller rent av mobbprogrammering. Detta då det viktigaste inte är hur många rader kod vi producerar utan att den kod vi skriver är rätt kod.

Så fort någonting kan sättas i produktion ska det vara i produktion!

Ytterligare en komponent i vår filosofi är att vi kontinuerligt och ofta deployar till produktion. Denna är viktig. Dels är kod/design/funktionalitet/buggfixar som är utvecklade men inte driftsatta motsvarigheten till en fysisk vara som ligger på lagret istället för att möta konsumenter i butikshyllorna eller ge värde för den som köpt varan. Men, för oss finns det ett ännu viktigare skäl till att vi vill deploya ofta: vi kallar oss för Sveriges modigaste utvecklingsavdelning. För att kunna leva upp till det kan vi inte ha någon rädsla i organisationen. En vanlig rädsla inom utveckling är oro för vad som händer vid driftsättning. Botemedlet är att driftsätta ofta. Så fort någonting kan sättas i produktion ska det vara i produktion!

Sedan vi drog igång Expressen Utveckling i oktober 2013 har vi jobbat aktivt med att få till (mycket) frekventa releaser. Vi kom ganska tidigt dit och har sedan lång tid tillbaka haft en kultur där vi inte bygger lager och rädsla utan driftsätter kontinuerligt. Jämt och ständigt. Så, allt är gott. Men, det är lätt att bli bekväm och glömma bort de mest välfungerande "rutiner". Därför bestämde vi oss i somras för att visualisera våra driftsättningar.

Möt Ollie

Vår lösning, som säkert kommer att behöva vidareutvecklas i framtiden, blev en dashboard vid namn Ollie (döpt efter karaktären i den lilla sjöjungfrun). Så här ser han ut:

Ollie strax efter sin födsel. Topplistan över senaste 30 dagarna ovan är snarare de senaste 10 dagarna :-)
Ollie strax efter sin födsel. Topplistan över senaste 30 dagarna ovan är snarare de senaste 10 dagarna :-)

Ollie är ett ganska enkelt system. Han exponerar en HTTP endpoint som kan användas för att meddela honom när en deploy påbörjas och när den avslutas. I anropet skickar man med vilken applikation som håller på att driftsättas, till vilken miljö samt vilken Git-commit det är. Detta lagrar Ollie i ElasticSearch. Den samlade datan använder han för att presentera en dashboard som vi visar på skärmar på kontoret.

På dashboarden kan man se de senaste driftsättningarna (inklusive om någon är pågående), vilka applikationer som är mest frekvent driftsatta de senaste 30 dagarna. Den visar också totalt antal driftsättningar till produktion.

Med hjälp av Ollie får vi en enkel överblick över huruvida vi lever upp till vårt eget mål att driftsätta ofta. Vi får också ett moment av gameification där vi triggar oss själva att driftsätta ofta.

PS. Missa inte vår nästa bloggpost, följ oss på Twitter!

Till startsidan