Preface
Azure, the cloud from the Microsoft stable, is a mature and continually growing cloud platform. It is gaining lots of momentum, traction, and popularity and continues to be the preferred cloud platform for many. Azure is a large platform, but behind this platform are hundreds of Azure resources and services that make the magic happen. All these resources and services are provided to users uniformly using Azure Resource Manager. A cloud platform should respect users and each country's sovereign rules regarding security and data. Azure has more than 35 data centers across the globe and this number keeps on increasing every year. Azure has most of the security certifications that are available in the industry today. Azure provides different levels of control on deployment using different models, such as Infrastructure as a Service, Platform as a Service, and Software as a Service. It also provides rich resources and features to implement hybrid cloud. In fact, with the release of Azure Stack, Azure is one of the most feature-rich and mature platforms to implement hybrid deployments. Azure is an open cloud, allowing any operating system, any programming language, and any runtime to run on it. Azure is flexible and provides multiple resources and options for implementing similar functionalities, although they do have some differences. Azure provides multiple cost and usage models and covers almost every kind of customer—whether in pay-as-you-go mode, enterprise agreements, or a cloud solution provider model. On top of these, it has multiple offers, such as reserved VM instances and Azure hybrid benefits to reduce the overall cost of deployments. Azure provides rich tooling to ensure that customers can automate their deployments and also start their journey on DevOps. DevOps is an emerging paradigm and Azure provides all the features to get it implemented.
With so many options, resources, and different deployment models, it is important that users of Azure understand the purpose, importance, and utility of each resource at the architectural level, and how they compare to their peer resources. Based on requirements, appropriate resources should be deployed. An architecture for a cloud-based solution comprises multiple resources. The choice of resources, their configuration, and interaction must be architected meticulously and appropriately. Azure provides advance platforms, such as IoT, serverless, and big data. These are emerging technologies and each of them is covered in this book.
Azure provides almost all kinds of services to meet the computing needs of any organization and it is important to approach them using the right strategy and architecture. This book is an attempt in this direction, to provide its users enough ammunition to design and architect their solutions, covering design patterns, high availability, security, scalability, cost management, monitoring, and auditing. The topics of all of the chapters in this book demand a complete book of their own. It was extremely difficult to summarize the architectural concerns, best practices, and using Azure features in a single chapter. I would urge all readers to go through each chapter and read the Microsoft online documentation related to each chapter to gain further insights.