CLOUD RESUME BLOG

Mijn ervaring met de Cloud Resume Challenge

De Cloud Resume Challenge was de perfecte manier om mijn perfectionistische, leergierige en onderzoekende zelf uit te dagen. In deze blog deel ik mijn ervaringen rondom elke stap in het proces: van het bouwen van een website tot het automatiseren van de infrastructuur via CI/CD.

Stap 1: Website bouwen met HTML en CSS

Aangezien ik vroeger de ambitie had om webdesigner of developer te worden, is zowel HTML als CSS geen onbekend terrein voor mij. Deze ervaring hielp mij dan ook om – na wat onderzoek te hebben gedaan en een visueel ontwerp te hebben gemaakt – direct aan de slag te gaan. Ik heb een creatieve en kritische blik, dus het duurt vaak even voordat ik helemaal tevreden ben. Hierdoor heb ik verschillende iteraties doorlopen.

Het responsief maken van de site bleek lastiger dan verwacht, omdat de basisstructuur niet optimaal was en moderne layout tools als Grid of Flexbox nog ontbraken. Na het herstructureren van de HTML, het toepassen van responsive elementen zoals media queries en de Flexbox layout module en het gebruiken van “em” en “rem” percentages, was het resultaat zoals ik voor ogen had.

Stap 2: Hosting op Azure en HTTPS via CloudFlare

Voor de hosting koos ik Azure, en voor DNS en HTTPS CloudFlare. Dit omdat CloudFlare bekend staat om zijn snelheid, betrouwbaarheid en gebruiksgemak bij domeinregistratie.

Het opzetten van HTTPS vond ik een uitdaging. Dit omdat ik te maken kreeg met een 'domain validation' foutmelding. Uiteindelijk bleek dit te liggen aan de DNS/SSL/TLS-instellingen van CloudFlare. In Azure kreeg ik namelijk een foutmelding tijdens het opzetten van de custom domain. Na online research ontdekte ik dat het lag aan de CNAME record die op proxied stond. Het tijdelijk uitzetten hiervan gaf Azure de mogelijkheid om het domein te achterhalen en het succesvol toe te voegen. Daarna heb ik de proxied weer aangezet.

Stap 3: Bezoekersteller bouwen met Azure Functions en CosmosDB

Stap 3 van de Cloud Resume Challenge heeft mij de meeste tijd gekost, vooral omdat ik nog weinig ervaring had met Python, API’s, Azure Functions en CosmosDB. Bij deze stap ik heb veel gehad aan mijn persoonlijkheidskenmerken die ik in mijn inleiding noem. Juist bij dit soort momenten duik ik er echt in om te begrijpen hoe alles precies werkt. Ik lees veel, kijk video’s en blijf volhouden tot iets me lukt.

Na veel trial-and-error lukte het om een werkende setup te maken waarin een HTTP-triggerd Azure Function data opslaat in CosmosDB en een response terugstuurt met de huidige unieke bezoekers. De response-tijd zelf was een uitdaging. Eerst dacht ik dat mijn Python-code de oorzaak was, maar uiteindelijk bleek dat deze Azure Function ‘slaapt’ bij inactiviteit en wakker moet worden bij de eerstvolgende request die wordt opgeroepen. Wel heb ik de statische variabelen buiten de HTTP-trigger geplaatst, wat heeft gezorgd voor meer snelheid in de response-tijd.

Unieke bezoekers worden gemeten door middel van het IP-adres uit de request headers te gebruiken. Bij een herhaalbezoek wordt de entry geüpdatet in plaats van dat er een nieuwe wordt aangemaakt.

Stap 4: Infrastructuur als code en automatische deployment

Deze stap sprak me het meest aan: infrastructuur automatisch opzetten met één druk op de knop. Dat voelt bijna magisch. Omdat ik ook ervaring wilde opdoen met andere tools dan Azure-native oplossingen, koos ik voor Terraform. Voor de CI/CD pipeline gebruikte ik GitHub Actions.

Dit was voor mij nieuw terrein, dus opnieuw ben ik de documentatie ingedoken – vooral via Microsoft Learn en Terraform zelf. Uiteindelijk heb ik de pipeline zo ingericht dat bij een commit naar de main branch de infrastructuur automatisch wordt getest en gedeployed naar Azure. Ook kreeg ik bij Terraform Destroy een foutmelding tijdens het verwijderen van de Custom Domain, omdat het DNS CNAME-record nog aanwezig was. Dit heb ik opgelost door in Terraform een time_sleep van 60 seconden toe te voegen.

Reflectie

Wat het doorlopen van de Cloud Resume Challenge mij vooral heeft geleerd, is hoe belangrijk het hebben van nieuwsgierigheid en doorzettingsvermogen is. Er waren momenten waarop dingen niet werkten zoals ik wilde. In plaats van gefrustreerd te raken, heb ik geprobeerd rust en overzicht te creëren. Door écht te willen begrijpen hoe dingen werken, heb ik mezelf ontwikkeld op manieren die ik van tevoren niet had verwacht.

De Cloud Resume Challenge heeft niet alleen mijn technische kennis vergroot, maar ook mijn zelfvertrouwen in het zelfstandig oplossen van complexe vraagstukken.