När Infrastruktur blir kod

Infrastruktur som vi känner den idag är vid ett paradigmskifte. Traditionella datacenter är på väg att bli föråldrade och det tas i bruk nya och mer effektiva metoder för att leverera tjänster.

Begrepp som ”Hyperconverged Infrastructure”, (Hybrid-) Cloud och ”Infrastructure as Code” är centrala i denna omvälvning – och alla definieras som banbrytande disruptiv teknik. Den här gången tänker jag fokusera på det sistnämnda som jag menar inte har fått tillräckligt med uppmärksamhet; ”Infrastructure as Code” – en term som kan ses som en del av begreppet ”DevOps”.

Vad är DevOps?

DevOps är sammansättningen av orden ”Developer” och ”Operations” och definieras som skärningspunkten mellan rollerna ”IT Pro” (Infrastructure Engineer) och Utvecklare. Begreppet DevOps kan också ses som en leverans med både människor med IT Pro-bakgrund och utvecklare som tillsammans kan leverera genom att förstå varandra och inte minst förstå kundens behov för att leverera en skräddarsydd tjänst från A till Ö. Från ett utvecklarperspektiv sammanfogar man gärna begreppet DevOps med förmågan för en utvecklare att förstå och automatisera installationen av en utvecklingsmiljö och produktionsmiljö på en viss infrastruktur-plattform.

En annan vinkling kan vara begreppet DevOps sett från ett infrastrukturperspektiv; förmågan att använda sig av kod och testkod för att implementera, dokumentera och förvalta IT-system. Det är i dessa sammanhang vi gärna pratar om ”Infrastructure as Code”.

Fördelarna med «Infrastructure as Code» är många

För att nämna några:

  • Koden dokumenterar systemet, något som gör att systemdokumentationen är helt dynamisk och man undviker avvikelser mellan dokumentation och system
  • Möjlighet till ”One-Click Deploy”, dvs att produktionssätta en ny version av systemet med ett knapptryck
  • Man kan använda ”Blue/Green” metod för produktionssättning utan driftstopp:
    • Två system körs parallellt, där grönt system alltid är i produktion. Radera det blå systemet och deploya det igen. Ändra produktionspekaren på det blå systemet och definiera det som grönt om alla tester är OK. Definiera det gamla som blått.
    • Kan upprepas på begäran – eller vid schemalagda tider
  • Man kan se på alla sina systemkomponenter som förbrukningsbara. Är det några som inte fungerar, så kan man byta ut dem genom att köra koden på nytt
  • ”Backup and recovery” blir till en naturlig del av leveransen
  • Manuella fel undviks (den mänskliga faktorn)
  • Man kan undvika s.k. ”Configuration Drift”, dvs att konfigurationen skiljer sig åt mellan miljöer, te x en backup miljö
  • Högeffektiv ställtid

Några av dessa punkter är självklart beroende av hur långt man vill dra begreppet. Man vill kanske till en början nöja sig med att definiera testmiljön som kod? Det är en sådan miljö som ofta byggs om. Oavsett så är utmaningen att det ofta krävs en del av en IT Pro för att bygga upp kompetens inom kod och testkod och det kräver utbildning av dem som kommer förvalta systemet. Jag menar att det ändå är en bra investering för framtiden!

PowerShell Desired State Configuration som DevOps-verktyg

För dem som är bekanta med Microsoft-teknik, är PowerShell Desired State Configuration en enkel ingång till ett DevOps-tankesätt. DSC används för att automatisera system- och komponentinstallationer och för att undvika ”Configuration Drift”. Språket som används är PowerShell och det finns för närvarande över 500 unika DSC resurser, vilket innebär att det är över 500 komponenter och system som kan automatiseras och installeras med användning av DSC! Hittar man inte resursen man letar efter, är det också väldigt enkelt att skapa en egen. Desired State Configuration är enkelt att förstå och lätt att komma igång med för alla. Verktyget blir mer och mer centralt för infrastruktur baserad både på Microsoft och annan teknologi och är på många sätt en av de viktigaste beståndsdelarna i det paradigmskifte som traditionell infrastruktur nu står inför – speciellt med tanke på DevOps och ”Infrastructure as Code”.

PS: Har du hört talas om nya Microsoft Nano Server? Den har varken GUI eller RDP. Hur tror du att det ska hanteras? Korrekt, DSC! Läs mer om Microsoft Nano Server här.

På Microsoft Virtual Academy kan du enkelt komma igång med DSC: Getting Started with DSC

Skulle du vilja veta mer om ”Infrastructure as Code” och ”Desired State Configuration”? Ta kontakt med Eirik Holgernes på Sopra Steria eller publicera en kommentar här under.

1 tanke på “När Infrastruktur blir kod”

Kommentera