surviving the azure avalanche

58
DEVintersection Session AS22 Surviving the Azure Avalanche Michele Leroux Bustamante [email protected]

Upload: michele-bustamante

Post on 08-Sep-2014

955 views

Category:

Technology


1 download

DESCRIPTION

This session reviews Azure top to bottom, to describe where each features best fits, expose some myths and best practices.

TRANSCRIPT

Page 1: Surviving the Azure Avalanche

DEVintersectionSession AS22

Surviving the Azure AvalancheMichele Leroux [email protected]

Page 2: Surviving the Azure Avalanche

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

[email protected]

@michelebusta

Page 3: Surviving the Azure Avalanche

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

Page 4: Surviving the Azure Avalanche

Windows Azure FeaturesCompute

Web Site Cloud Service

Virtual Machine

Page 5: Surviving the Azure Avalanche

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

Page 6: Surviving the Azure Avalanche

IaaSVirtual Machines

Page 7: Surviving the Azure Avalanche

Virtual Machine Provisioning

Choose a VM

Blob Storage

Generate

Provision

Select your VHD

Blob Storage

Upload

Provision

Page 8: Surviving the Azure Avalanche

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

Page 9: Surviving the Azure Avalanche

PaaSCloud Services & Web Sites

Page 10: Surviving the Azure Avalanche

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…

Page 11: Surviving the Azure Avalanche

Web Sites

Page 12: Surviving the Azure Avalanche

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

Page 13: Surviving the Azure Avalanche

13© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Supported Web Frameworks

Or any custom FastCGI Handler

Page 15: Surviving the Azure Avalanche

15© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Supported Publishing Methods

Git TFSWeb DeployFTP

Page 16: Surviving the Azure Avalanche

Cloud Services

Page 17: Surviving the Azure Avalanche

17© DEVintersection. All rights reserved.

http://www.DEVintersection.com

What is a Cloud Service?

A container of related service roles

Web Role Worker Role

Page 18: Surviving the Azure Avalanche

18© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Upload to Windows Azure

Packaging & Deployment

Microsoft Visual StudioWeb Role

Worker Role

Page 19: Surviving the Azure Avalanche

19© DEVintersection. All rights reserved.

http://www.DEVintersection.com

ROLE

VIP Swap

VM1 VM2

VM3 VM4

VM1 VM2

VM3 VM4

Page 20: Surviving the Azure Avalanche

20© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Back to our story…

Page 21: Surviving the Azure Avalanche

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 ✔

Page 22: Surviving the Azure Avalanche

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

Page 23: Surviving the Azure Avalanche

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 ?

Page 24: Surviving the Azure Avalanche

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!!!

Page 25: Surviving the Azure Avalanche

…and so

Michele is running out of arguments in favor…

THE END

Page 26: Surviving the Azure Avalanche

Windows Azure Features

Storage

Tables

SQL Database

SQL Data Sync

SQL Reporting

HDInsight (Hadoop)

DataServices

Page 27: Surviving the Azure Avalanche

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)

Page 28: Surviving the Azure Avalanche

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)

Page 29: Surviving the Azure Avalanche

Don’t Drink the KoolaidnoSQL

Hadoop

Big Data

Page 30: Surviving the Azure Avalanche

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

Page 31: Surviving the Azure Avalanche

Windows Azure Features

VirtualNetwork

TrafficManager

Networking

Page 32: Surviving the Azure Avalanche

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

Page 33: Surviving the Azure Avalanche

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)

Page 34: Surviving the Azure Avalanche

Windows Azure Features

Windows Azure Active Directory

Access Control

ApplicationServices

Page 35: Surviving the Azure Avalanche

35© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Access Control and MainstreamIdentity Providers

Your App

AccessControl

Google

Yahoo!Windows

Live

FaceBook

Browser

1 25

3

4

Page 36: Surviving the Azure Avalanche

36© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Access Control, Social & Azure AD (vision)

Your App

AccessControl

Google

Yahoo!Windows

Live

FaceBook

Browser

UserProfile

AnyIdP

AzureAD

Page 37: Surviving the Azure Avalanche

Windows Azure Features

Caching

ApplicationServices

Page 38: Surviving the Azure Avalanche

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

Page 39: Surviving the Azure Avalanche

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

Page 40: Surviving the Azure Avalanche

Windows Azure Features

Service Bus

ApplicationServices

Storage

Queues

DataServices

Page 41: Surviving the Azure Avalanche

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

Page 42: Surviving the Azure Avalanche

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

Page 43: Surviving the Azure Avalanche

43© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Queues

Queue

Queue

Page 44: Surviving the Azure Avalanche

44© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Topics

TopicSubSubSub

Page 45: Surviving the Azure Avalanche

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

Page 46: Surviving the Azure Avalanche

Windows Azure Features

ApplicationServices

MobileServices

Page 47: Surviving the Azure Avalanche

47© DEVintersection. All rights reserved.

http://www.DEVintersection.com

What is Windows Azure Mobile Services?

Data

Notifications

Auth

Server LogicLogging & Diag

ScaleScheduler

Page 48: Surviving the Azure Avalanche

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)

Page 49: Surviving the Azure Avalanche

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)

Page 50: Surviving the Azure Avalanche

50© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Communications: Cloud-initiated

!Raaawww

Page 51: Surviving the Azure Avalanche

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)

Page 52: Surviving the Azure Avalanche

Windows Azure Features

CDN

Storage

Blobs

Media Services

ApplicationServices

DataServices

Networking

Page 53: Surviving the Azure Avalanche

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

Page 54: Surviving the Azure Avalanche

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

Page 55: Surviving the Azure Avalanche

55© DEVintersection. All rights reserved.

http://www.DEVintersection.com

Blob Storage Integrity

Windows Azure Storage

Blob Container

Service

validatesignature

WindowsAzure

MD5Hash +

MD5Hash +

Page 56: Surviving the Azure Avalanche

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)

Page 57: Surviving the Azure Avalanche

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

Page 58: Surviving the Azure Avalanche

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!