As part of this year’s Azure Festive Calendar I took part in a Hackathon hosted by Wesley Haakman. This event was probably the highlight of the whole calendar for me. It gave me the opportunity to brush off my Terraform skills and see what I could do. Whilst I did not win I had a lot of fun taking part. There is a lot to learn, which I hope to apply to similar events in the future.
My Submission can be found on Github here on the submission branch. I hope to continue to improve the solution when I get spare time, so the main branch may have progressed.
Mert Senel was crowned the winner by Wesley and the judging panel. In the annoucement post on Wesley’s site, they point to Mert’s solution and blog.
Looking at Mert’s solution and looking back at my experiences there are a few things that immediately pop out that I could use to improve my submission.
Comparing my report to Mert’s it is clear that I needed to spend more time on it. His report is far more comprehensive. I cover the Technologies used and current issues, but there are a number of areas misisng when compared to Mert’s table of contents.
I initially added a single Frontdoor to act as a way to provide a single URL, with backend pools for each geographic region, but after realising Azure FrontDoors use latency to dictate the “closest” deployment. I decided this would not work as I wished. I did not however think to use a Traffic Manager. Looking at Mert’s solution I believe this is the way I should have gone to deploy a single URL. There is a tutorial on the MS Docs site
While not necessarily part of the deployment, I should have included in a workflow to clean up the resources rather than relying on the deletion of the owning Resource Group, including a separate workflow allows for management of the resource removal from within GitHub.
Mert’s solution also uses GitHub packages as the Container repository. I have not looked into GitHub’s registry, I used an Azure Container Registry I had previously deployed for other sandbox work, the ACR achieved the same outcome, but there is a free option within GitHub Packages for Public repos so definitely worth a look.