Blog

Orchestration

Infrastructure as Code

21 okt 2016

Ontwikkelingen op IT-gebied volgen elkaar in rap tempo op. Steeds meer onderdelen van de IT-infrastructuur worden geautomatiseerd. Dit automatiseren levert ook flink wat buzzwords op. Over één van die woorden kreeg ik onlangs van klanten vragen over. Het gaat om de term ‘infrastructure as code’. Waar staat die term nu eigenlijk voor en hoe ziet dat er in de praktijk uit?

John Grinwis door John Grinwis

Softwarematige benadering

Infrastructure as code (IaC) is een softwarematige benadering van de IT-infrastructuur, waarbij door middel van templates de systemen op een consistente manier uitgerold en aangepast kunnen worden. Als er een wijziging moet plaatsvinden, wordt deze doorgevoerd in het template die vervolgens weer wordt uitgerold. Laten we nu eens kijken hoe we dit in de praktijk kunnen gebruiken.

Infrastructuur opbouwen in de praktijk

Net zoals onze andere leveranciers heeft ook Juniper een aantal van zijn producten gevirtualiseerd, zoals een virtuele router (vMX) en een virtuele firewall (vSRX). Onlangs hadden wij een update sessie waarbij bleek dat Juniper zijn vSRX als beta beschikbaar heeft in de cloud van Amazon, AWS. Als partner van Juniper was de beta zo geregeld en gingen we eens kijken hoe eenvoudig het is om deze vSRX instance te starten bij AWS.

Voor het opzetten van de vSRX in AWS moeten een aantal infrastructuurzaken geregeld worden in AWS. Denk hierbij aan het aanmaken van een virtuele private cloud (VPC), toevoegen van een internet gateway, configuratie van security groups etc.

Na dit twee keer met de hand te hebben aangemaakt vanuit de AWS web interface, ging ik eens kijken hoe we dit konden automatiseren. Zoals een gewaardeerd oud-collega Jorgen ooit zei: “Ik zit in de IT om zaken te automatiseren, zodat ik zo weinig mogelijk met de hand hoef te doen”. Een uitspraak waar ik 100 procent achter sta.

AWS services automatiseren

Maar hoe kunnen we services bij AWS nu automatiseren? Alle beschikbare services van AWS kunnen via een API geconfigureerd worden. Eén van de mogelijkheden is de eigen orchestration tool van AWS; CloudFormation. Deze tool heeft een template designer, waarmee AWS-objecten op een canvas gesleept kunnen worden en er zo een hele virtuele infrastructuur gebouwd kan worden:

AWS services automatiseren

Hierboven een screenshot met een gedeelte van het template dat we hebben gebruikt voor het uitrollen van onze vSRX op AWS. Alle benodigde infrastructuurcomponenten voor de configuratie van de vSRX op AWS zijn hierbij opgenomen in het template. Het template kan vervolgens uitgerold worden en binnen twee minuten is de nieuwe setup in de AWS-omgeving een feit. Het template kan meerdere keren uitgerold worden waarbij de setup iedere keer identiek zal zijn. Het is echter wel mogelijk om aanpassingen te doen, waarna de wijziging doorgevoerd wordt op de huidige setup zonder deze helemaal opnieuw te hoeven op te bouwen.

Infrastructure as code in de praktijk

Maar waar is nu het ‘code’ gedeelte van onze infrastructuur? Als we naar de content kijken van onze CloudFormation template, zien we daar de code in JSON-formaat.

Infrastructure as Code: CloudFormation template
Hierboven een voorbeeld van een AWS::EC2::InternetGateway-object zoals die is opgenomen in de CloudFormation template file. Dit template beschrijft dus de volledige setup, kan op eenvoudige wijze worden gecreëerd, gelezen, aangepast, getest, opnieuw uitgerold worden en vervolgens ook opgenomen worden in een version control system (VCS). Door hem te plaatsen in een VCS is dus ook heel makkelijk te zien wie, wat en wanneer heeft aangepast.

Wil je een setup bouwen zoals die een paar maanden geleden is uitgerold? Haal hem uit je VCS, rol hem opnieuw uit en je setup zal identiek zijn zoals die voorheen was. Bovenstaand voorbeeld heeft betrekking op de infrastructuur bij AWS, maar dit zou ook intern gebruikt kunnen worden. Denk hierbij aan de configuratie van virtuele systemen, netwerk componenten, fysieke servers en applicaties. Hiervoor zijn diverse tools beschikbaar zoals Terraform,  Ansible, Puppet en Chef om er maar een paar te noemen.

De infrastructure as code benadering levert dus niet alleen snelheid op bij het uitrollen van de benodigde infrastructuur, maar tevens een consistente setup met een beperking van de risico’s. En dit allemaal volgens een software ontwikkel benadering.

Geïnteresseerd?

John Grinwis
Neem contact op met onze Orchestration- specialist John Grinwis

John Grinwis is Consultant bij Telindus en heeft veel ervaring met de diverse aspecten van het IT-landschap. Zo heeft hij bij een van de grotere internet providers gewerkt met Juniper- en Cisco-netwerkapparatuur en heeft hij zich bij een internationale system integrator bezig gehouden met virtualisatie, diverse storage- en backup-producten en servers van verschillende vendoren. John is onderdeel geweest van het team dat de Cisco Cloud Builder status voor Telindus heeft bereikt en op dit moment ligt zijn focus bij de verschillende SDx-oplossingen. In de SDx-omgevingen komen de diverse werelden van storage, compute en networking bij elkaar op een software defined manier, precies die werelden waarin John ervaring heeft opgedaan. In zijn vrije tijd zit John op zijn racefiets of op de tribune van zijn favoriete voetbalclub.

geen reacties
Plaats een reactie