22 - Static Content Hosting Pattern (Save cost and gain performance for static websites!)
Serving static HTML, CSS, images, and JavaScript from a general-purpose web server wastes compute and money. The Static Content Hosting pattern offloads these assets to purpose-built cloud storage for both cost savings and performance gains.
What You’ll Learn
- The Static Content Hosting pattern from the Azure Architecture Center and when to apply it
- Why compute platforms (App Service, VMs, Kubernetes) are the wrong tool for serving static assets
- How Azure Blob Storage (and equivalent AWS S3 / GCP Cloud Storage) can serve static sites directly over HTTP/HTTPS
- The role of a CDN (Content Delivery Network) in addressing two key challenges:
- Geographic latency: serving content from Points of Presence close to end users
- Storage throughput limits: the 20,000 requests/second cap on Azure Storage accounts
- Geo-redundancy considerations for resilience against data centre failures
- When to use the Valet Key pattern for securing access to private static content
- Real-world walkthrough of cloudwithchris.com: Hugo static site generation → GitHub Actions build → Azure Blob Storage → Azure CDN
Limitations
This pattern suits truly static content. Dynamic content requiring server-side rendering or complex routing is not a good fit—though JavaScript-driven API calls can bridge many of those gaps.
Related Content

V001 - Weekly Technology Vlog #1 (Blog, Hugo, Azure, GitHub & Azure DevOps)
Chris launches the weekly vlog format with a recap of December 2020, including open source contributions to the Hugo Castanet theme and the start of a new community-focused Hugo theme project. He reviews Azure updates covering Azure Synapse Analytics GA and Microsoft BGP routing security improvements, highlights GitHub's DevSecOps tooling with CodeQL and Dependabot, and explains the new Azure DevOps service tag for network security groups.

21 - The Queue Based Load Levelling and Competing Consumers Pattern
Cloud with ChrisDo you have an application with specific scalability and continuity-of-service requirements? What happens when traffic spikes dramatically — think a major concert or FIFA World Cup ticket sale crashing a site? In this Architecting for the Cloud episode, Chris and Will Eastbury walk through three closely related patterns: Queue-Based Load Levelling, Competing Consumers, and the Asynchronous Request-Reply pattern. They explore how message queues act as shock absorbers for traffic spikes, how competing consumers enable elastic horizontal scaling, and how async request-reply lets you retrofit these patterns into existing architectures with minimal disruption. Key trade-offs covered include queue depth limits, Azure Service Bus configuration, distributed tracing with Application Insights, and when the added complexity genuinely justifies reaching for these patterns.

20 - The Anti-corruption layer, Gateway Aggregation and Gateway Routing patterns
Cloud with ChrisPeter Piper joins Chris Reddington for another episode in the Architecting for the Cloud, One Pattern at a Time series. Building on the Façade and Strangler patterns, they explore three related cloud design patterns: the Anti-Corruption Layer (translating between legacy and modern domain models), Gateway Aggregation (collapsing multiple backend calls into a single client response), and Gateway Routing (layer-7 routing to decouple consumers from versioned backend services). Real Azure service examples — including API Management, Application Gateway, and Azure Front Door — are used throughout.