Infrastructure as code och DevOps

Marknaden och arbetssätten förändras kraftigt inom IT-branschen. Kraven ökar på att göra mer med mindre samtidigt som ledtider skall reduceras, kvalité skall bibehållas och säkerheten skall öka. Verksamheter som inte känner att de får gehör för sina behov från IT-avdelningen vänder sig till Shadow-IT. För att leverera uppfattat affärsvärde måste IT-avdelningen transformeras och bryta med gamla hjulspår så som silo-tänk, protektionism och enbart beprövade teknologier. Tekniker och utvecklare behöver närma sig varandra och tillsammans leverera mot det som verksamheten behöver och efterfrågar.

Här kommer DevOps-begreppet in tillsammans med Infrastruktur-as-code (IaC). Forrester gjorde förra året en undersökning som påvisar behovet av DevOps och IaC för företag att kunna leverera nya leveranser av mjukvara i den takt som företagens kunder förväntar sig och kräver. Nu kanske inte ert företag levererar mjukvara men jag vill påstå att det är mindre relevant då IT-avdelningar ständigt har kraven på sig som jag nämnde tidigare. Om dessa inte uppfylls svävar hela tiden Shadow-IT och Outsourcing ovanför huvudet på IT-chefen. Med de fördelar som DevOps och IaC medför så kan man inte bara sänka kostnaderna för driften av infrastruktur, man kan även radikalt minska ledtiderna, öka kvalitén och höja säkerheten.

Att betrakta sin Infrastruktur som kod skulle man kunna säga är att abstrahera bort den underliggande miljön ytterligare en gång utöver virtualisering. Dagarna då det viktigaste som fanns kring infrastruktur var den tekniska specifikationen är förbi, det är bara ren kapacitet idag, antingen med mer eller mindre muskler. IaC möjliggör för oss att standardisera, versionshantera och helt automatiserat sköta vår infrastruktur. Detta ger oss en helt ny grad av konsekvent beteende, tidsbesparingar, minskade fel och revisionsmöjligheter. Vi har under ganska lång tid pratat om Software Defined Networks osv. Detta är inkörsporten till IaC, för när vi bokstavligen kan specificera, hantera och rulla ut vår infrastruktur helt genom kod och skript då är vi framme vid att kunna säga att vi kan arbeta med vår infrastruktur som om den vore kod.

Detta löser många utmaningar som uppkommer vid utveckling, test och produktionssättning. Genom att vi använder samma kod gång på gång genom alla stadier i livscykeln så springer vi inte på de skillnader i konfiguration som i vanliga fall sätter så många käppar i hjulen för oss. Detta är förövrigt enligt Forresters undersökning det absolut största problemet i en mjukvaras livscykel. Hur vanligt förekommande är det inte att det som fungerande i utvecklingsmiljön på utvecklarens laptop i slutändan inte fungerar i produktionsmiljön? Eller t.ex. att det inte finns testmiljöer för dessa är på tok för dyra att etablera? Om vi genom några rader kod kan provisionera upp hela miljön, bara med en annan mängd muskler, så är dessa utmaningar lösta till stor del.

Hur hänger då detta ihop med DevOps? Jo en av de vanligaste utmaningarna företag stöter på när de vill börja med DevOps är bristen på gemensamma nämnare mellan tekniker och utvecklare. De två grupperna använder olika verktyg, processer och har väldigt olika kulturer. Genom IaC, och till exempel nyttjandet av deklarativa modeller, så ges båda grupperna ett behov av att lära av varandra och ett gemensamt språk i form av koden och skripten som utgör IaC:en. Med detta kommer gemensamma processer och behovet av att jobba nära varandra. För vad som än sägs så handlar inte DevOps om att utvecklare skall sköta IT-driften (om jag ändå bara kunde få en femma för varje gång jag hör detta påstående…). Det handlar om att dessa två grupper skall arbeta tillsammans som en grupp med gemensamma processer, verktyg och mål.

För att nå hit måste vi dock utbilda oss i den andres värld och utmaningar. Teknikern behöver lära sig om agila metoder, kodhantering, språk och felsökning i kod. Utvecklare behöver lära sig om förvaltning och dess ramverk, infrastruktur och dess konfiguration. När det kommer till Microsoft-teknologi så talar vi här om att börja nyttja teknologier så som Powershell, Desired State Configuration, Azure, Azure Stack och ARM-templates för att nämna några exempel.

Så tekniker och utvecklare, ta varandra i hand så åker vi till IaC-land!

Tillsammans med Gridpro och Microsoft kommer vi att den 15:e Mars hålla ett event som anknyter till dessa frågor ute hos Microsoft. Eventet är gratis så boka er biljett redan idag och inspireras av de tekniker vi där kommer att föreläsa om.
http://cloudmanagementinsights.se/

Länk från Microsoft med Forresters rapport

Med vänliga hälsningar,
Mats Hultgren

Posted in Automation, Azure, Blog, Desired State Configuration, Powershell.