Azure Architecturing PDF
Azure Architecturing PDF
Azure Architecturing PDF
Microsoft Confidential
Cloud Computing Options
• Public Cloud
• A public cloud is one in which the services and infrastructure are provided off-
site and accessible over the Internet e.g. Microsoft Azure
• Private Cloud
• A private cloud is one in which the services and infrastructure are maintained on
a private network e.g. Microsoft Azure Stack
• Hybrid Cloud
• A hybrid cloud includes a variety of public and private clouds with multiple
providers e.g. Microsoft Azure & Microsoft Azure Stack
Microsoft Confidential
Cloud Computing Services
Microsoft Confidential
Hyper Scale Infrastructure
• 30 regions worldwide with 8 additional regions announced
Microsoft Azure Infrastructure
• Over 1 million physical servers globally
• ~50 servers per rack
• ~20 racks make up a “cluster” which provides a unit of fault isolation
• 5 servers per rack are reserved for the Fabric Controller (FC)
• The FC is the “kernel” of the Azure cloud operating system responsible for:
• Datacenter resource allocation
• Datacenter resource provisioning
• Service lifecycle management
• Service health management
Microsoft Confidential
Microsoft Azure Compute
Microsoft Confidential
Microsoft Azure Virtual Machines
• Azure Virtual Machines is one of several types of on-demand, scalable computing resources
that Azure offers.
• Flexibility of virtualization without having to buy and maintain the physical hardware that
runs the virtual machine
• Virtual Machines lets you create and use VM’s in the cloud providing what is known as
Infrastructure as a Service (IaaS)
• Examples of VM workloads:
• Development and testing
• Running applications in the cloud
• Extending your own datacenter into Azure
• Disaster recovery
Microsoft Confidential
Microsoft Azure Virtual Machine Scale Sets
• Azure Virtual Machine Scale Sets is a compute resource used to deploy and manage a set of
identical VMs.
• Designed to support true auto scale of IaaS VM’s with no pre-provisioning.
• Integrated load balancing
• Built-in high availability
• Support for manual roll out of OS image updates without downtime.
• Visual Studio support
• REST, SDK, and command line support
Microsoft Confidential
Microsoft Azure Batch
• Azure Batch is a compute resource which at its core is a high-scale job scheduling engine
that is available as a managed service.
• Running a large volume of similar tasks to get some desired result e.g. software testing,
engineering stress analysis, financial risk modeling etc.
• Create and manage pools of virtual machines and schedule jobs and tasks to run on them.
• Batch API’s, Batch PowerShell cmdlets, Azure CLI & Batch Management.NET can be used to
communicate with the Batch service.
Microsoft Confidential
Microsoft Azure Cloud Services
• Azure Cloud Services is a compute resource that is used as a container to store roles.
• A role is a container for an instance and is also used to define the type of workload and
configuration of the instance that will be running inside it e.g:
• A Web Role (An instance of Windows Server 2012 R2 virtual machine running IIS)
Microsoft Confidential
Microsoft Azure Service Fabric
• Azure Service Fabric is a compute resource that is Microsoft’s next generation Platform as a
Service offering.
• Provides software developers with a platform on which they can develop their applications
composed of Microservices.
• Microservices are small, independent components that communicate with each other to
form complex applications.
• Platform consists of a number of underlying components e.g: virtual machines, operating
systems, networking, storage etc. that are managed by Microsoft.
Microsoft Confidential
Microsoft Azure Container Service
• Azure Container Service is a compute resource that makes it simpler to create, configure,
and manage a cluster of virtual machines that are preconfigured to run containerized
applications.
• Containerization is a lightweight alternative to full machine virtualization that involves
encapsulating an application in a container with its own operating environment.
• Leverages the Docker container format to ensure that application containers are fully
portable.
• Container hosting environment is exposed by API endpoints.
• Configure deployment by using either DC/OS or Docker Swarm.
Microsoft Confidential
Microsoft Confidential
Microsoft Confidential
Microsoft Confidential
Scaling Possibilities
• VM Scale UP/Down
• VM Scale out Scale Sets (VMMS)
• Web App Scale up/ Scale down (Resize)
• Web App Scale out Manual/ Autoscaling
Microsoft Confidential
Design Principles for Cloud Infrastructure and
Development
Microsoft Confidential
Stateless Service
Microsoft Confidential 21
Cloud Design Pattern
https://docs.microsoft.com/en-us/azure/architecture/patterns/
Microsoft Confidential 22
Why Patterns?
Microsoft Confidential 23
Designing Virtual Networks
Microsoft Confidential 24
Azure Virtual Networks
An Azure virtual network (VNet) is a representation of your on premise network in the cloud
It is a logical isolation of a given address space with full network connectivity between all
hosts within it
IP address blocks, DNS settings, security policies, and route tables within a VNet can be
controlled
VNets can also be segmented into subnets to host Azure IaaS virtual machines (VMs) and/or
Cloud services (PaaS role instances)
Microsoft Confidential
Virtual Network Name Resolution
An Internal DNS suffix *.internal.cloudapp.net is provided to each VM using DHCP
This enables hostname resolution as the hostname records are in the internal.cloudapp.net
zone on Azure internal DNS servers
An Internal DNS suffix is not supplied to VMs when using your own DNS
Instead we provide a non-functioning placeholder reddog.microsoft.com
Internal DNS name resolution resolves DNS queries only for hosts that are within the same
VNet
Microsoft Confidential
Microsoft Confidential 28
Microsoft Confidential 29
Reserved IP in a Virtual Subnet
Microsoft Confidential 30
Connectivity in Microsoft Azure
Microsoft Confidential
Virtual Network Connectivity Options
Microsoft Confidential
Site-to-Site Connectivity
• Extend your on-premises to the cloud securely Windows Azure
• On-ramp for migrating services to the cloud <subnet 1> <subnet 2> <subnet 3>
On-premises VPN
Gateway Virtual Network
Hardware VPN or
Windows RRAS
Your datacenter
Microsoft Confidential
The Virtual Branch Office
Microsoft Confidential
Public, Private and Microsoft peering
Azure Load Balancers
• Azure Load Balancer is a Layer 4 (TCP, UDP) load balancer that distributes incoming traffic among
healthy instances of services defined in a load-balanced set
Microsoft Confidential
Traffic Manager
Example PowerShell:
New-AzureNetworkSecurityGroup -Name "MyVNetSG" -Location uswest
-Label "Security group for my Vnet in West US“
Ex. - All traffic directed to the mid-tier and backed subnets initiated from the front end subnet goes
through a virtual firewall appliance
Azure Application Gateway
• Azure-managed, first-party
virtual appliances Customer VMs
Internet
Traffic Cross-region http://news.com
Manager redirection & ➔ apac.news.com
availability ➔ emea.news.com Azure Traffic Manager (DNS Load Balancer)
➔ us.news.com
SLB In-region emea.news.com
scalability & ➔ AppGw1 SLB (L4 Load Balancer) SLB (L4 Load Balancer)
availability ➔ AppGw2
➔ AppGw2
Application URL/content- news.com/topnews Application Application Application Application
Gateway Gateway Gateway Gateway
Gateway based routing & news.com/sports
load balancing news.com/images
VM VM VM VM VM VM VM VM
VMs Web Servers
Region 1 Region 2
DMZ between Azure and your on-premises datacenter
Azure Storage Services
Queues
Reliable queues at
scale for cloud
services
Microsoft Confidential
Azure Storage & Data Services
Microsoft Confidential
Storage Options Types
Microsoft Confidential
Azure Premium Storage
Available in select regions - https://azure.microsoft.com/en-us/regions/#services
No support for Block blobs, Azure Files, Azure Tables or Azure Queues only Page Blobs for
Virtual Machines (aka VHD’s)
Microsoft Confidential
Azure Premium Storage Scalability
Throughput per disk 100 MB per second 150 MB per second 200 MB per second
Microsoft Confidential
Storage Security
Microsoft Azure Storage provides simple security for calls to storage service
• HTTPS endpoint
• Digitally sign requests for privileged operations
Microsoft Confidential
Shared Access Signatures
Fine grain access rights to storage entities (blobs/tables etc)
Revocation:
• Use short time periods and re-issue
• Use container-level policy that can be deleted
Microsoft Confidential
Ad Hoc Signatures
Create short-dated SAS
• Signedresource Blob or Container
• AccessPolicy Start, Expiry, and Permissions
• Signature HMAC-SHA256 of above fields
Use case
• Single use URLs
• For example, provide URL for the client to upload to container
http://...blob.../pics/image.jpg?
sr=c&st=2009-02-09T08:20Z&se=2009-02-10T08:30Z&sp=w
&sig= dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d
Microsoft Confidential
Policy-Based Signatures
Create container-level policy
• Specify StartTime, ExpiryTime, and Permissions
Create SAS URL
• Signedresource Blob or Container
• Signedidentifier optional pointer to container policy
• Signature HMAC-SHA256 of above fields
http://...blob.../pics/image.jpg?
sr=c&si=MyUploadPolicyForUserID12345
&sig=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d
Use case
• Providing revocable permissions to certain users/groups
• To revoke: Delete or update container policy
Microsoft Confidential
Storage Service Encryption (Encryption at Rest)
• Microsoft takes care of all key management practices All Data is stored in an encrypted form
Microsoft Confidential
Business Continuity Challenges
Common business continuity and disaster recovery hurdles
Microsoft Confidential
Section Overview
The purpose of this section is to introduce basic concepts and terminology
used to discuss Business Continuity and Disaster Recovery (BC/DR) strategies
We will cover:
1. Stateless and Stateful Workloads
2. Disaster Recovery Terms
• Recovery Point Objective (RPO)
• Recovery Time Objective (RTO)
3. Factors influencing BC/DR Strategy
4. BC/DR options with cloud constructs
Microsoft Confidential 63
Disaster Recovery Terms
Recovery Point Objective (RPO):
• Maximum amount of last updates (time interval) the application can lose
by the moment it fully recovers after the disruptive event. RPO measures
the maximum loss of data during the failures.
• Answers the question: To what point in time can I recover?
Recovery Time Objective (RTO):
• Maximum acceptable time before the application fully recovers after the
Disruption
disruptive event. RTO
RPO
measures the maximum loss
Event of availability during
RTO
the failures
• Answers the question:
Complete How
data / soon can the services recover after the
Service Unavailable
transactions lost
disruption?
Microsoft Confidential 64
Microsoft Confidential 65
Microsoft Confidential 66
Azure Site Recovery At-A-Glance
Microsoft Confidential 67
Microsoft Confidential 68
Microsoft Confidential 69
Azure Site Recovery
Key Scenarios
Replication
Replication Replication
SAN SAN
Microsoft
Hyper-V Hyper-V Hyper-V Hyper-V Hyper-V Azure
Hyper-V to Hyper-V Hyper-V to Hyper-V
Hyper-V to Microsoft Azure
(on-premises) (on-premises)
Replication Replication
Microsoft
VMware/Physical VMware VMware/Physical Azure
VMware/Physical to VMware/Physical to
VMware (on-premises) Microsoft Azure
Microsoft Confidential 70
Supported Deployment Methods
Planning with Staged Slots
• Deploy your website to a separate deployment slot instead of the default production slot
• Available in the Standard or Premium app service plan
• Once testing is complete, development slot can be swapped with production slot
• Benefits:
• You can validate website changes in a staging deployment slot before swapping it with the production
slot
• Deploying a site to a slot first and swapping it into production ensures that all instances of the slot
are warmed up before being swapped into production
• Four deployment slots in addition to the production slot are supported for each website in the
Standard plan.
• 19 deployment slots in addition to the production slot are supported for each website in the
Premium plan.
Compute Scaling
Microsoft Confidential
App Service Plans
• Supports the Azure Web app pricing tiers
• Web apps need to be in the same
subscription, resource group and region to
share an app service plan
• A web app can only be associated with one
app service plan
• All web apps that use the same app service
plan will be placed on the same resource
hardware
• You can have multiple app service plans in a
single resource group to allow for difference
capacity needs
Microsoft Confidential
What are Azure API Apps?
• A modern REST-based service that is hosted in the Azure cloud
API
• Excels at accepting and generating structured data like JSON and XML
• It is part of the family of Azure App Services offerings…
Microsoft Confidential
Swagger Support
• Swagger is an open-source framework for describing, consuming and visualizing API services
• The Visual Studio Azure API App template includes “Swagger” support
• Behind the scenes, Swagger libraries reflect across service endpoints and
dynamically render metadata that describe service endpoints, parameters
and model data formats
• Clients leverage the metadata to discover an API and generate code to
consume it
• Swagger provides visual documentation to help developers better
understand the API and its functionality
Configures service
metadata generation
Microsoft Confidential
What is Azure Functions?
Microsoft Confidential
Azure Functions features
• Choice of language – Write functions using C#, F#, Node.js, Python, PHP, batch, bash or any exe
• Pay-per-use pricing model – Pay for only the time spent executing the function
• Use your own code dependencies – Functions support NuGet and NPM, use your own libraries
• Integrated security – Protect HTTP-triggered functions with OAuth providers
• Integration with other Azure services and SaaS providers
• Continuous integration
• Open-source – Azure Functions runtime is open-source and available on GitHub
Microsoft Confidential
What can Azure Functions do?
• BlobTrigger - Process Azure Storage blobs when they are added to containers
• EventHubTrigger - Respond to events delivered to an Azure Event Hub
• Generic webhook - Process webhook HTTP requests from any service that supports webhooks
• GitHub webhook - Respond to events that occur in your GitHub repositories
• HTTPTrigger - Trigger the execution of your code by using an HTTP request
• QueueTrigger - Respond to messages as they arrive in an Azure Storage queue
• ServiceBusQueueTrigger - Connect your code to other Azure services or on-premises services by listening
to message queues
• ServiceBusTopicTrigger - Connect your code to other Azure services or on-premises services by subscribing
to topics
• TimerTrigger - Execute cleanup or other batch tasks on a predefined schedule
Microsoft Confidential
Azure Functions Architecture
Input Bindings
Triggers Functions
Functions
Programming
Runtime
Interface
Output Bindings
App Service
App Hosting Plans
Microsoft Confidential
Agenda
• Introduction
• Logic Apps Terms
• Minimum Requirement & Price And Services
• How to Access Logic app
• Triggers and Actions
Why Logic Apps?
88
89
90
91
92
Why use the Azure Service Bus?
Microsoft Confidential
Azure Architecture for Processing Events
Microsoft Confidential
Topics
Microsoft Confidential
Identity Today
Kerberos
Negotiate
NTLM
SChannel AAD AAD AAD
Digest
Windows Server
Active Directory Username
•••••••••••
Other
Directories
SaaS
Azure
Application
Directory
Microsoft Confidential
Cloud identity – external application
Application
Trusted domain 1. How does the application get data from the on-
premises, firewalled identity store?
2. How does the application trust data sent by the
identity store?
3. How does the identity store know that it is OK to
send user data to the Application?
Cloud identity – mobile users
Application
Application
4 0
Trust
A A
3
A Application
STS
2
Role-based access control (RBAC)
Defined in application manifest:
"appRoles": [
{
"allowedMemberTypes": ["User"],
"description": "Admins can manage roles and perform all task actions.",
"displayName": "Admin",
"id": "81e10148-16a8-432a-b86d-ef620c3e48ef",
"isEnabled": true,
"origin": "Application",
"value": "Admin"
},
Application code
RBAC – role assignment in portal UI
112
Resource Scope