Het boek Azure Infrastructure As Code

Ingediend door Dirk Hornstra op 16-dec-2024 20:36

Op mijn eigen "informele" site heb ik mijn motto staan: Earst leare, dan kinne, dan begjinne! Dat is Fries voor "Eerst leren, dan kunnen en dan beginnen!". Dat rijmt toch iets minder mooi :)

Het is wel hoe ik altijd in het leven stond. Als ik een "nieuw elektronisch apparaat" aanschafte, dan las ik eerst de handleiding van voor tot achter door en ging er dan pas mee aan de slag. Waarschijnlijk ook omdat die ene keer dat ik dat niet deed, ik meteen werd afgestraft. Want vroeger zat er een soort "lock" op een scanner. Je moest hem eerst "unlocken" voordat je hem aansloot op de stroom...

De laatste jaren is dat, in ieder geval in relatie tot "code", wat verwaterd. Dan is het al gauw "aan de slag", bij problemen wat via Google of StackOverflow zoeken en de boel werkend krijgen. Natuurlijk zou ik het eigenlijk nog op de oude manier willen doen, eerst de kennis opdoen en dan pas aan de slag gaan. Daarom heb ik bij mijn weekschema de woensdag ingepland om "2 uren IT boeken te lezen". Afgelopen zondag had ik niet zoveel zin om achter mijn computer te kruipen, ik had een tijd geleden al het eerste hoofdstuk gelezen en dacht: ik ga nu eens even doorlezen! Dus zo heb ik op 14 januari 2024 een stuk of 5 hoofdstukken gelezen.

En dat is doorgegaan tot 27 maart 2024, toen had ik het boek uit. Waarbij ik wel moet zeggen dat ik "het dus alleen nog maar gelezen heb". Met zulk soort dingen moet je juist gaan "doen", de boel in praktijk brengen, want dan leer je echt wat. Als ik daar ooit aan toe kom, dan zal ik dat hier ook delen.

 

Als ik dit artikel op mijn blog deel is het 16 december 2024, het boek heb ik doorgelezen van januari t/m maart dit jaar. Het was namelijk de bedoeling om wat zaken in praktijk te brengen, zodat ik dat ook meteen had kunnen delen. Daar ben ik dus (nog steeds) niet aan toegekomen, daarom deel ik nu dit artikel. Als je namelijk met ARM en/of BICEP aan de slag wilt gaan, is dit boek een aanrader. En mogelijk kun je alvast starten met de linkjes die ik hierna ga delen.

 

De meeste mensen die bekend zijn met Azure weten dat je zaken via code kunt laten aanmaken/aanpassen via ARM templates. Dat is een bepaalde structuur, in JSON-formaat, waarmee je heel veel kunt.

De syntax, de opbouw, dat is soms een beetje omslachtig. Dus er is een "transpiler" gekomen, BICEP. Je kunt daar in code die beter leesbaar is en die wat andere constructies bevat hetzelfde doen. Deze tool is van Microsoft en bij uitvoeren wordt de code "onder water" weer omgezet naar ARM. Dat maakt voor jou niet uit, want uiteindelijk wordt er uitgevoerd wat jij in het BICEP sjabloon uitgewerkt hebt.

In het boek worden ook andere tools genoemd, zoals TerraForm, een tool die dat voor meerdere cloud-providers kan uitvoeren. Een "programmeertaal" waar mijn collega Jeroen Smink al een lange tijd mee bezig is. Ook daar zal ik mij dus later in verdiepen, want dat zal waarschijnlijk de tool worden die we gaan/blijven gebruiken.

Is het dan overbodig om dit boek te lezen? Nee.
Want zoals ik al aangaf, onder water draait Azure op ARM en dat zal waarschijnlijk ook zo blijven (of Microsoft moet daar een hele andere structuur in door kunnen voeren). Dus het is goed dat je "iets" weet van de onderliggende structuur.

Zo komen er ook wat andere algemene zaken in dit boek voorbij. Zo wordt bijvoorbeeld genoemd dat je in BICEP commentaar kunt gebruiken, in JSON is commentaar niet toegestaan. Dit was ook bij ons een bevinding waar we met onze eigen tools tegen aan liepen. Daar werd in JSON commentaar gebruikt, in die applicatie was dat geen probleem, maar als je zelf zaken gaat filteren/toevoegen en daarvoor een JSON-parser gebruikt, dan "struikelt" die daar over met de standaard configuratie. Dus met dit boek doe je ook wat "algemene kennis" op.

 

Ik wil hier een aantal links uit het boek delen:

Ten eerste is er de repository van het boek: github repo. Hier zijn codevoorbeelden uit het boek terug te vinden. Dus als je wilt kijken hoe een bepaalde .bicep syntax op dit moment is (de repo wordt ook bijgewerkt als er wijzigingen door Microsoft doorgevoerd worden), dan is dit "the place to be".

Voor development zul je vaak gebruik maken van Visual Studio Code. Als je met ARM templates aan de slag gaat zal de plug-in "Azure Resource Manager (ARM) Tools" je verder helpen. Voor het visualiseren van ARM templates kun je de online tool armviz.io gebruiken. En wil je dat "gewoon binnen Visual Studio Code", dan kun je de plug-in ARM Template Viewer gebruiken. Natuurlijk is er ook een plug-in "Bicep" voor VS Code. En wil je de "huidige stand van zaken" van Bicep bekijken, dan check je de Github-repo.

Met de AZ CLI kun je veel dingen doen, maar wat allemaal? Via deze lijst is dat te vinden.

En zo staat het boek vol met uitleg, verwijzingen naar pagina's waar je meer informatie kunt vinden.

De schrijvers zijn Eduard Keilholz, Henry Been en Erwin Staal. Met een voorwoord van onder andere Scott Guthrie!

 

Hoe kwam ik aan dit boek? In 2022 ben ik naar Techorama geweest. Dat is redelijk prijzig. Dus ik wilde van tevoren wel weten of het "de moeite waard was". Eduard reageerde daarop dat het inderdaad wel wat kost, maar het wel hét event voor de developer is die met Microsoft-technologie werkt. En dat was het ook. Als bonus beloofde hij mij een exemplaar van dit boek als ik bij de stand van 4dotnet bij hem langs zou lopen. Dat heb ik gedaan en zo geschiede. Dus mocht je Techorama willen bezoeken en twijfelen, lees dan nog even mijn blog door en boek dat kaartje!