[ppt]powerpoint presentationvideo.ch9.ms/teched/2012/na/azr312.pptx · web viewfield engineering...

Post on 27-May-2018

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

How to Move and Enhance Existing Apps for Windows AzureTom Fuller, Purush Vankireddy, Greg VarverisField and Service EngineeringMicrosoft Corporation

AZR312

This Session Is…Your cloud atlasA long term path to business agility via the cloud

Good BetterBest

A hybrid success storyA pragmatic plan for getting to PaaS

Your Cloud Atlas

Tom FullerPremier Field EngineeringMicrosoft

Navigating All Things ‘Cloud’

The JourneyM

arch

20

10

Nove

mbe

r 20

10

June

20

12

Mar

ch

2011

Janu

ary

2012

"This is the bet for the company, … for the cloud, we're all in.“ -Steve Ballmer

SDK 1.3 Released

July

20

11

VM Role and Azure Connect Beta

Nove

mbe

r 20

11

SDK 1.6 Released

Field and Services Engineering partner to migrate MSDN/TechNet

Field Engineering releases offerings to assist in moving to PaaS

Field Engineering begins supporting IaaS customer previews

Field and Services Engineering begin working on MSDN/TechNet migration to IaaS

Windows Azure IaaS Era Begins

Beyond Public CloudManaged public clouds != happiness

Bare Metal

Private Virtualized

Hybrid

SpecializedNon-VirtualUltra Performant

Compliance ConstrainedPre-InvestedOn-Prem Infrastructure Bound

Niche NeedContinuity and RecoveryIncreasing Reach

What is a Private Cloud?Shift your datacenter to a single compute ‘cloud’Key Characteristics

Pooled ResourcesSelf-ServiceElasticUsage Based

Breaking Down WallsOn-Premise applications tend to be

Dependent

Windows Components (DTC, WAS, COM+, etc.)

Complicated

Not Constraint Friendly (Storage Limits, Rigid Auth, etc)Knowledge Leak Issues

Authn/Authz InfrastructureWindows Software + License (ex. Sharepoint)

Established User BaseScaling arch is vertical

All About the AppsThree typical solution architecturesGeo-Distributed Service

Public Facing Website

Intranet LOB Application

No data privacy or compliance Issues

Depends on specialized Windows Server Infra. (ex. DTC, AD)Usage patterns map well to the cloud

High data storage requirementsNo complex dependenciesStateless design for UI TierHigh scale and elasticity demands

No data privacy or compliance Issues

Infra. dependencies can be automated

Trivial to move toward Statelessness and high ResiliencyPerformance is key

App #1: Inventory Management (Centralized)

User (Chicago)

LB

Existing Centralized On

Premise Architecture

Product Inventory

Service (1)

Product Inventory

Service (n)

Central Inventory

User (Los Angeles)

User (Orlando)

Branch Inventory (Los Angeles)

Branch Inventory (Chicago)

Branch Inventory (Orlando)

Requires 2-Phased Atomic

Transaction

App #1: Inventory Management (Distributed)

Inventory Service

(1)

User (Los

Angeles) LB

Inventory Service

(n)

User (Orlando)

Inventory Service

(1)LB

Inventory Service

(n)

LB

Inventory Service

(1)

Inventory Service

(n)

User (Chicago)

Branch Inventor

y Central Inventor

y

Branch Inventory

Central Inventory

Branch Inventory

Central Inventory

! No Distributed Transaction Coordinator

Available in PaaS Today!

!

Why Forklift?Just make it work baby

Triggers Privacy Options

Usage ChangingHardware RefreshingCapacity Exceeded

Retain Control VM MobilityExtend your DC via VPNUse your Windows SKUs

Move Non-Sensitive Components

Missing Platform Features

The Distributed Transaction CoordinatorWhat is it?

Part of Windows since Win2K (could even be added to NT4)Distributed Tx Coordination for COM and .NET

Why does it require IaaS?Typically uses windows integrated authRequires stateful log fileWindows Firewall modifications

Legacy solutions depend on itHeterogeneous Resource ManagersCOM+

demo

Tom FullerPremier Field EngineeringMicrosoft

IaaS Features Enable DTC

Summary

An overview of ‘cloud’ paths

Looked at 3 types of solutions to move

Reviewed how IaaS helps you get to the cloud

This was good … how could it be better?

MSDN/TechNet

Purush VankireddyDirector of Service EngineeringMicrosoft

A Hybrid Success Story

Moving a Public Facing WebsiteThe world of Enterprise Platform Experience (EPX)

Scope Commitments

Priorities

Largest developer and ITPRO network for MicrosoftOver 50M unique visitors / 300M page viewsOver 2.8 TB content

Over 600 physical hosts

30 releases per month

99.9% availability

3 sec or less response time

SLA compliance of over 90%

Scale and agility

Cost efficiencies

Innovation and new technologies

Why Cloud?Cloud impact on EPX

Agility Manageability

Hosting

Launch readinessEngineering investments

Fail fast and learn

Efficient provisioning

Increased utilization > 50%20% cost reduction

Reduce labor

Deployments and monitoringDynamic scaling

Windows Azure Migration Goals

No Architectural/ Code changes Performance =

on-prem hosted

Manageability and operability

Dynamic scaling and geo redundancy

App #2: MSDN/TechNetUser

LB

Web Front End

(1)

Web Front End

(2)

Web Front End

(n)Log Aggregator

SQL Front

End (1)

SQL Front

End (2)

SQL Front

End (n)

Publishing Tools

DistributorPublisher

4 TB

Build Services

LB

Existing On Premise

Architecture Bursting and Hosting in Windows

Azure

Web Role (n + 1)

Web Role (n + 2)

SQL Front End (n + 1)

SQL Front End (n + 2)

Web Role (n)

SQL Front

End (n)

4 TB

4 TB

4 TB

4 TB

4 TB

4 TB

LB

Future State: Everything in

PaaS/IaaS

Web Front End

(1)

Web Front End

(2)

Web Front End

(n)

SQL Front

End (1)

SQL Front

End (2)

SQL Front

End (n)

4 TB

4 TB

4 TB

Log Aggregator

Publishing Tools

4 TB

Build Services

DistributorPublisher

User

demo

Purush VankireddyDirector of Service EngineeringMicrosoft

TechNet Database on IaaS

Performance Metrics for both PaaS and IaaS

Site Migration Performance Criteria• Start Render Time: PaaS / IaaS delta <1second• Finish Render Time: PaaS / IaaS delta <1second

Technet Sharepoint Home

Script Center Home Page

Internet Explorer Homepage

Technet Exchange Server

Technet Homepage0

0.20.40.60.8

11.21.41.61.8

PaaS / IaaS

Paas/On-Prem Iaas

Page

fini

sh r

ende

r ti

me

n se

cond

s

Summary

This was great … can it get any better?

Completed Migration in 3 Months

80 instances added for Win8 beta!

Learning curve smaller than expected!

Connectivity is critical!

Deployments & Monitoring

The End State

Greg VarverisPremier Field EngineeringMicrosoft

Moving directly to PaaS

Moving directly to PaaS

Simple

Stateless by design

Complex

Code is incompatible as is (data access, IO, stateful, etc…)Environment and config highly specialized

Few dependencies

Vanilla environment config Runtime shared and trends unknown

Platform constraints a non issue

App #3: Expense Report Application

User

LB

Existing Siloed On Premise Architecture

Expense Web UI (1)

Expense Web UI (n)

Expense Repository

All Operations In Process and All Data persisted in a

single DB

Expense Web UI (1)

Expense Repository

Image Resizer (1)

Receipt Storage

LB

Image Resizer (n)Expense Web

UI (n)

Image Resizing Queue

Move and Enhance

Application to use pure PaaS

Split up processing for scale and cost

reduction

Why move this app?Is it really worth it?

Agility Cost

Expense reports filed at end of month

Managed OS servicing and high availability

Enable global workforce

Data storage of receipts for 7 years

Licenses and maintenance costs folded into subscriptionDR built into the platform

EnvironmentOverall

GAC’d assembliesCOM objects

IISWebsites and application pools mostly use defaultsCustom ISAPI filters or HTTP ModulesUse startup scripts/OnStart method to make changesWindows Authentication

CodeMost code can remain unchanged … except

Stateful Non-Resilient

Dependent

Registry Access

File IO

Data Access (Try/Catch/Retry)

Windows Auth InfrastructureLegacy .INI files

Hardcore Networking

Unhandled ExceptionsIn Memory State

Mishandled

Code – Data Accesspublic static SqlDataReader ExecuteDataReader(SqlCommand command, CommandBehavior commandBehavior, SqlRetry retry){ SqlDataReader reader = null; int retryCount = 0; while (retry.Retries > 0){ try{ reader = command.ExecuteReader(commandBehavior); break; } catch (SqlException ex){ if (!IsRetryCapable(ex)) throw;

retry.Retries--; retryCount++; if (retry.Retries == 0) throw new ApplicationException("Failed to execute command. Max retries reached.", ex);

int sleepTime = (int)Math.Pow(retry.Retries + 1, 2.0) * retry.RetryLag; if (sleepTime > retry.MaxSleep) sleepTime = retry.MaxSleep; else if (sleepTime < retry.MinSleep) sleepTime = retry.MinSleep;

Thread.Sleep(sleepTime); } } return reader;}

private static bool IsRetryCapable(SqlException sqlException){ foreach (SqlError error in sqlException.Errors) { switch(error.Number) { case 40197: return true; case 40501: return true;} } return false;}

RuntimeOn Premise Environment != Windows Azure Environment

Understand the loadSt

ep 1

Optimize

Step

2

Compare to VM sizes

Step

3

Deploy, Test, Repeat

Step

4

Understand the loadIIS Logs (Requests/Hour)

Server CPU (Overall)

Website traffic is typically

cyclical

IIS CPU (w3wp.exe)

Impacted by Virus Scanners

and other processes

IIS CPU less

than Overall

CPU

Optimize app/siteClean things up, you’re paying for it!

Web Sites Background Workers

HTTP 302: Causes extra requestsHTTP 304: More than 1 request for unchanged resourceHTTP 404: Unnecessary requests taking CPUHTTP 500: High volumes can negatively impact CPU/Memory

Unhandled exceptions cause recycle

Async programming is your friend

Purge or Archive stale logs and data

Tools of the tradeSQ

L Az

ure

Mig

ratio

n W

izard • SQL Schema and Object

Analysis• SQL Azure Script Generation• SQL Azure Data Migration• http://bit.ly/17k4s0

Micr

osof

t Ass

essm

ent a

nd

Plan

ning

Tool

kit f

or

Win

dows

Azu

re P

latfo

rm • Environment Inventory• Evaluate applications• Stack Rank Applications• TCO-ROI Analysis• Plan for the migration• http://bit.ly/e6XLpH

Windows Azure Migration Assessment

• Discovers a complete application environment.• Over 30 .NET code analysis check items to

identify specific lines that need to be changed before migrating.

• Over 200 checks of your SQL database and SQL related configuration.

• Over 50 points of analysis intended to identify configuration that will need to be pushed to the cloud.

• Complete runtime analysis and recommendations to improve performance once on Windows Azure

Features

demo

Greg VarverisPremier Field EngineeringMicrosoft

Direct to PaaS with confidence

Related Content

AZR314 – Migrating Applications to Windows Azure Virtual Machines

MSDN/TechNet Whitepaper (http://bit.ly/Nw1uNP)

AZR201 – Windows Azure IaaS and how it works

Inventory Service Source Code (http://bit.ly/L3OgYq)

Find Tom at developertofu.com (@DeveloperTofu)

Find Greg at samuraiprogrammer.com (@varveris)

MSDN/TechNet Case Study (http://bit.ly/NFelL0)

Summary

Good Best

Better The time is now!

Resources

Connect. Share. Discuss.http://northamerica.msteched.com

Learning

Microsoft Certification & Training Resourceswww.microsoft.com/learning

TechNet

Resources for IT Professionalshttp://microsoft.com/technet

Resources for Developershttp://microsoft.com/msdn

Complete an evaluation on CommNet and enter to win!

MS Tag

Scan the Tagto evaluate thissession now onmyTechEd Mobile

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to

be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS

PRESENTATION.

top related