Azure Cloud Design Patterns

Azure Cloud Design Patterns

Let’s talk about Cloud Design Patterns.

We introduced the topic of design patterns in this previous post, then we discussed how design patterns apply specifically to the AWS cloud. Now we’ll talk about patterns as they apply to the Microsoft Azure Cloud.

Microsoft Azure –  being more focused on application development – provides for much more official and detailed Design Patterns than AWS. In fact, they dedicate an entire section on the subject on MSDN, from where you can download a 236-page book in PDF or ebook editions, or order a print version from Amazon. Sample code and an infographic depicting all the patterns are also available. The book contains 24 design patterns, 10 guidance topics, and 10 sample applications.

Problem Areas

The 24 design patterns are divided into 8 Problem Areas, each with its own symbol.

 Availability  IC709501
Data Management IC709483
Design and Implementation IC709492
Messaging IC709490
Management and Monitoring IC709496
Performance and Scalability IC709484
Resiliency IC709487
Security IC709498


The guide provides solutions to common problems encountered while developing cloud-based applications, describes the benefits derived from the application of patterns when implementing Azure-hosted cloud applications, and discusses the problems that affect the patterns, and how these relate to Azure. The book also shows us how to implement the patterns using the features and services of Microsoft Azure, and highlights their benefits.

Primer & Guidance Topics

The book also presents guidance topics. These, in fact, represent the basic orientation for developing applications in the cloud:Primers & Guidance Topics

Cloud Design Patterns

We come now to the core thematic list: Microsoft’s 24 patterns:

Static Content Hosting Pattern (example) Circuit Breaker Pattern
Competing Consumers Pattern (example) Index Table Pattern
Compute Resource Consolidation Pattern (example) Event Sourcing Pattern
Command and Query Responsibility Segregation (CQRS) Pattern Federated Identity Pattern
External Configuration Store Pattern (example) Gatekeeper Pattern
Health Endpoint Monitoring Pattern (example) Retry Pattern
Leader Election Pattern (example) Materialized View Pattern
Compensating Transaction Pattern Scheduler Agent Supervisor Pattern
Runtime Reconfiguration Pattern (example) Sharding Pattern
Pipes and Filters Pattern (example) Cache-aside Patter
Priority Queue Pattern (example) Throttling Pattern
Queue-based Load Leveling Pattern Valet Key Pattern (example)

For each pattern, the book provides a short description, some context and a problem along with its solution, issues and considerations, A use case, sample code with C #, and finally the patterns and related guidance.

Code Samples

All examples work with the Visual Studio Windows Azure emulator and can be deployed through the Windows Azure Cloud Service.

Let’s take the Static Content Hosting Pattern as an example. The pattern is part of these problem areas: Data Management, Design, and Implementation, Performance & Scalability. The book’s author writes:

Deploy static content to a cloud-based storage service that can deliver these directly to the client. This pattern can reduce the requirement for potentially expensive compute instances.

While adding more detail concerning the context and problem:

Web applications typically include some elements of static content. This static content may include HTML pages and other resources such as images and documents that are available to the client, either as part of an HTML page (such as inline images, style sheets, and client-side JavaScript files) or as separate downloads (such as PDF documents).

Although web servers are well tuned to optimize requests through efficient dynamic page code execution and output caching, they must still handle requests to download static content. This absorbs processing cycles that could often be put to better use.

And the Solution gives us the guidelines to implement it:

In most cloud hosting environments, it is possible to minimize the requirement for compute instances (for example, to use a smaller instance or fewer instances), by locating some of an application’s resources and static pages in a storage service. The cost of cloud-hosted storage is typically much less than for compute instances.

When hosting some parts of an application in a storage service, the main considerations are related to the deployment of the application and to securing resources that are not intended to be available to anonymous users.

IC709517
Therefore we see that the pattern improves the performance and scalability by moving the delivery of static content to Azure Blob Storage. The sample code simulates the solution of pattern also giving us useful snippet of Azure code.

Conclusion

As you can see, Cloud Design Patterns for Azure is rich in useful content. In particular, I highly recommend a quick read of Autoscaling Guidance.

Next, we’ll explore two websites that also discuss Cloud Design Patterns in more general terms.

Avatar

Written by

Fabio Cecaro

Expert and Visionary of the Cloud Computing model, Cloud Solution Architect, President of EuroCloud Italy. Purist of the NIST definition of Cloud Computing. I began to deal with the Cloud since 2007 as a private researcher, then as an entrepreneur. To evangelize the area where I live, I founded one of the first five Europeans AWS User Group (Naples, Italy), co-founded the EuroCloud Italy association and organized CloudCamps. I have "baptized" many to the Cloud. My Nicknames: Mr.Cloud or Santa Cloud at Christmas time.

Related Posts

Avatar
Jeremy Cook
— September 17, 2019

Cloud Migration Risks & Benefits

If you’re like most businesses, you already have at least one workload running in the cloud. However, that doesn’t mean that cloud migration is right for everyone. While cloud environments are generally scalable, reliable, and highly available, those won’t be the only considerations dri...

Read more
  • AWS
  • Azure
  • Cloud Migration
Joe Nemer
Joe Nemer
— September 6, 2019

Google Cloud Functions vs. AWS Lambda: The Fight for Serverless Cloud Domination

Serverless computing: What is it and why is it important? A quick background The general concept of serverless computing was introduced to the market by Amazon Web Services (AWS) around 2014 with the release of AWS Lambda. As we know, cloud computing has made it possible for users to ...

Read more
  • AWS
  • Azure
  • Google Cloud Platform
Alisha Reyes
Alisha Reyes
— August 30, 2019

New on Cloud Academy: CISSP, AWS, Azure, & DevOps Labs, Python for Beginners, and more…

As Hurricane Dorian intensifies, it looks like Floridians across the entire state might have to hunker down for another big one. If you've gone through a hurricane, you know that preparing for one is no joke. You'll need a survival kit with plenty of water, flashlights, batteries, and n...

Read more
  • AWS
  • Azure
  • Google Cloud Platform
  • New content
  • Product Feature
  • Python programming
Alisha Reyes
Alisha Reyes
— August 22, 2019

How to Unlock Complimentary Access to Cloud Academy

Are you looking to get trained or certified on AWS, Azure, Google Cloud Platform, DevOps, Cloud Security, Python, Java, or another technical skill? Then you'll want to mark your calendars for August 23, 2019. Starting Friday at 12:00 a.m. PDT (3:00 a.m. EDT), Cloud Academy is offering c...

Read more
  • AWS
  • Azure
  • cloud academy content
  • complimentary access
  • GCP
  • on the house
Avatar
Andrew Larkin
— August 13, 2019

Content Roadmap: AZ-500, ITIL 4, MS-100, Google Cloud Associate Engineer, and More

Last month, Cloud Academy joined forces with QA, the UK’s largest B2B skills provider, and it put us in an excellent position to solve a massive skills gap problem. As a result of this collaboration, you will see our training library grow with additions from QA’s massive catalog of 500+...

Read more
  • AWS
  • Azure
  • content roadmap
  • Google Cloud Platform
Avatar
Andrew Larkin
— August 7, 2019

Disadvantages of Cloud Computing

If you want to deliver digital services of any kind, you’ll need to estimate all types of resources, not the least of which are CPU, memory, storage, and network connectivity. Which resources you choose for your delivery —  cloud-based or local — is up to you. But you’ll definitely want...

Read more
  • AWS
  • Azure
  • Cloud Computing
  • Google Cloud Platform
Orion Withrow
Orion Withrow
— July 24, 2019

How to Effectively Use Azure Management Groups, Subscriptions, and Resource Groups

When used individually, Azure Management Groups, Subscriptions, and Resource Groups are very powerful. But when used together, they can establish the entire organizational structure of Azure. In this article, I will explain Azure Resource Manager, Management Groups, Subscriptions an...

Read more
  • Azure
  • azure management groups
  • azure resource groups
  • azure subscriptions
Alisha Reyes
Alisha Reyes
— July 22, 2019

Cloud Academy’s Blog Digest: July 2019

July has been a very exciting month for us at Cloud Academy. On July 10, we officially joined forces with QA, the UK’s largest B2B skills provider (read the announcement). Over the coming weeks, you will see additions from QA’s massive catalog of 500+ certification courses and 1500+ ins...

Read more
  • AWS
  • Azure
  • Cloud Academy
  • Cybersecurity
  • DevOps
  • Kubernetes
Avatar
Paola Di Pietro
— July 19, 2019

Top 10 Things Cybersecurity Professionals Need to Know

There has been an increase in data breaches over the recent years. With almost 143 million Americans who have had their data compromised in data breaches. These breaches include all sorts of sensitive data, including financial information, election controversies, social security, just t...

Read more
  • Azure
  • cyber security
  • Security
Avatar
Guy Hummel
— June 26, 2019

Running Apache Spark on Azure Databricks

In this article, we’ll cover how to set up an Azure Databricks cluster and how to run queries in an interactive notebook. However, this article only scratches the surface of what you can do with Azure Databricks. If you would like to learn more, including how to create graphs, run sched...

Read more
  • Azure
Avatar
Thomas Mitchell
— June 25, 2019

Understanding the Core Azure Architectural Components

Microsoft Azure relies on a few key architectural components to provide redundancy and high availability. Core Azure architectural components include Azure regions, Azure Availability Zones, resource groups, and the Azure Resource Manager. In this article, we’ll discuss the basics ab...

Read more
  • Azure
Avatar
Guy Hummel
— June 6, 2019

How to Become a Microsoft Certified Azure Administrator

Microsoft Azure is one of the hottest cloud services on the planet, and it’s growing at a phenomenal rate. This rapid growth has created a huge demand for people who know how to administer and manage Azure implementations. To make it easier for employers to verify the skills of Azure...

Read more
  • Azure
  • exam