Av: Weikko Aejmelaeus

2015-06-22

Trendspaning: Är dina servrar husdjur eller boskap?

Den 15-19:e juni pågick Norwegian Developer Conference i Oslo. Konferensen har en klar .NET-inrikting, men tar även upp saker som arkitektur och de “mjuka sakerna” kring arbetsprocesser.

De stora trenderna kring mjukvaruutveckling var förstås Microservices, Continuos Deployment och DevOps. Microservices har fått ett stort genomslag och det var många föreläsningar kring ämnet. Koncepten kring mjukvaruutveckling går mot att bygga system som skall vara enkla att produktionssätta; system som utvecklas i korta iterationer som levererar funktionalitet och värde snabbt. För att få till detta fokuserar arkitekturen på små tjänster som är autonoma, microservices. Man har en utvecklingsprocess där automation av produktionssättning och tätt sammarbete mellan utvecklig och drift ligger i fokus.

Continuous Delivery bygger på att man har en robust process, från att ta kod från versionshantering till produktion. Ett påstående som dök upp var att detta “endast kan göras av startup-företag” som inte har gamla system i bagaget. Men Continuous Delivery är en förändring i tankesätt som genomsyrar utvecklingsorganisationen, i allt från utveckling, test och drift till verksamhet. Det är något alla organisationer kan göra. Men det kräver hårt arbete! En av svårigheterna är att det inte finns en checklista som man kan bocka av: “nu har vi Continuous Delivery”, utan något hela organisationen ständigt måste arbeta med.

Till detta kommer också automation av infrastruktur, uppsättning av servrar, nätverk och annan hårdvara. Detta kan göras med verktyg som Chef eller Pupett där förändringar scriptas ut till miljöerna. De traditionella mångsidiga installationsmanualerna för servrar och infrastruktur är istället konfigurationsfiler man har i sitt versionshanteringssystem.

För att få små separata tjänster att produktionssättas smidigt och automatiserat har container-teknologier såsom Docker blivit mer och mer populära. En container är en virtualiseringsteknik där även operativsystemet är bort-abstraherat. Det gör dem mycket enklare att hantera än virtualiserade operativsystem som har betydligt fler rörliga delar. På en docker-image paketerar man sin applikation och den kan sedan installeras på en “host” som kör containrar. Microsoft har fått upp ögonen för teknologin och nästa version av Windows Server kommer ha stöd för dem.

Då det har blivit möjligt att helt automatisera infrastruktur och installation börjar folk tala om att releasa nya versioner av sina webbaserade program genom att helt enkelt spinna upp nya servrar med den nya versionen, istället för att som traditionellt uppdatera befintliga. Det gör själva infrastrukturen relativt kortlivad, då uppsättningskostnaden minskas dramatiskt. Så liknelsen med servrar som boskap istället för husdjur må låta grotesk, men snart är det här!

Weikko Aejmelaeus
Konsult på Dynabyte

#Continuous-Delivery #DevOps #NDC-Oslo-2015 #Trendspaning

Scrum War Stories

Parprogrammering är so last year