c fowler intro-azure

38
Introduction to Windows Azure Feat. 7 Deadly Sins of Cloud Development

Upload: sdeconf

Post on 01-Dec-2014

1.306 views

Category:

Technology


2 download

DESCRIPTION

Introduction to Windows Azure

TRANSCRIPT

Page 1: C fowler intro-azure

Introduction to Windows Azure

Feat. 7 Deadly Sins of Cloud Development

Page 2: C fowler intro-azure

Cory Fowler Consultant, ObjectSharp Microsoft MVP, Windows Azure @SyntaxC4 http://blog.syntaxc4.net gettag.mobi

I’m all in.

Page 3: C fowler intro-azure

Agenda

1. Quick overview of Windows Azure offerings

2. 7 Deadly Sins of Cloud Development

3. …

4. Make money???

Page 4: C fowler intro-azure

Windows Azure Compute

Page 5: C fowler intro-azure

A Hosted Service is a container for an Application.

An Application must consist of at least one Role.

A Role is Scalable to meet the demand of traffic.

Windows Azure Compute

Page 6: C fowler intro-azure

Windows Azure Compute

Ro

le

Web Ro

le

Worker Ro

le

VM ASP.NET

WCF

Fast CGI

Emulates IIS

Long Running Process

Emulates Windows Services

Windows Server 2008 R2

Customized Guest OS

Page 7: C fowler intro-azure

Windows Azure Storage

Durable NTFS VHD [Mountable] Drives

Reliable Message Delivery for Applications Queue

Non-Relational Entity Storage Table

Files with accompanying Meta Data Blob

Page 8: C fowler intro-azure

Windows Azure Storage

Windows Azure CDN nodes

Page 9: C fowler intro-azure

SQL Azure

Feature Set

Web Edition Business Edition

1GB, 5GB 10-50GB

Data Types XML, Sparse Columns, Filestream

Partitions Full-text indexes SQL-CLR

Tables, indexes and views

Stored Procedures

Triggers

Constraints

Table variables, session temp tables (#t)

Spatial types, HierarchyId

Page 10: C fowler intro-azure

SQL Azure

SQL Azure Data Sync

Page 11: C fowler intro-azure

SQL Azure

SQL Azure Reporting

Page 12: C fowler intro-azure

Virtual Network

On-Premise

Remote Office

Windows Azure

Web Role 1

Web Role 2

[IP-Sec Connectivity]

Windows Azure Connect

Page 13: C fowler intro-azure

Virtual Network

Windows Azure Traffic Manager

Load Balance an Application using {0} based routing.

Performance – Route traffic to best suited Hosted Service based on ping.

Failover – Route traffic to standby Hosted Services while primary is offline.

Round Robin – Route traffic equally between configured Hosted Services.

Page 14: C fowler intro-azure

AppFabric

On-Premise Partner/Customer Office

[Firewall] [Firewall]

Service Bus

Page 15: C fowler intro-azure

AppFabric

Producer Consumer

Topics & Queues

Page 16: C fowler intro-azure

AppFabric

Caching

Cache Layer

Web Site Instance

Web Site Instance

Web Site Instance

Web Site Instance

Web Site Instance

Page 17: C fowler intro-azure

AppFabric

Access Control Service

WS-*

Google, Yahoo

OAuth 2.0

Facebook

Websites and web

services Live ID

OAuth WRAP

Access Control

Service

Open ID Rules

Page 18: C fowler intro-azure

Marketplace

Data Market Application Market

Page 19: C fowler intro-azure

Under Utilization of Cloud Resources

Make the Cloud work hard for your money!

Sin

Page 20: C fowler intro-azure

Sin: Under Utilization of Cloud Resources

Scaling Vertically Vs. Horizontally

Compute Size CPU Memory Instance Storage

I/O Performance

Extra Small 1.0 GHz 768 MB 20 GB Low

Small 1.6 GHz 1.75 GB 225 GB Moderate

Medium 2 x 1.6 GHz 3.5 GB 490 GB High

Large 4 x 1.6 GHz 7 GB 1,000 GB High

Extra large 8 x 1.6 GHz 14 GB 2,040 GB High

Page 21: C fowler intro-azure

Sin: Under Utilization of Cloud Resources

Instrumentation Data Source Collected by

Default? Supported Role Types Storage Service

Windows Azure logs Web & Worker Table

IIS 7.0 logs Web only Blob

Windows Azure Diagnostic Infrastructure logs

Web & Worker Table

Failed Request logs Web only Blob

Windows Event logs Web & Worker Table

Performance Counters Web & Worker Table

Crash Dumps Web & Worker Blob

Custom Error logs Web & Worker Blob

Page 22: C fowler intro-azure

Sin: Under Utilization of Cloud Resources

• Sizing a VM • Windows Azure Diagnostics • Overloaded Roles

Demo

Page 23: C fowler intro-azure

Platform Monogamy

Sin

Page 24: C fowler intro-azure

Sin: Platform Monogamy

Page 25: C fowler intro-azure

Poorly Defined Release Cadence

Sin

Page 26: C fowler intro-azure

Speed up Deployment

http://waawebroles.codeplex.com

Sin: Poorly Defined Release Cadence

Page 27: C fowler intro-azure

ALM + Automation

http://deploytoazure.codeplex.com

Sin: Poorly Defined Release Cadence

Page 28: C fowler intro-azure

Always Connected Assumption

Sin

Page 29: C fowler intro-azure

Application

Page 30: C fowler intro-azure

Demo

• Paging with Table Storage

Page 31: C fowler intro-azure

Synchronous Application Design

Sin

Page 32: C fowler intro-azure

Web Site

Web Site Web Site

Web Site Back-End Services

Admin Site

Application Roles

[Web Role] [Worker Role] [VM Role]

Define Scale Units

Sin: Synchronous Application Design

Page 33: C fowler intro-azure

Account Container Item

BLOB Storage

TABLE Storage

QUEUE[S] Storage

http[s]://account.*.core.windows.net

NerdDinner images

videos Blobs

NerdDinner

NerdDinner

locations

dinners Entities

rsvp

resize Messages

Sin: Synchronous Application Design

Windows Azure Storage

Page 34: C fowler intro-azure

Demo

• Using Windows Azure Storage for Asynchronous Tasks

Page 35: C fowler intro-azure

Lack of Load Testing / Failover Testing

Sin

Page 36: C fowler intro-azure

Demo

• Simulate Failure using Compute Emulator

Page 37: C fowler intro-azure

Cloudy Reading

Page 38: C fowler intro-azure

Resources

Blog http://blog.syntaxc4.net

GitHub http://github.com/syntaxc4

Windows Azure Platform Training Kit http://bit.ly/jXfyyD

Windows Azure Powershell Cmdlets http://bit.ly/m75gEc

Windows Azure Tools http://bit.ly/miooC4

Cloud Cover Show http://bit.ly/g4nQbT

Essential Resources for Windows Azure http://bit.ly/efmzGo