Ontwikkelingen op IT-gebied volgen elkaar heel snel op. Steeds meer componenten van de IT-infrastructuur worden geautomatiseerd. Infrastucture as code is een buzzword dat hier aan gekoppeld wordt. Wat is het en wat kan ik er mee? In dit artikel lichten we de vier voornaamste voordelen van infrastructure as code aan u toe.

Infrastructure-as-code, of programmeerbare infrastructuur betekent het definiëren van infrastructuur door middel van code. Infrastructuur wordt beschreven als objecten met eigenschappen. Dit heeft een aantal voordelen:

  1. Snel provisionen
  2. Consistent, voorkom Configuration Drift
  3. Veranderingen in IT-configuraties goed zichtbaar over een periode
  4. Software Development Best Practises zijn toepasbaar op infrastructuur

Doordat er geen handmatige acties meer nodig zijn gaat het provisionen van infra of applicaties veel sneller. De IT-afdeling kan hierdoor sneller IT diensten aan de business leveren en heeft tijd voor andere werkzaamheden. Het resultaat is een korte time-to-market.

Voorbeeld 1: Het uitrollen van een Webserver of databaseserver

Code is herhaalbaar dus goed uit te testen. Als de code goed is, is het mogelijk om consistent infrastructuur of applicaties uit te rollen. Afhankelijk van de gekozen implementatie wordt de code iedere 30 minuten toegepast. Hierdoor wordt voorkomen dat beheerders handmatig wijzigingen aanbrengen op systemen. De zogenaamde Configuration Drift wordt hierdoor voorkomen. Configuration Drift is een fenomeen waarbij de huidige configuratie afwijkt van het design.

Voorbeeld 2: Een gebruiker meldt een probleem en de beheerder gaat op onderzoek

Om het een en ander uit te sluiten zet hij tijdelijk de securityinstelling uit en vergeet deze terug te zetten. Door het steeds toepassen van de Desired State wordt de gewenste instelling zoals beschreven in de code teruggezet en is de applicatie weer veilig zoals bedoeld.
Door code in een (interne) software repository op te slaan is het goed traceerbaar wanneer er wijzigen plaats vinden. Een ander voordeel is dat er eenvoudig een roll-back gedaan kan worden naar een eerdere configuratie. De code in de software repository is ook gelijk de documentatie van uw infrastructuur of applicatie.

Voorbeeld 3: Er wordt een nieuwe versie van een webserver configuratie uitgebracht

Als deze in productie wordt genomen blijkt er een probleem te zijn met deze nieuwe configuratie. Doordat alle wijzigingen in de code zijn bijgehouden in de software repository is het eenvoudig om terug te gaan naar een eerdere versie.

Men kan gebruik maken van bewezen software best practises zoals:

  • Version control
  • Automatische regressie- en acceptatie testen
  • Hergebruik van code patterns

Voorbeeld 4: Acceptatie testen schrijven

Door acceptatie testen te schijven voor de database rol (MSSQL) kan bijvoorbeeld uitgetest worden of:

  • Windows-authenticatie aanstaat
  • De juiste groepen AD-groepen toegang hebben tot de SQL Server instance
  • SQL server luistert op poort 1433
  • De SQL databases bestanden staan op de juiste locatie

Door deze testen te schijven kunnen aanpassingen op code sneller getest worden en in productie gebracht worden. Continuous delivery wordt mogelijk. De code kan eerder waarde toevoegen voor de business.

DevOps

De wijziging van een traditionele IT-organisatie naar DevOps heeft veel impact. Beheerders (Operators) worden ontwikkelaars (Developers) en dienen zich de nieuwe werkwijze eigen te maken.
Waar installatie of configuratie in het verleden vaak bestond uit doorlopen van wizards of het aanpassen van configuratie files. Wordt dit nu gedaan door middel van code. De organisatie gaat langzaam over in een agile organisatie waarin veranderingen worden opgenomen in sprints. Product Owners bepalen welke features, issues als eerst opgeleverd moeten worden. De scrum master zorgt ervoor dat de levering van het DevOps team een voorspelbaar wordt.

Configuration Management Software

Om DevOps succesvol te introduceren dient er de keuze gemaakt te worden welke Configuration Management tool gebruikt gaat worden. Dit is de tool die de Desired State toepast. Iedere tool heeft zo zijn eigen sterke kanten. Enkele voorbeeld van Configuration Management oplossingen zijn Puppet en Powershell DSC.

  • Puppet is marktleider. Door middel van de PuppetForge kunnen veel kant en klare modules gedownload worden en worden gebruikt.
  • PowerShell DSC is de PowerShell implementatie van Desired State. Windows beheerders die al bekend zijn met PowerShell zullen minder moeite hebben om deze manier van werken te adopteren. PowerShell DSC kan overigens ook heel goed gebruikt worden in combinatie met Puppet.

Voor wie is infrastructure as code interessant?

Voor iedere organisatie die meer grip op zijn IT wil en sneller deze IT aan zijn business wil kunnen leveren is infrastructure as code interessant. Hosting en Independent Software Vendors zijn hier vaak al mee bezig en uitermate schikt om met infrastructure as code aan de slag te gaan.

Toegevoegde waarde

Mocht u meer willen weten over DevOps en infrastucture as code dan bent u bij SCCT aan het juiste adres. Stel gerust uw vragen en waar van toepassing komen we graag bij u langs voor een nadere toelichting.