Cloud Design Patterns – The Final Post
We arrive at our last appointment with Cloud Design Patterns.After the first introductory post, we focused on patterns for the AWS cloud, and...Learn More
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.
The 24 design patterns are divided into 8 Problem Areas, each with its own symbol.
|Design and Implementation|
|Management and Monitoring|
|Performance and Scalability|
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.
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.
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:
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.
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.
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.
Microsoft has offered Azure certification exams for years, but until recently, they were all meant for technical IT professionals. Now non-technical professionals, such as salespeople and managers, can take the new AZ-900 exam to prove their understanding of Azure fundamentals. People w...
Archive StorageArchive Storage offers the lowest storage costs of all Azure storage. Its retrieval costs, however, are higher when compared to Hot and Cool storage. The archive tier of storage is designed for data that can tolerate several hours of latency when being retrieved. It’s a...
Welcome to part one of our series on Azure Storage. Stay tuned for the second part. An Overview of Azure StorageMicrosoft Azure Storage is a cloud-based storage offering that provides multiple storage solutions for organizations. In addition to a massively scalable object store for ...
Harvard Business Review recently estimated that some 90% of corporate training never gets applied on the job. Given the $200B training industry, that is a staggering amount of waste. One reason for the disconnect? Lack of context.Cloud Academy’s platform was built to make it extraor...
Microsoft Azure is the fastest growing cloud provider. Azure’s revenue grew an incredible 76% in the last quarter of 2018. As more and more businesses move their IT infrastructure to Microsoft’s cloud platform, the demand for Azure professionals keeps rising. Since there are relatively ...
So just what is Heroku? It's a service for developers eager to get their applications online without having to worry about infrastructure details.Metered, pay-as-you-go Cloud Computing services come in all kinds of flavors. Infrastructure as a Service (IaaS) offerings like AWS allow e...
Cloud Computing, like any computing, is a combination of CPU, memory, networking, and storage. Infrastructure as a Service (IaaS) platforms allow you to store your data in either Block Storage or Object Storage formats.Understanding the differences between these two formats - and how ...
What are Azure Blueprints?Blueprints, in the traditional sense, are used by architects and engineers to design and build new things. They are used to ensure that the final products are built to specifications and in compliance with certain standards and requirements.Azure Bluepri...
The move to the cloud is picking up steam. As such, many corporations are beginning to find themselves supporting a mixture of on-prem apps as well as cloud apps. Users are finding that they need access to this mix of applications as well. As one would expect, this can become a challe...
As Head of Content at Cloud Academy I work closely with our customers and my domain leads to prioritize quarterly content plans that will achieve the best outcomes for our customers.We started 2018 with two content objectives: To show customer teams how to use Cloud Services to solv...
IoT, or the ‘Internet of Things’, is an intriguing and rapidly growing technology that's bringing significant change to important elements of modern life. According to Gartner, IoT security spending alone is set to reach $1.5 billion during 2018.Like many newly minted terms, the def...
Azure Storage is a managed cloud storage offering from Microsoft. It provides a scalable store for data objects, a cloud-based file system, and even provides a messaging and NoSQL store. As a managed service, maintenance and support is handled by Microsoft Azure, taking the care and f...