Introduction to The Four Pillars of Azure Architecture
The cloud has changed the way organizations solve their business challenges, and how applications and systems are designed. The role of a solution architect is not only to deliver business value through the functional requirements of the application, but to ensure the solution is designed in ways that are scalable, resilient, efficient and secure. Solution architecture is concerned with the planning, design, implementation, and ongoing improvement of a technology system. The architecture of a system must balance and align the business requirements with the technical capabilities needed to execute those requirements. It includes an evaluation of risk, cost, and capability throughout the system and its components.
While there is no one-size-fits-all approach to designing an architecture, there are some universal concepts that will apply regardless of the architecture, technology, or cloud provider. While these are not all-inclusive, focusing on these concepts will help you build a reliable, secure, and flexible foundation for your application.
A great architecture starts with a solid foundation built on four pillars:
- Availability and recoverability
- Efficiency and operations
- Performance and scalability
Availability and recoverability
High Availability was, and still is one of the hottest buzz words when advocating for migrating your business to the cloud.
What is High Availability?
Designing for High Availability focuses on keeping uptime at a high level, and includes a vast set of tools in our toolbox, where setting up availability zones and availability sets are made easy to implement.
We can even create a VM scale set using availability zones, where geo-redundant availability options takes advantages of failover to secondary regions.
Recoverability takes advantage of a Recovery Service Vault, an entity that stores the backups and recovery points created over time. It provides essential services, such as:
- Enhanced capabilities to help secure backup data
- Central monitoring for your hybrid IT environment
- Role-Based Access Control (RBAC)
- Protect all configurations of Azure Virtual Machines
- Instant restore for IaaS VMs
Efficiency and operations
Efficiency is focused on identifying and eliminating waste within your environment. The cloud is a pay-as-you-go service and waste typically comes from provisioning more capacity than demand requires. There are operational costs that go along with this as well. These operational costs show up as wasted time and increased error. Focusing on these as you design your architecture will help you identify and eliminate waste across your environment.
Waste can show up in several ways:
- A virtual machine that is always 90% idle
- Paying for a license included in a virtual machine when a license is already owned
- Retaining infrequently accessed data on a storage medium optimized for frequent access
- Manually repeating the build of a non-production environment
Operationally, it’s important to have a robust monitoring strategy. This helps you identify areas of waste, troubleshoot issues, and optimize the performance of your application. A multilayered approach is essential. Gathering data points from components at every layer will let you alert when values are outside of acceptable values and track spending over time.
Operational Best Practices includes:
- Automating operations where you would normally spend time setting up the desired operation. Automation also have a side effect to take advantage of, as it improves standardization as well as making your working day more efficient.
- Thorough monitoring and logging, identifying performance issues before users are affected, creating baselines, and also to identify cost efficiencies and gaining knowledge to troubleshoot issues.
- DevOps and continuous integration. DevOps is as much cultural as it is technical, but can bring many benefits to organizations that embrace it.
Performance and scalability
Among the vast list of advantages with virtualization and cloud computing, one of the really huge advantages is the ability to increase performance as well as scale up and scale out resources without causing downtime.
- Just for clarification, which is covered later, 2 changes only requires the system shut down first. Adding network resources and changing sizing, where sizing means options for CPU, memory and storage utilization within the models available when creating a VM. A short list is available here.
Autoscaling takes it to the next level, where autoscaling takes advantage of the elasticity of cloud-hosted environments while easing management overhead. It reduces the need for an operator to continually monitor the performance of a system and make decisions about adding or removing resources.
As the Cloud solutions takes a load off the traditional concepts of securing your IT Infrastructure, we need to define the focus areas in the solutions we architect.
Tenants share responsibilities with the Service providers, in this case Microsoft, in comparison to the traditional on-premise setup, where we had to protect and count for all areas.
In an infrastructure as a Service (IaaS) model, Microsoft services the physical hosts, network and datacenter.
In a Platform as a Service (PaaS) model, Microsoft also services the Operating System.
In a Software as a Service (Saas), Microsoft services Network and Applications as well.
The Service Level Agreements (SLA) for Microsofts provided Services in Azure can be read here, which is worth reading when signing up and trusting Microsofts Cloud Services.
Azure Architecture Framework is a set of guiding tenets that can be used to improve the quality of a workload. The framework consists of five pillars of architecture excellence: Cost, DevOps, Resiliency, Scalability, and Security.