We’ve talked to many customers since Azure was released nearly eight years ago. Back then, Azure had only a few services. Now it’s grown tremendously and keeps expanding. Cloud computing itself also has evolved to embrace customer demands. For example, most consumer-facing apps require a much faster velocity of updates than before, to differentiate them from competitors. That’s part of the reason why new architecture styles such as microservices are gaining traction today. Container-based and serverless workloads are becoming de facto. We see all of these new services and industry trends as a great opportunity, but at the same time, they can be a source of confusion for customers. Customers have a lot of questions, such as:
- Which architecture should I choose? Microservices? N-Tier? How do we decide?
- There are many storage choices, which one is the best for me?
- When should I use a serverless architecture? What’s the benefit? Are there any limitations?
- How can I improve scalability as well as resiliency?
- What’s DevOps culture? How can I introduce it to my organization?
To help answer these questions, the AzureCAT patterns & practices team published the Azure Application Architecture Guide. This guide is intended to provide a starting point for architects and application developers who are designing applications for the cloud. It guides the reader to choose an architectural style, then select appropriate technologies and apply relevant design patterns and proven practices. It also ties together much of the existing content on the site. The following diagram shows the steps in the guide along with the related topics.
Architecture styles. The first decision point is the most fundamental. What kind of architecture are you building? It might be a microservices architecture, a more traditional N-tier application, or a big data solution. We have identified seven distinct architecture styles. There are benefits and challenges to each.
Technology Choices. Two technology choices should be decided early on, because they affect the entire architecture. These are the choice of compute and storage technologies. The term compute refers to the hosting model for the computing resources that your applications runs on. Storage includes databases but also storage for message queues, caches, IoT data, unstructured log data, and anything else that an application might persist to storage.
Design Principles. Throughout the design process, keep these ten high-level design principles in mind.
Pillars. A successful cloud application will focus on these five pillars of software quality: Scalability, availability, resiliency, management, and security.
Cloud Design Patterns. These design patterns are useful for building reliable, scalable, and secure applications on Azure. Each pattern describes a problem, a pattern that addresses the problem, and an example based on Azure.
This guide is also available for download as an ebook.
We hope you will find the Azure Application Architure Guide useful. Lastly, we value your feedback and suggestions. If you see anything that is missing in the content, suggestions for improvements, or want to share information that has worked well for your customers and could be elevated to a broader audience, please contact us at arch-center-feedback@microsoft.com.