For 2022, I’ve made a number of changes to the blog:
- Content management
- Continuous integration and delivery
- built using a GitHub Actions self-hosted runner for continuous integration
- continuous delivery to a secondary git repo containing hugo’s output: html, css, and JavaScript
- Hosting
- Azure Kubernetes Service
- content is served via the nginx web server
- Mutiple web server instances are running in 3 Azure fault zones within a single Azure region
- the web servers are load balanced via kubernetes aks and ingress
- Multiple Azure regions are used for high-availability
- CloudFlare
- Load balancing is used for high availability and geo-distribution
- TLS is negiotiated over HTTP/3, HTTP/2 (or legacy) at one of the 122 CloudFlare datacenters around the world, reducing latency
- Uncached requests are routed to the closest available Azure region kubernetes cluster
- Azure Kubernetes Service
Is this overkill for a blog? Absolutely. CloudFlare Pages provide a turn-key solution providing most, if not everything listed here. This architecture lays the foundational for some other projects I’m working on this year.