surviving the azure avalanche
DESCRIPTION
This session reviews Azure top to bottom, to describe where each features best fits, expose some myths and best practices.TRANSCRIPT
DEVintersectionSession AS22
Surviving the Azure AvalancheMichele Leroux [email protected]
2© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Michele Leroux BustamanteManaging Partner
Solliance (solliance.net) CEO and Cofounder
Snapboard (snapboard.com)
Microsoft Regional Director Microsoft MVP
Author, SpeakerPluralsight courses on the way!Blog: michelebusta.com
@michelebusta
Windows Azure FeaturesCompute
VirtualNetwork
TrafficManager
CDN
Storage
Queues
Storage
Tables
Storage
Blobs
SQL Database
SQL Data Sync
SQL Reporting
HDInsight (Hadoop)
Caching Recovery Services
Windows Azure Active Directory
Access Control
Media Services
Service Bus
Store
Web Site Cloud Service
Virtual Machine
ApplicationServices
Marketplace
DataServices
Networking
MobileServices
Windows Azure FeaturesCompute
Web Site Cloud Service
Virtual Machine
Your Datacenter
Virtualization
O/S
Hardware
Network
Data
Applications
Firewall
Web Sites
Applications
Data
Cloud Services
Applications
Firewall Rules
Data
Virtual Network
Virtual Machines
Virtual Network
Data
Applications
Firewall Rules
O/S
Focus on the Application
Windows Azure
IaaSVirtual Machines
Virtual Machine Provisioning
Choose a VM
Blob Storage
Generate
Provision
Select your VHD
Blob Storage
Upload
Provision
8© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Why choose a VM?
Migrate existing apps without changes Complex software deployment, easier with full control over VM Appliance or pre-existing VM SQL Server over SQL DB
VERY common choice Prefer IaaS and have staff for IT operations support
Job Security
PaaSCloud Services & Web Sites
Once upon a time…
There were only cloud services
Michele used these for all her customers…and life was simple.
Then along came web sites
…but Michele thought life was still simple…because this feature was just for blogs and cute little web sites…BUT…
Web Sites
12© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Scale
Free
Shared
Reserved
Multi-tenant. Daily quotas
Multi-tenant. No quotas
Dedicated VMs. No quotas
13© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Supported Web Frameworks
Or any custom FastCGI Handler
14© DEVintersection. All rights reserved.
http://www.DEVintersection.com
part
ners
15© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Supported Publishing Methods
Git TFSWeb DeployFTP
Cloud Services
17© DEVintersection. All rights reserved.
http://www.DEVintersection.com
What is a Cloud Service?
A container of related service roles
Web Role Worker Role
18© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Upload to Windows Azure
Packaging & Deployment
Microsoft Visual StudioWeb Role
Worker Role
19© DEVintersection. All rights reserved.
http://www.DEVintersection.com
ROLE
VIP Swap
VM1 VM2
VM3 VM4
VM1 VM2
VM3 VM4
20© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Back to our story…
Core Feature Comparison
Cloud Services Web Sites
WIF 3.5 Required ✔ .NET 4.5
SSL ✔
Dedicated IP ✔
Performance Counters ✔ WHO CARES?
Auto-scale ✔
Global Assembly Cache ✔ WHO CARES?
Distributed Cache ✔
Custom Software ✔ Nuget (LIMITED)
VM Scale Out Control ✔
22© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Web Site Drivers
Some web site specialties: Sites based on built-in Azure templates such as blogs, wikis,
and CMS sites
MySQL database alternative
In reality, many will default to web sites first unless there is a cloud service driver
Cloud Service Drivers
Cloud Services Web Sites
Control over IIS Settings
?
Dynamic DNS ?
Internal Endpoints
Asynchronous Workers
Virtual Network
RDP ?
Non-HTTP Protocols
Control over OS UpdatesCertificate store access ?
Some Personal Preferences
Cloud Services Web Sites
Staging, SWAP Rollback
Headless Deployment Single File Updates
Proprietary deployment Familiar deployment
Resource path changes Standard paths
If cloud services needed, deploy all cloud services
Improved management of both in portal now
Built in diagnostics, tracing
Yep
CustomersChoice!!!
✔
✔
…and so
Michele is running out of arguments in favor…
THE END
Windows Azure Features
Storage
Tables
SQL Database
SQL Data Sync
SQL Reporting
HDInsight (Hadoop)
DataServices
27© DEVintersection. All rights reserved.
http://www.DEVintersection.com
SQL DB and SQL Server
SQL DB (formerly SQL Azure) 150GB limit No backup logs / replay Other SQL features
SQL Server on Azure VM Popular alternative 1TB limit (blob storage)
28© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Map Reduce from 10K Feet
Company B Company CCompany A
AggregateData
(all Companies)
HDInsight
Company A
Server
Company C
Company B
HDInsight(local)
HDInsight(local)
HDInsight(local)
Don’t Drink the KoolaidnoSQL
Hadoop
Big Data
30© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Don’t Drink the Koolaid
noSQL requires planning Many people return to relational Start relational and figure your model out first Get an expert involved if you need noSQL
BigData is not for everyone In many cases it is not needed
Get an expert, like: Lynn Langit www.contagiouscuriosity.com
Windows Azure Features
VirtualNetwork
TrafficManager
Networking
32© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Virtual Networks
Azure Virtual Machines& Cloud Services
On-Premise Devices
VPN Device
DNS
AD
VPN Gateway
IPSec
33© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Traffic Manager
Load balance endpoints Fail over in emergency to
another region Look for closest server Round robin (only if you use
regions instead of instance scaling)
Windows Azure Features
Windows Azure Active Directory
Access Control
ApplicationServices
35© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Access Control and MainstreamIdentity Providers
Your App
AccessControl
Yahoo!Windows
Live
Browser
1 25
3
4
36© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Access Control, Social & Azure AD (vision)
Your App
AccessControl
Yahoo!Windows
Live
Browser
UserProfile
AnyIdP
AzureAD
Windows Azure Features
Caching
ApplicationServices
38© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Caching is Good
Co-Located Caching Allocate % of memory on each VM Together produce distributed cache total Any role can access
Worker RoleWeb Role
apis.bustacloud.com
Web Role
bustacloud.com
Web App Web API Web APISB
QueueServic
e
Storage
QueueWorke
r
39© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Caching is Good
Shared Caching Allocate worker roles for caching Together produce distributed cache total
Worker RoleWeb RoleWeb Role
SBQueueServic
e
Storage
QueueWorke
r
Worker RoleWorker Role Worker Role
apis.bustacloud.combustacloud.com
Web App Web API Web API
Windows Azure Features
Service Bus
ApplicationServices
Storage
Queues
DataServices
41© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Service Bus as DMZ
Service Service Service
Web API Web API
Browser BrowserRich
ClientsMVC /JQuery AJAX
Service
MobileClients
DMZ
Corporate Domain
MVCSite
Web Forms
Site
42© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Service Bus to Data On Premise / Migration
Service
Client
Web Application
Service Bus
Corporate Domain
Windows Azure
43© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Queues
Queue
Queue
44© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Topics
TopicSubSubSub
Queue Comparison
Service Bus Queues Storage Queues
Unlimited message lifetime
7 days expiry
Max 64K message size Max 256K message size
Max 5GB total storage Max 100TB total storageDuplicate detection
Order guarantees
Dead letter queue
Storage metrics
Purge capability
Long polling Manual back-off polling
Windows Azure Features
ApplicationServices
MobileServices
47© DEVintersection. All rights reserved.
http://www.DEVintersection.com
What is Windows Azure Mobile Services?
Data
Notifications
Auth
Server LogicLogging & Diag
ScaleScheduler
48© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Push Notification Lifecycle Overview
1. Request Channel URI
2. Register with your Cloud Service
3. Authenticate & Push Notification
Windows 8
(1)
(2)
(3)
(3)
49© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Notifications: Different services
Windows 8:
Windows Push Notification Service (WNS)
Windows Phone:
Microsoft Push Notification Service (MPNS)
iOS: Apple Push Notification Service (APNS)
Android: Cloud To Device Messaging (C2DM)
50© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Communications: Cloud-initiated
!Raaawww
51© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Mobile Services
Stand up a data-driven app FAST Push notifications to any device Schedule notifications from the App No security goo (handled internally)
Windows Azure Features
CDN
Storage
Blobs
Media Services
ApplicationServices
DataServices
Networking
53© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Storing Content
Blob Storage is the standard now Scales across instances Replicated Map domain to storage account CDN benefits Security and shared links
54© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Scaling Out Media Access
Service
Corporate Domain
Client
BlobContainer
HTTP
Azure Storage
BlobContainer
BlobContainer
Azure Storage
CDNCache
CDNCache
CDNCache
55© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Blob Storage Integrity
Windows Azure Storage
Blob Container
Service
validatesignature
WindowsAzure
MD5Hash +
MD5Hash +
56© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Blob Storage Shared Access Signatures
Service
Public Blob Access
createupdatedelete
read
Service
Public Container
Access
createupdatedeleteread
list
Service
Private Container
createupdatedeleteread
list
list
Service
Private Container
readaccessfor limited timewithsharedaccesskey
sharedaccess
policy
Browser Client
Shared AccessSignature (SAS)
>1 hour requiresauthenticationheader in request(no browser)
57© DEVintersection. All rights reserved.
http://www.DEVintersection.com
Blob Storage Recommendations
Store content in blobs in lieu of drives Set metadata explicitly for best results Secure access accordingly
From JavaScript can lease a shared key No need to embed keys in the JS file
Always chunk blobs for best performance
58© DEVintersection. All rights reserved.
http://www.DEVintersection.com
References
Conference resources: http://michelebusta.com
See my snapboards: Currently at the alpha site:
http://snapboardalpha.cloudapp.net/michelebusta Will move these to snapboard.com/michelebusta when we go
live on the main site (SOON watch my blog for announcement) Contact me:
[email protected] @michelebusta
COME VISIT OUR BOOTH! LET’S HAVE A CONVERSATION!