put your existing application on windows azure maarten balliauw technical consultant twitter:...

53
Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Upload: bilal-nichols

Post on 16-Dec-2015

218 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Put your existing application on Windows Azure

Maarten BalliauwTechnical Consultant

Twitter: @maartenballiauw

Page 2: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

About me• Maarten Balliauw• Antwerp, Belgium• www.realdolmen.com • Focus on web

• ASP.NET, ASP.NET MVC, PHP, Azure, VSTS, …• MVP ASP.NET

• http://blog.maartenballiauw.be • http://twitter.com/maartenballiauw

Page 3: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw
Page 4: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Agenda• Windows Azure• An existing application...• ... with some problems• Windows Azure• SQL Azure• Blob storage• AppFabric service bus• What to remember?• Resources• Q&A

Page 5: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Windows Azure

Page 6: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Definition of cloud (NIST)• On-demand self service• Standardized access• Location independant resource pooling• Rapid elasticity• Pay per use

Page 7: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

IT as a Service

Private(On-Premise)

Infrastructure

(as a Service)

Platform(as a

Service)

Storage

Server HW

Networking

Servers

Databases

Virtualization

Runtimes

Applications

Security & Integration

Storage

Server HW

Networking

Servers

Databases

Virtualization

Runtimes

Applications

Security & Integration

Storage

Server HW

Networking

Servers

Databases

Virtualization

Runtimes

Applications

Security & Integration

You

man

age

Managed by vendor

Managed by vendor

You

man

age

You

man

age

Page 8: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

The Windows Azure Platform• Windows Azure• SQL Azure• Windows Azure platform AppFabric• Microsoft Codename “Dallas”• Microsoft Codename “Sydney”

Page 9: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Windows Azure

• Flexible application hosting• Lights-out service management

• Provide code & service model, hit ENTER• Storage at massive scale

• Blobs, tables, queues

Compute StorageManagement

Page 10: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Windows Azure

Page 11: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Storage options• Blobs, tables, queues• Windows Azure Drive (a.k.a. XDrive)

• Virtual NTFS volume that can be mounted• .vhd format• Use existing NTFS API’s• Easier migration• Stored on blob storage provides quick mount/unmount in

other VM

Page 12: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

SQL Azure

• Relational database as a service• Highly available, automatically maintained

• Extension of the SQL Server Data Platform

Database

Reporting Business Analytics Data Sync

Page 13: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

SQL Azure• Relational database, provided as a service• Highly symmetrical development and tooling experience (use

TDS protocol and T-SQL)• Highly scaled out, on commodity hardware• Built on the SQL Server technology foundation• High availability, DB provisioning, and DB management are

provided by the service

Page 14: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Windows Azure AppFabric

• Secure connections between services• Across organizational boundaries

• Claims-based access control

ServiceBus

AccessControl

Page 15: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Service Bus Overview

Page 16: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Windows Azure AppFabric - Service Bus• Securely connect applications

• Over the internet• Across any network topology (= across firewalls!)• Across organizational boundaries

• Primary application patterns• Eventing:

• Notify applications and/or devices• Service Remoting:

• Securely project on-premises services out to the cloud• Tunneling:

• App-to-app communication with NAT/Firewall traversal

Page 17: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Microsoft Codename “Dallas”

• Content brokerage and discovery platform • Available as a CTP

Microsoft Codename “Dallas”Information Services

Page 18: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Microsoft Codename “Sydney” - Connectivity

WINDOWS AZURE PLATFORM

Data Service

Service Bus

Access Control Service

ENTERPRISE

Code Name “Project Sydney”

Page 19: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

An existingapplication

Page 20: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Time Tracker• Originated from the ASP.NET starter kit

http://www.asp.net/downloads/starter-kits/time-tracker

• Small modifications:• List of projects from internal billing system• Time registration can have an attachment

Page 21: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

DEMO

TimeTracker – On-premise

Page 22: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Time Tracker• There are some problems with it...

• Running on 2 web servers that are > 2 years old, nearing EOL

• Looking to buy new hardware• Looking to deploy the application in a cloud

• Spikes near the end of each month, reducing performance• Looking to buy additional hardware• Looking to deploy the application in the cloud

• They do have this “seamless scaling” thing, right?

Page 23: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Workload Patterns Optimal for Cloud

Usage

Com

pu

te

Time

Average

Inactivity

Period

“On and Off “

On & off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome

Com

pu

te

Time

“Unpredictable Bursting“

Average Usage

Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases

Average Usage

Com

pu

te

Time

“Growing Fast“

Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Complex lead time for deployment

Com

pu

te

Time

Average Usage

“Predictable Bursting“

Services with micro seasonality trends Peaks due to periodic increased demandIT complexity and wasted capacity

Page 24: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Challenges• Security?

• Forms based• Claims based (AppFabric

access control service)• Availability & scalability out-of-

the-box• Still keep session state in

mind• Specify “upgrade domains”

• Logging & tracing• System.Diagnostics.Trace• Performance counters• All stored on blob storage, not

real-time!

• Operating system• Windows Azure Cloud OS 1.0 –

1.1 – x.x• See MSDN for patches and

hotfixes in each OS version• New cost model

• Pay-per-use• Allow for scale-up and scale-

down

Page 25: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Moving an application to the cloudA

ssess

applic

ati

on • Is it

suitable?• Architecture

?• Functionals?• Non-

functionals?• Are there

good reasons?

Inco

mpati

ble • Most

applications are not 100% compatible

Clo

ud • It runs!

Clo

ud o

pti

miz

ed • It runs!

• Many instances

• Auto-scaling• Reliable• Cost-

effective• Monitored• Self-aware• ...

refactoring

Page 26: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

TimeTracker on steroids!• Our company decided to go for Windows Azure• New migration track started

• Learn about Windows Azure• Support deployment on Windows Azure• Store data in SQL Azure• Store attachments on blob storage• Somehow connect with the billing system to get a list of

project names• Deploy

Page 27: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Support deployment on Windows Azure• Convert the TimeTracker solution to a Cloud Service solution• Make sure it can be packaged for deployment• Make sure it runs on Development Fabric

• Requirements:• IIS7• Visual Studio• Windows Azure Tools for Microsoft Visual Studio• Windows Azure SDK (shipped with the above)

Page 28: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Windows Azure Tools for Microsoft Visual Studio

Get them on www.azure.com

Page 29: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

DEMO

Converting the TimeTracker solution

Page 30: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

TimeTracker on steroids!• Our company decided to go for Windows Azure• New migration track started

• Learn about Windows Azure• Support deployment on Windows Azure• Store data in SQL Azure• Store attachments on blob storage• Somehow connect with the billing system to get a list of

project names• Deploy

Page 31: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Store data in SQL Azure• There is a database on-premise in SQL Server

• Schema should be migrated• Data should be migrated

• Requirements:• Native SQL client• SQL Management Studio

Page 32: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Migrating schema and data• SQL Azure Migration Wizard

http://sqlazuremw.codeplex.com • SQL Azure Data Sync Tool for SQL Server

http://www.microsoft.com/windowsazure/developers/sqlazure/datasync/

• SQL Server Management Studio 2008 R2 November Community Technology Preview

Page 33: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

DEMO

Migrating data to SQL AzureSynchronizing SQL and SQL Azure

Page 34: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

ASP.NET Membership & Roles• Will not work out of the box!

• Some incompatible SQL

• Updated scripts and aspnet_regqslazure.exe• http://support.microsoft.com/default.aspx/kb/2006191

Page 35: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

TimeTracker on steroids!• Our company decided to go for Windows Azure• New migration track started

• Learn about Windows Azure• Support deployment on Windows Azure• Store data in SQL Azure• Store attachments on blob storage• Somehow connect with the billing system to get a list of

project names• Deploy

Page 36: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Store attachments on blob storage• Attachments currently stored on the web server• Windows Azure server storage not guaranteed to survive

• There’s an option for that...• ...but it will still fail in some situations

• Ideal candidate: blob storage

• Requirements:• Windows Azure SDK• A tool to browse storage and see if it works

Page 37: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Tools to see if it works• CloudBerryLab Explorer

http://www.cloudberrylab.com• Azure Storage Explorer

http://azurestorageexplorer.codeplex.com/• Online

http://myazurestorage.com • Visual Studio 2010 tools

Page 38: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

DEMO

Storing attachments on Windows Azure blob storage

Page 39: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

TimeTracker on steroids!• Our company decided to go for Windows Azure• New migration track started

• Learn about Windows Azure• Support deployment on Windows Azure• Store data in SQL Azure• Store attachments on blob storage• Somehow connect with the billing system to get a list of

project names• Deploy

Page 40: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Connect with the billing system• List of projects comes from on-premise billing system• TimeTracker will be in the cloud

• Requirements:• Expose the billing system to the Internet• Connect to it

Page 41: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Service Bus Overview

Page 42: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Connect with the billing system• List of projects comes from on-premise billing system• TimeTracker will be in the cloud• Communication will happen over the AppFabric service bus

• Requirements:• Visual Studio• AppFabric SDK

Page 43: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

DEMO

Using AppFabric service bus

Page 44: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Another option…• Billing system WCF configuration was changed• If that’s not possible: PortBridge to the rescue!

http://bit.ly/bCDrUs

Page 45: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

TimeTracker on steroids!• Our company decided to go for Windows Azure• New migration track started

• Learn about Windows Azure• Support deployment on Windows Azure• Store data in SQL Azure• Store attachments on blob storage• Somehow connect with the billing system to get a list of

project names• Deploy

Page 46: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Deploy• Package up the application• Deploy the thing

• Requirements:• Windows Azure SDK• A web browser

Page 47: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Windows Azure Platform Benefits for MSDN Subscribers• MSDN Subscriber Benefits

• 750 Hours• 8 Months• 10 GB Storage• SQL Azure Web Edition

• Details at http://msdn.microsoft.com/en-us/subscriptions/ee461076.aspx

Windows Azure Platform offerIntroductory MSDN Premium

offer

Windows Azure

Compute hours per month 750 hours

Storage 10 GB

Transactions per month 1,000,000

AppFabric Service bus messages per month 1,000,000

SQL Azure Web Edition (1GB databases) 3

Data Transfers per monthEurope and North America 7 GB in / 14 GB out

Asia Pacific 2.5 GB in / 5 GB out

Page 48: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

DEMODeploying TimeTracker

Page 49: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

TimeTracker on steroids!• Our company decided to go for Windows Azure• New migration track started

• Learn about Windows Azure• Support deployment on Windows Azure• Store data in SQL Azure• Store attachments on blob storage• Somehow connect with the billing system to get a list of

project names• Deploy

Page 50: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

What to remember?• Windows Azure is

• Operating system (computing & storage)• SQL Azure• AppFabric• Your application and skills

• Hybrid applications are possible

• It’s not that hard to do

Page 51: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Resources• Websites

• Windows Azure http://www.azure.com• Local MSDN http://www.msdn.be• Local TechNet http://www.microsoft.com/belux/technet

• Blogs• Steve Marx http://blog.smarx.com • Clemens Vasters http://vasters.com/clemensv • Simon Guest http://simonguest.com/blogs/smguest • My blog http://blog.maartenballiauw.be/category/Azure.aspx

• Videos and presentations• PDC http://microsoftpdc.com

• RealDolmen blogs is running on Azure!http://www.realdolmenblogs.com

Page 52: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

Questions?

Possibly Answers

Page 53: Put your existing application on Windows Azure Maarten Balliauw Technical Consultant Twitter: @maartenballiauw

THANK YOU!

Maarten Balliauwhttp://blog.maartenballiauw.be

http://twitter.com/maartenballiauw