Azure App Service in action
In the real world, there are generally two possibilities for hosting your web applications or APIs in the cloud. You can follow the classic model a...Learn More
Let’s talk about Cloud Design Patterns.
We introduced the topic here, then we discussed how it applies specifically to the AWS cloud here. 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 info graphic poster 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.
The book also presents guidance topics. These, in fact, represent the basic orientation for developing applications in the cloud:
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 for 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 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.
Google Cloud Platform (GCP) has evolved from being a niche player to a serious competitor to Amazon Web Services and Microsoft Azure. In 2018, research firm Gartner placed Google in the Leaders quadrant in its Magic Quadrant for Cloud Infrastructure as a Service for the first time. In t...
This is the second of a two-part series covering Azure Stack. Our first post provided an introduction to Azure Stack. Why would your organization consider using Azure Stack? What are the key differences between Azure Stack and Microsoft Azure? In this post, we'll begin to answer bot...
Microsoft Ignite 2018 was a big success. Over 26,000 people attended Microsoft’s flagship conference for IT professionals in sunny Orlando, Florida. As usual, Microsoft made a huge number of announcements, ranging from minor to major in importance. To save you the trouble of sifting thr...
Cloud Academy is proud to be a sponsor of the Microsoft Ignite Conference to be held September 24 - 28 in Orlando, Florida. This is Microsoft’s biggest event of the year and is a great way to stay up to date on how to get the most from Microsoft’s products. In this post, I’ll help you p...
One of the main promises of cloud computing is access to nearly endless capacity. However, it doesn’t come cheap. With the introduction of Spot Instances for Amazon Web Services’ Elastic Compute Cloud (AWS EC2) in 2009, spot instances have been a way for major cloud providers to sell sp...
A Comparison of Machine Learning Services on AWS, Azure, and Google CloudArtificial intelligence and machine learning are steadily making their way into enterprise applications in areas such as customer support, fraud detection, and business intelligence. There is every reason to beli...
In on-premises environments, data security is typically a siloed activity, with a company's security team telling the internal technology groups (server administration, database, networking, and so on) what needs to be protected against intrusion.This approach is absolutely a bad idea...
If you want to deliver digital services of any kind, you’ll need to compute resources including 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 to do your homework first.Cloud ...
The credibility of Microsoft Azure continues to grow in the first quarter of 2018 with an increasing number of enterprises migrating their workloads, resulting in a jump for Azure from 10% to 13% in market share. Most organizations will find that simply “lifting and shifting” applicatio...
By now, you’ve heard it many times and from many sources: cloud technology is the future of IT. If your organization isn’t already running critical workloads on a cloud platform (and, if your career isn’t cloud-focused), you’re running the very real risk of being overtaken by nimbler co...
Keeping your cloud environment safe continues to be the top priority for the enterprise, followed by spending, according to RightScale’s 2018 State of the Cloud report.The safety of your cloud environment—and the data and applications that your business runs on—depends on how well y...
With the average cost of downtime estimated at $8,850 per minute, businesses can’t afford to risk system failure. Full access to services and data anytime, anywhere is one of the main benefits of cloud computing.By design, many of the core services with the public cloud and its unde...