A great architecture helps guide you to design, build, and continuously improve a secure, reliable, and efficient application. In this post, we’ll introduce you to the pillars and principles that are essential to a great 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.
Design
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:
- Security
- Performance and scalability
- Availability and recoverability
- Efficiency and operations
SECURTIY
Data is the most valuable piece of your organization’s technical footprint. In this pillar, you’ll be focused on securing access to your architecture through authentication and protecting your application and data from network vulnerabilities. The integrity of your data should be protected as well, using tools like encryption. You must think about security throughout the entire lifecycle of your application, from design and implementation to deployment and operations. The cloud provides protections against a variety of threats, such as network intrusion and DDoS attacks, but you still need to build security into your application, processes, and organizational culture.
PERFORMANCE & SCALABILITY
For an architecture to perform well and be scalable, it should properly match resource capacity to demand. Traditionally, cloud architectures do so by scaling applications dynamically based on activity in the application. Demand for services change, so it’s important for your architecture to have the ability to adjust to demand as well. By designing your architecture with performance and scalability in mind, you’ll provide a great experience for your customers while being cost-effective.
AVAILABILITY AND RECOVERABILITY
Every architect’s worst fear is having your architecture go down with no way to recover it. A successful cloud environment is designed in a way that anticipates failure at all levels. Part of anticipating these failures is designing a system that can recover from the failure, within the time required by your stakeholders and customers.
EFFICIENCY AND OPERATIONS
You will want to design your cloud environment so that it’s cost-effective to operate and develop against. Inefficiency and waste in cloud spending should be identified to ensure you’re spending money where we can make the greatest use of it. You need to have a good monitoring architecture in place so that you can detect failures and problems before they happen or, at a minimum, before your customers notice. You also need to have some visibility in to how your application is using its available resources, through a robust monitoring framework.
SHARED RESPONSIBILITY
Moving to the cloud introduces a model of shared responsibility. In this model, your cloud provider will manage certain aspects of your application, leaving you with the remaining responsibility. In an on-premises environment you are responsible for everything. As you move to infrastructure as a service (IaaS), then to platform as a service (PaaS) and software as a service (SaaS), your cloud provider will take on more of this responsibility. This shared responsibility will play a role in your architectural decisions, as they can have implications on cost, operational capabilities, security, and the technical capabilities of your application. By shifting these responsibilities to your provider you can focus on bringing value to your business and move away from activities that aren’t a core business function.
SUMMARY
Architecture is the foundation of your application’s design. A great architecture will give you the confidence that your app can sustainably meet the needs of your customers both now and in the future. The architectural priorities and needs of every app are different, but the four pillars of architecture are an excellent guidepost you can use to make sure that you have given enough attention to every aspect of your application:
- Security: Safeguarding access and data integrity and meeting regulatory requirements
- Performance and scalability: Efficiently meeting demand in every scenario
- Availability and recoverability: Minimizing downtime and avoiding permanent data loss
- Efficiency and operations: Maximizing maintainability and ensuring requirements are met with monitoring
Focusing on these pillars when designing your architecture will ensure you’re laying a solid foundation for your applications in the cloud. With a solid foundation, you’ll be able to drive innovation through your environment, build solutions that your users will love, and foster the trust of your customers.