Implementing Azure Cloud Design Patterns: Implement efficient design patterns for data management, high availability, monitoring and other popular patterns on your Azure Cloud
()
About this ebook
A well designed cloud infrastructure covers factors such as consistency, maintenance, simplified administration and development, and reusability. Hence it is important to choose the right architectural pattern as it has a huge impact on the quality of cloud-hosted services. This book covers all Azure design patterns and functionalities to help you build your cloud infrastructure so it fits your system requirements.
This book initially covers design patterns that are focused on factors such as availability and data management/monitoring. Then the focus shifts to complex design patterns such as multitasking, improving scalability, valet keys, and so on, with practical use cases. The book also supplies best practices to improve the security and performance of your cloud.
By the end of this book, you will thoroughly be familiar with the different design and architectural patterns available with Windows Azure and capable of choosing the best pattern for your system.
Read more from Oliver Michalski
Implementing Azure Solutions Rating: 0 out of 5 stars0 ratingsImplementing Azure: Putting Modern DevOps to Use: Transform your software deployment process with Microsoft Azure Rating: 0 out of 5 stars0 ratingsImplementing Azure Solutions: Deploy and manage Azure containers and build Azure solutions with ease, 2nd Edition Rating: 0 out of 5 stars0 ratingsDeployment of Microsoft Azure Cloud Solutions: A complete guide to cloud development using Microsoft Azure Rating: 0 out of 5 stars0 ratings
Related to Implementing Azure Cloud Design Patterns
Related ebooks
Hands-On Networking with Azure: Build large-scale, real-world apps using Azure networking solutions Rating: 0 out of 5 stars0 ratingsHands-On Cloud Solutions with Azure: Architecting, developing, and deploying the Azure way Rating: 0 out of 5 stars0 ratingsServerless Integration Design Patterns with Azure: Build powerful cloud solutions that sustain next-generation products Rating: 0 out of 5 stars0 ratingsMigrating Applications to the Cloud with Azure: Re-architect and rebuild your applications using cloud-native technologies Rating: 0 out of 5 stars0 ratingsJavaScript Cloud Native Development Cookbook: Deliver serverless cloud-native solutions on AWS, Azure, and GCP Rating: 0 out of 5 stars0 ratingsHands-On Azure for Developers: Implement rich Azure PaaS ecosystems using containers, serverless services, and storage solutions Rating: 0 out of 5 stars0 ratingsCloud Analytics with Google Cloud Platform: An end-to-end guide to processing and analyzing big data using Google Cloud Platform Rating: 0 out of 5 stars0 ratingsVMware Cross-Cloud Architecture: Automate and orchestrate your Software-Defined Data Center on AWS Rating: 0 out of 5 stars0 ratingsDesigning AWS Environments: Architect large-scale cloud infrastructures with AWS Rating: 0 out of 5 stars0 ratingsMicrosoft Azure Security Rating: 0 out of 5 stars0 ratingsHybrid Cloud for Developers: Develop and deploy cost-effective applications on the AWS and OpenStack platforms with ease Rating: 0 out of 5 stars0 ratingsAnsible 2 Cloud Automation Cookbook: Write Ansible playbooks for AWS, Google Cloud, Microsoft Azure, and OpenStack Rating: 0 out of 5 stars0 ratingsMicroservices Development Cookbook: Design and build independently deployable modular services Rating: 0 out of 5 stars0 ratingsHands-On Edge Analytics with Azure IoT: Design and develop IoT applications with edge analytical solutions including Azure IoT Edge Rating: 0 out of 5 stars0 ratingsGetting Started with BizTalk Services Rating: 0 out of 5 stars0 ratingsMulti-Cloud Architecture and Governance: Leverage Azure, AWS, GCP, and VMware vSphere to build effective multi-cloud solutions Rating: 0 out of 5 stars0 ratingsLearning NServiceBus Sagas Rating: 0 out of 5 stars0 ratingsSolutions Architect's Handbook: Kick-start your solutions architect career by learning architecture design principles and strategies Rating: 0 out of 5 stars0 ratingsMicroservices with Clojure: Develop event-driven, scalable, and reactive microservices with real-time monitoring Rating: 0 out of 5 stars0 ratingsArchitecting Data-Intensive Applications: Develop scalable, data-intensive, and robust applications the smart way Rating: 0 out of 5 stars0 ratings
Networking For You
CompTIA Network+ Practice Tests: Exam N10-008 Rating: 0 out of 5 stars0 ratingsCybersecurity: The Beginner's Guide: A comprehensive guide to getting started in cybersecurity Rating: 5 out of 5 stars5/5Group Policy: Fundamentals, Security, and the Managed Desktop Rating: 5 out of 5 stars5/5Networking For Dummies Rating: 5 out of 5 stars5/5Microsoft Certified Azure Fundamentals Study Guide: Exam AZ-900 Rating: 0 out of 5 stars0 ratingsA Beginner's Guide to Ham Radio Rating: 0 out of 5 stars0 ratingsBeginning IoT Projects: Breadboard-less Electronic Projects Rating: 0 out of 5 stars0 ratingsAWS Certified Cloud Practitioner Study Guide: CLF-C01 Exam Rating: 5 out of 5 stars5/5CompTIA Network+ Study Guide: Exam N10-009 Rating: 0 out of 5 stars0 ratingsThe Compete Ccna 200-301 Study Guide: Network Engineering Edition Rating: 5 out of 5 stars5/5Advanced OSINT Strategies: Online Investigations And Intelligence Gathering Rating: 0 out of 5 stars0 ratingsEmergency Preparedness and Off-Grid Communication Rating: 3 out of 5 stars3/5The Windows Command Line Beginner's Guide: Second Edition Rating: 4 out of 5 stars4/5CompTIA Network+ Certification Guide (Exam N10-008): Unleash your full potential as a Network Administrator (English Edition) Rating: 0 out of 5 stars0 ratingsHome Networking Do-It-Yourself For Dummies Rating: 4 out of 5 stars4/5SharePoint For Dummies Rating: 0 out of 5 stars0 ratingsRaspberry Pi Electronics Projects for the Evil Genius Rating: 3 out of 5 stars3/5Networking All-in-One For Dummies Rating: 5 out of 5 stars5/5Amazon Web Services (AWS) Interview Questions and Answers Rating: 5 out of 5 stars5/5OSINT 101 Handbook: Expert-Level Intelligence Gathering: Advanced Reconnaissance, Threat Assessment, And Counterintelligence Rating: 0 out of 5 stars0 ratingsLinux Bible Rating: 0 out of 5 stars0 ratingsProgramming Arduino: Getting Started with Sketches Rating: 4 out of 5 stars4/5Microsoft Azure For Dummies Rating: 0 out of 5 stars0 ratingsQuantum Computing For Dummies Rating: 0 out of 5 stars0 ratingsPractical Ethical Hacking from Scratch Rating: 5 out of 5 stars5/5CCNA Certification Study Guide, Volume 2: Exam 200-301 Rating: 4 out of 5 stars4/5Networking Fundamentals: Develop the networking skills required to pass the Microsoft MTA Networking Fundamentals Exam 98-366 Rating: 0 out of 5 stars0 ratingsNmap Essentials Rating: 4 out of 5 stars4/5
Reviews for Implementing Azure Cloud Design Patterns
0 ratings0 reviews
Book preview
Implementing Azure Cloud Design Patterns - Oliver Michalski
Implementing Azure Cloud Design Patterns
Implement efficient design patterns for data management, high availability, monitoring, and other popular patterns on your Azure Cloud
Oliver Michalski
Stefano Demiliani
BIRMINGHAM - MUMBAI
Implementing Azure Cloud Design Patterns
Copyright © 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Gebin George
Acquisition Editor: Heramb Bhavsar
Content Development Editor: Nithin Varghese
Technical Editor: Komal Karne
Copy Editor: Safis Editing
Project Coordinator: Virginia Dias
Proofreader: Safis Editing
Indexer: Francy Puthiry
Graphics: Tom Scaria
Production Coordinator: Melwyn Dsa
First published: January 2018
Production reference: 1250118
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78839-336-2
www.packtpub.com
I would like to dedicate this book to my little daughter, Sara: I love you! maybe one day you will be proud of me for this!
– Stefano Demiliani
mapt.io
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
PacktPub.com
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at service@packtpub.com for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Contributors
About the authors
Oliver Michalski started his IT career in 1999 as a web developer. Now, he is a senior software engineer for Microsoft .NET and an SOA architect. He also works as an independent enterprise consultant in the field of Microsoft Azure. When he started with Microsoft Azure in 2011, there was no Azure community in Germany. Therefore, Oliver founded Azure Community Germany (ACD).
Oliver has been the chairman of the ACD, since April 2016, and since July 2017 he has been a Microsoft Most Valuable Professional for Microsoft Azure.
Stefano Demiliani is a Microsoft Certified Solution Developer (MCSD) and a long-time expert on different Microsoft technologies. He has a master's degree in computer engineering from Politecnico of Turin. He works as a CTO for EID/Navlab (Microsoft partner in Italy) and he's frequently involved on helping customers on moving their business to the Azure cloud.
He has worked with Packt for many IT books and he's the author of Building ERP solutions with Microsoft Dynamics NAV, a hands-on guide to building enterprise architectures based on the Microsoft Dynamics NAV ERP and the Azure platform.
This book is a dream that has come true (the cloud is my passion and writing a book about Azure is for me a reached target). Thanks to all the wonderful staff that has worked with me over these months, and thanks also to my family (I'll return to you all the hours spent working on this book).
About the reviewer
Florian Klaffenbach started his IT career in 2004 as first- and second-level IT support technician and IT salesman trainee for a B2B online shop. Since then, he has taken several steps from IT admin, to support agent, to community manager, and cloud architect at Dell and CGI, and then ended up as a technology solutions professional for Microsoft in 2017. In April 2016, he was awarded the Microsoft Most Valuable Professional, honoring his work for the IT community.
I want to thank the team at Packt for giving me the chance to review the book, as well as my little family for letting me invest the time I had into these projects.
Packt is searching for authors like you
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Table of Contents
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
An Introduction to the Microsoft Azure Platform
Cloud service models and cloud deployment models
Cloud service models
Cloud deployment models
Azure execution models
Azure application building blocks
Azure data services
Azure platform services
How is access to Azure organized?
How is work with Azure organized?
Summary
Compute Design and Management
IaaS I (Azure VMs)
What is an Azure series?
Single VMs
Multiple VMs
Azure availability sets
N-tier deployment
N-tier (multi-regions) deployment
IaaS II (Azure Container Services)
What is an Azure Container Service?
Understanding containers
Cluster
Orchestrator
Which Orchestrator should I choose?
Mesosphere DC/OS
Docker Swarm
Kubernetes
PaaS I (Azure App Services)
PaaS II (Azure Service Fabric, also known as Azure microservices)
Summary
Data Storing and Processing
Choosing the right data solution
What is variety?
What is volume?
Concurrency and consistency
Replication and redundancy
Other factors
Which Azure data services are available?
Management
Azure Data Catalog
Processing
Azure Data Factory
Azure Stream Analytics
Azure Time Series Insights
Storage
Azure Storage Blob service
Azure Storage Blob service premium
Azure Storage Queue service
Azure Storage Table service
Azure Files
SQL as a service
Azure SQL Database
SQL Server Stretch Database
Azure PostgreSQL
Azure MySQL
Other offers
NoSQL as a service
Azure CosmosDB
Big data
Azure HDInsight
Azure Data Lake Store
Azure Data Lake Analytics
Analytics
Cortana Intelligence Suite
AI
Azure Machine Learning
Cognitive Services
Bot Framework
Virtualization
PowerBI
PowerBI Embedded
Azure Time Series Insights
Summary
Networking Design and Management
Anatomy of a VNet infrastructure
Connectivity
Internet connectivity
Connectivity between Azure resources (internal connectivity)
Azure VNet peering
Azure global VNet peering
Azure VNet-to-VNet (VPN gateway)
On-premises connectivity
Azure Site-to-Site
Azure Point-to-Site
Azure ExpressRoute
Azure VNet service endpoints
Important note
Routing, load balancing, or more general traffic directions
Routing
User-defined routes
Routing using the BGP
Azure Load Balancer
Azure Traffic Manager
Azure Application Gateway
Security
NSG
Application security groups
Security infrastructure
NVA
Management and monitoring
Summary
Availability
What is availability?
First approach
Second approach
Uptime and downtime
SLA
Planned maintenance
What are the effects?
Azure autoscaling
Summary
Performance and Scalability
What is performance?
What is a DTU?
Service level objectives
Analyzing and interpreting performance data
What are our business workloads?
Why is knowledge about existing business workloads important to us?
What are we still missing?
Scaling
What can you see?
What is different here?
Where can I use autoscaling?
Summary
Monitoring and Telemetry
About telemetry data
What is a metric?
Client metrics
How do I collect the data from client metrics?
What data is collected?
Business metrics
How do I collect the data from business metrics?
What is a profiler?
What data is collected?
Application metrics
How do I collect the data from application metrics?
What data is collected?
System metrics
How do I collect the data from system metrics?
What data is collected?
Service metrics
How do I collect the data from service metrics?
What data is collected?
An overview of monitoring
Azure management portal
System specific tools
Microsoft SC
Microsoft OMS
How do I start my work with the OMS?
Azure Monitor
Which capabilities can be seen here?
Which data (metric) is available?
Azure Application Insights
What data is captured by Azure Application Insights?
Grafana
How do I start my work with Grafana?
Azure Log Analytics
If Azure Log Analytics is part of OMS, why do I need to talk about it again?
Azure Network Watcher
Summary
Resiliency
What is Resiliency?
Architecture design patterns for Resiliency
Retry pattern with transient failures
Load balancing
Data replication
Circuit Breaker pattern
Throttling pattern
Queue-Based Load Leveling pattern
Compensating Transaction pattern
Summary
Identity and Security
Security in the cloud
Azure network security
SSO and MFA
Azure MFA setup
Federation and the Federated Identity Pattern
Gatekeeper pattern
Valet Key pattern
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
Preface
A well-designed cloud infrastructure covers factors such as consistency, maintenance, simplified administration and development, security, scalability, and reusability. Hence, it is important to choose the right architectural pattern as it has a huge impact on the quality of cloud-hosted services.
This book covers all Azure design patterns and functionalities needed to help you build your cloud infrastructure to fit your system requirements. Each of these patterns describes a problem that you normally could have when implementing a cloud infrastructure—a recommended solution for your problem (pattern appliance) and pros and cons of applying this pattern.
Using a pattern (or at least thinking about it) is a recommended way of working when designing an enterprise cloud-based infrastructure.
Who this book is for
This book is targeted at cloud architects and cloud solution providers who are looking for an extensive guide to implementing different patterns for the deployment and maintenance of services in Microsoft Azure. Prior experience with Azure is required as the book is completely focused on design patterns.
What this book covers
Chapter 1, An Introduction to the Microsoft Azure Platform, gives an overview of the Azure platform. Also, we will learn the basics of cloud services and cloud deployment models, the Azure execution model, the Azure application building blocks, the Azure data services, and how to access and work with Azure.
Chapter 2, Compute Design and Management, discusses the basic architectures behind the compute services from the Azure platform, such as Azure VMs, Azure Container Services, Azure App Services, and Azure Service Fabric. We will also learn that services never act alone, but rather interact with various Azure resources.
Chapter 3, Data Storing and Processing, gives basic information on data storage and processing. Here we will get an answer to the question: How do you choose the right data solution? We will also see an overview of the Azure data services that are available.
Chapter 4, Networking Design and Management, takes you through the anatomy of a VNet, and the network elements also deep dives into connectivity, routing, and more.
Chapter 5, Availability, starts with an insight into specific aspects of architecture that are important for the daily use of the Azure platform and are part of the design process for your own Azure solutions.
Chapter 6, Performance and Scalability, provides an answer to all your questions related to these topics and also part of the design process for your own Azure solutions.
Chapter 7, Monitoring and Telemetry, covers these topics in two parts. In part one, we discuss the question of what type of data we are actually talking about. In part two, we discuss the possible ways to capture this data.
Chapter 8, Resiliency, describes the recommended patterns to implement in order to create a cloud-based solution that can handle and recover from failures in a secure way without compromising data and transactions.
Chapter 9, Identity and Security, describes the recommended patterns for implementing identity and security features on Azure (for users and for applications and cloud services).
To get the most out of this book
Activate a free Azure subscription (30 days with all the Azure features available to test). Practice with the samples described in the book.
Download the example code files
You can download the example code files for this book from your account at www.packtpub.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.
You can download the code files by following these steps:
Log in or register at www.packtpub.com.
Select the SUPPORT tab.
Click on Code Downloads & Errata.
Enter the name of the book in the Search box and follow the onscreen instructions.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR/7-Zip for Windows
Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Implementing-Azure-Cloud-Design-Patterns. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
Download the color images
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/ImplementingAzureCloudDesignPatterns_ColorImages.pdf.
Conventions used
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: Mount the downloaded WebStorm-10*.dmg disk image file as another disk in your system.
A block of code is set as follows:
public interface IOrderRepository
{
List
void Write(Order order);
}
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
public interface IOrderRepository
{
List
void Write(Order order);
}
Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: Now select the Queues option and add a new queue
Warnings or important notes appear like this.
Tips and tricks appear like this.
Get in touch
Feedback from our readers is always welcome.
General feedback: Email feedback@packtpub.com and mention the book title in the subject of your message. If you have questions about any aspect of this book, please email us at questions@packtpub.com.
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at copyright@packtpub.com with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Reviews
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packtpub.com.
An Introduction to the Microsoft Azure Platform
Cloud computing was, and still is, one