Cloud migration has become increasingly important as companies and organizations discover the massive benefits as compared to physical on-premises servers. While it sounds like a simple maneuver to simply “switch over” to the cloud, the reality is more complicated.
If a company wants to build great cloud solutions, they need to start with a set of best practices that guide the architecture of the system. The great news is that both Microsoft and Amazon Web Services (AWS) have released their own set of aligned guidelines to help ensure that all cloud workloads can be carried out with the highest level of reliability and performance.
These guidelines are called the Microsoft Azure Well-Architected framework. They should be incorporated into every phase of your cloud platform development and migration. In this Azure well-architected review, we’ll explore some of the principles and definitions behind this topic.
What is the Microsoft Azure Well-Architected Framework?
While there are, of course, a host of similarities between cloud vendors, each one has its own unique features. It’s important to design cloud architecture in a way that takes full advantage of all those beneficial features. Additionally, since the behind the scenes functioning is slightly different, it’s vital to build in a way that is optimized for the cloud platform you are using.
AWS was an early adopter of the idea of creating a guidance framework to build around. While many of the principles could be applied elsewhere, it was only a matter of time before other vendors followed suit with their own version.
Azure Well-Architected Framework was introduced as similar guidance to the world in July of 2020. The framework is built around the same set of pillars you’ll find in the AWS Well-Architected Principles. Let’s drill down on exactly what those pillars are.
The Five Pillars Approach
There are five pillars recognized as the best practices and guidance to build a Microsoft Azure Well-Architected Framework. They are:
- Cost Optimization
- Operational Excellence
- Performance Efficiency
- Reliability
- Security
Each one of these pillars serves as a guide that instructs your design team on how to work together to build assets and resources to achieve these aims. Let’s explore each one of these pillars in a little more detail.
Cost Optimization
If IT teams designing cloud architecture aren’t careful, they’ll find costs spiraling out of control. Focusing on this pillar not only prevents that undesirable outcome, but also looks at the return on investment. Asking questions such as:
- What specific solutions are going to get the most “bang for the buck?”
- Which solutions are a value add?
- What are features that might be nice to have, but aren’t really necessary to manage workloads on Azure?
All departments and teams need to provide input during the design phase. Each one can provide guidance on which features and resources are necessary for peak performance. The impact on the bottom line can then be evaluated, and a decision made with cost management as a guiding principle.
One guiding principle that’s emerged as a best practice is following a “pay as you go” strategy, which allows for scaling on a timeline based on customer success. This prevents having to make a massive upfront investment.
A huge benefit to spending time focusing on this pillar is a demonstrably accelerated time to market. Additionally, achieving high-cost optimization metrics means higher ROI and delivering on mission-critical objectives.
Operational Excellence
The goal here is to keep an application running in production when running operations processes. By deploying code automatically, there’s a much lower chance there will be any problems. Ensuring that applications are running as expected means a higher level of availability for all users.
This is where DevOps principles come into play. In other words, combining development, IT operations, Quality engineering, and security teams, to ensure complete and consistent operational performance.
Azure solutions support the type of monitoring and diagnostic tools needed to achieve operational excellence. There are a few phases to this monitoring and diagnostics process that DevOps need to be aware of:
- Instrumentation: logging data from multiple sources.
- Collection: consolidation of the data into one, easy-to-read place.
- Analysis: take a look at the data to make determinations about platform health
- Visualization: spot trends, and make changes to automation
Performance Efficiency
Achieving optimal workload scaling is essential for any cloud build. The number one way cloud architects are achieving this is through the Platform as a service (PaaS) model of delivery. By purchasing resources on an as-needed basis, you can boost your level of performance efficiency. Using PaaS builds scaling into your infrastructure, so any demand can be met, while avoiding the waste of resources.
Horizontal scaling is another principle that should help achieve performance efficiency. This involves the use of virtual machines, placed behind a load balancer. The goal is to design stateless apps that won’t lead to bottlenecks.
It’s crucial to incorporate performance testing while in development. Load and stress tests can let the IT professionals know the maximum load that can be supported by the infrastructure. This can then guide further changes and planning to maximize efficiency.
Reliability
Workload availability is a huge concern for IT teams and end users. If users can’t access their workload, productivity and profitability suffer greatly. This is where designing for specific business requirements is so important.
The other major part of the reliability pillar is designing for failure. This may seem a bit counterintuitive. Recognizing that in a complex environment like Azure, there will be failures, you can build in a way that increases resiliency.
Automated monitoring of application health is essential for the remediation of any failures. This needs to be considered in all phases of the build process. The same drive towards automation can also promote self-healing. By having a “plan for failure” approach, the protocols can be pre-loaded, so failures can be addressed in little time.
Security
The sheer number and threat of cyberattacks like network intrusions or DDoS attacks is increasing exponentially. Developers can’t just approach security solutions as something to be put in place after a system is designed. They need to be an integral part of the process through the lifecycle of an application.
Just like the reliability pillar, it’s important to think in terms of assuming the failure of security measures. This way, any intrusions can be dealt with immediately and damage minimized. The best practice principle is “Zero Trust,” which requires a continuous level of security assurance.
Similarly, adopting a large scale of automation helps to detect unauthorized activity on a continuous basis, so the correct action can be taken.
Another way to achieve success within the security pillar is to utilize the Azure Active Directory. This fully managed identity and access management service is already integrated into most Azure and Azure-compatible services.
Ensuring that data is encrypted both in transit and at rest is another key to achieving the security pillar. Efficiently providing for this is something that needs to be incorporated in both the planning and execution of a cloud build.
Continual Re-evaluation and Updates
The five pillars of the Microsoft Azure Well-Architected Framework are intended for the entire lifespan of your cloud platform. While integrating them into the design itself is essential, changes and updates are part of the best practices guidance from Microsoft Azure.
Changes need to be made incrementally. This way, your IT team can determine if there are any issues with deployment, and return to the starting point if necessary.
Tools for Microsoft Azure
No cloud migration to Microsoft Azure could be called a Well-Architected framework if it didn’t take advantage of the native tools that are part of the platform. One of these tools has already been mentioned: Azure Active Directory, but there are several others that should be considered as part of any well-architected Azure build.
Azure Advisor
The most central tool is the Azure Advisor. This is a personalized dashboard that works with all of your automated monitoring applications. It’s available directly through the Azure portal. The user seeking to use Advisor needs to be an owner, contributor or reader of a resource.
It works seamlessly with the following:
- Azure Cache
- Azure Data Factory
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Traffic Manager
- Virtual machines
- Many more resource types
Checking in with Advisor is a valuable way to get actionable data to ensure you are continuing to follow the five pillars of the well-architected framework. The Advisor will automatically display recommendations, each tied to each of the five pillars. It puts the user in control with the option to postpone or dismiss the recommendations entirely.
Azure Active Directory
This cloud-based identity and access management service can control access to applications and resources. It works with Microsoft native programs like 365 and Office, as well as many other SaaS applications. It has several pricing tiers that allow customizing and scalability
Azure Monitor
While Azure advisor makes recommendations for further actions, most of the time the IT team simply needs to understand what’s going on globally throughout the full cloud platform. Azure Monitor is built in, and provides a single point to monitor and troubleshoot.
Azure Automation
Staying updated and properly configured is a large part of achieving the five pillars. This tool allows for automated operation in deployment, and response to various issues. It fully integrates with Azure native and third-party tools.
Azure Policy
Achieving the security pillar depends in large part on compliance with security procedures. Policy works within Azure to determine resource compliance.
Why Did Microsoft Release the Azure Well-Architected Framework?
As distributed architectures, cloud platforms are inherently quite complex. Hybrid clouds are even more so as they may be utilizing multiple vendors and even on-premises servers. Similarly, the business organizations that utilize cloud computing solutions are also increasingly complex and demanding. This means that there’s never a one size fits all approach to building a platform.
Unfortunately, highly individualized approaches that are just best guesses often result in poor performance. Microsoft and Amazon Web Services recognized this and promulgated this list of pillars to drive design.
The pillars should not be thought of as standing individually. They need to work together to achieve a cloud platform that is reliable, cost-effective, high performing, and secure.
The result has been a success. Organizations have seen improvements in their performance baselines, better than ever systemwide availability, reduction in bottlenecks, and improved security.
Azure and AWS Have Created Industry Standard Best Practices
With both AWS and Microsoft Azure aligning their best practice approach, there is little doubt that following the five pillars is the best way to build out a cloud platform.
A huge benefit of this alignment is that making comparisons between cloud providers is easier. Prior to the adoption of the well-architected framework, the language surrounding the cloud model had various and sometimes conflicting definitions. Now that terminology has been standardized, organizations can make more accurate comparisons and select the vendor that best works for them.