Amazon Web Services, Google Cloud, Microsoft Azure en misschien wel Heroku en Alibaba Cloud. Je zal deze providers allemaal wel voorbij hebben zien komen in jouw zoektocht om je applicatie in de Cloud te plaatsen. Eigenlijk bieden al deze bedrijven dezelfde diensten en oplossingen, maar dan in een ander jasje. Los van de provider die je kiest, de manier waarop je jouw infrastructuur gaat opzetten is eigenlijk het belangrijkste.

Jouw applicatie in de Cloud

In de zoektocht naar een goede Cloud oplossing wordt ligt in eerste instantie de focus vooral op de prijs en mogelijkheden van het platform. Zodra de keuze gemaakt is duiken wij als developers direct in het testen en toepassen van deze mogelijkheden. Testje hier, testje daar, allemaal via de console van het platform.

Voor je het weet heb je al een aardige infrastructuur opgebouwd en kan je applicatie live gaan. Maar waar gaat de applicatie nu eigenlijk op draaien, welke services gebruik je, welke afhankelijkheden heb je en wie kunnen er mee werken? Omdat alles via een console ‘in elkaar is geklikt’ ben je afhankelijk van de documentatie die is geschreven tijdens het opzetten van de infrastructuur. En laten we eerlijk zijn, deze is waarschijnlijk incompleet of ontbreekt in de meeste gevallen zelfs volledig.

Documenteren door te programmeren

Het idee van ‘infrastructure as code’ is heel simpel: je moet infrastructuur behandelen als software. Dat betekent dat je dit moet vastleggen in de code van je applicatie. Eigenlijk niet anders dan wat we al gewend zijn met bijvoorbeeld Docker. Je leest hier meer over in dit blog.

Hierdoor is de infrastructuur voor jouw applicatie direct gedocumenteerd en altijd toegankelijk voor de developers die ermee gaan werken. Alle wijzigingen die gedaan worden zijn direct duidelijk voor iedereen en worden automatisch meegenomen in je development proces (zoals bijvoorbeeld code reviews).

De ‘code’ voor je infrastructuur zijn YAML of JSON geformatteerde bestanden die je kan toevoegen aan de codebase van je applicatie. Lees meer over codebase in dit blog. Deze bestanden stuur je vervolgens naar jouw gekozen Cloud provider om ervoor te zorgen dat jouw infrastructuur wordt opgezet zoals je dat beschreven hebt. Op deze manier maak je het ook mogelijk om je infrastructuur op te nemen in de CI/CD pipeline en kun je met een paar simpele stappen een exacte kopie van je infrastructuur opzetten als dat nodig is.

Vooral voordelen, maar denk goed na!

Het opzetten van je infrastructuur als code heeft, zoals hierboven beschreven, veel voordelen. Maar er zijn ook een paar punten waar je goed over moet nadenken. Het verdwijnen van een extra webserver is bijvoorbeeld niet zo erg zolang er geen statische content op staat, maar een productiedatabase wil je natuurlijk niet kwijtraken. Dit is in alle gevallen goed in te stellen, maar hier moet je vooraf goed over nadenken.

Verder is het natuurlijk de vraag, wie is er verantwoordelijk voor het opzetten van de infrastructuur. Gaat een developer aan de slag met systemen, of gaat een systeembeheerder leren programmeren. Een combinatie van beide is wellicht de meest voor de hand liggende oplossing.

Veel succes met het opzetten van jouw applicatie en infrastructuur!

Handig om te lezen:
•  https://aws.amazon.com/cloudformation/
•  https://cloud.google.com/deployment-manager
•  https://azure.microsoft.com/nl-nl/features/resource-manager/

Heb je vragen, mail me gerust! We helpen je graag op weg! senne.tijdeman@dij.digital

Geschreven door: Senne Tijdeman

Meer kennis bijspijkeren? Kom dan naar onze Meetup: Ode aan de Code!

Bekijk onze Meetups

Wij zijn altijd op zoek naar getalenteerde vakgenoten!

Bekijk onze vacatures