Automatiseren van de automatisering

Gepubliceerd op 24 juli 2023 Leestijd : 3 minuten
Als er één ding is dat computers goed kunnen dan is dat dingen consistent doen. Programmeer je iets fout dan zal het ook keer op keer fout gaan. Maar ook omgekeerd, is het goed geprogrammeerd dan zal het keer op keer goed gaan.  Geautomatiseerde taken met dezelfde input leveren altijd dezelfde output op. Daarom zien we nu ook een beweging waarin systeembeheer wordt geautomatiseerd. 
 
In het verleden plaatste de systeembeheerder een CD in een nieuwe server om het Operating System te installeren. De systeembeheerder bevestigde een aantal  keuzes, maakte wat instellingen als diskindeling  en nog een aantal andere zaken en daar was je server. Als je de nieuw geïnstalleerde server goed bekeek, leek deze eigenlijk best op de vorige. Helemaal gelijk was de net geïnstalleerde server uiteraard niet. Daarvoor zat er teveel handwerk in. 
 
Wat we in deze tijd zien is dat we de uitrol van een server met tools als Terraform en Ansible programmeren. De uitrol van eenzelfde server is dan, simpel gezegd, door middel van een druk op de knop gedaan. En dan is het niet zo dat het lijkt alsof de server hetzelfde is, nee, dan is de server ècht hetzelfde. 
Als het beheer dan ook via deze tooling wordt gedaan, dan kun je de server uitrollen door opnieuw de juiste scripts in de juiste volgorde te runnen. Het kost minder tijd en het levert meer kwaliteit op. 
 

Infrastructure as Code

Bovengenoemde techniek kan voor je totale IT infrastructuur worden gedaan.  De term die hiervoor gebruikt wordt is Infrastructure as Code. Wat zijn nu de voordelen van dit soort technieken?  
Principes die in software ontwikkeling worden gebruikt zijn ineens ook toepasbaar op infrastructuur. Je kunt onder andere de volgende zaken toepassen:
- Code reviews;
- Schaalbaarheid en snelheid. Het is makkelijk op te schalen en snel uit te rollen;
- Door het gebruik van versiebeheer (git) zijn veranderingen traceerbaar;
- Eénmaal gemaakte scripts kunnen op andere plaatsen opnieuw worden gebruikt;
- Het is ook een perfect hulpmiddel als toevoeging op de disaster recovery gereedschapskist. Door het afspelen van een aantal scripts kan een omgeving opnieuw gegenereerd worden. 
 
In plaats van de oude manier van systeembeheer, waarbij op een command-line wijzigingen worden gemaakt, biedt deze werkwijze een gestructureerde manier van ontwikkelen. Door versiebeheer is het mogelijk om te volgen hoe een systeem tot stand is gekomen. 
In de oude situatie worden ook wel changes gemaakt om te komen tot een nieuwe situatie, alleen het proces en de ontwikkeling zijn vaak ongestructureerd en het wordt niet op een manier vastgelegd dat het resultaat exact reproduceerbaar is. Bij Infrastructure as Code is structuur een gegeven!
 
Er is legio tooling beschikbaar om dit soort zaken vorm te geven. Zo bieden de grote publieke Cloud providers hun eigen gereedschapskist, AWS heeft o.a. Cloudformation, Microsoft de Azure resource manager en Google de Cloud Deployment manager.
Er zijn ook allerlei andere tools beschikbaar, denk aan Terraform voor configuratie en orchistratie, Helm voor het beheren van Kubernetes omgevingen en bijvoorbeeld Ansible voor het bouwen en configureren van infrastructuur en applicaties.
 
Wil je meer over dit onderwerp weten of sparren over hoe ROOT jou kan helpen met het automatiseren van jouw IT? Neem dan contact op met één van onze specialisten, wij denken graag met jou mee.