designing for the windows azure application developer model

38
Slide 1 DESIGNING FOR THE WINDOWS AZURE APPLICATION DEVELOPER MODEL Larry Gregory Evangelism Manager Microsoft Corporation

Upload: gabi

Post on 23-Mar-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Designing for the Windows Azure Application Developer Model. Larry Gregory Evangelism Manager Microsoft Corporation. http://www.flickr.com/photos/lbrummphoto/4315487404/sizes/l/in/photostream/. Session Agenda. Impact of PaaS on Application Development Introducing Windows Azure Compute - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Designing for the Windows Azure Application Developer Model

Slide 1

DESIGNING FOR THE WINDOWS AZURE APPLICATION DEVELOPER MODELLarry GregoryEvangelism ManagerMicrosoft Corporation

Page 2: Designing for the Windows Azure Application Developer Model

2http://www.flickr.com/photos/lbrummphoto/4315487404/sizes/l/in/photostream/

Page 3: Designing for the Windows Azure Application Developer Model

SESSION AGENDA

• Impact of PaaS on Application Development• Introducing Windows Azure Compute• Introducing Windows Azure’s Application

Development Model• Related Application Scenarios• Lessons Learned from First Movers• Useful Resources to Get Started

Page 4: Designing for the Windows Azure Application Developer Model

PAAS AND PLATFORM ABSTRACTION

(On-Premises)

Infrastructure

(as a Service)

Platform(as a

Service)

StorageServers

Networking

O/SMiddleware

Virtualization

DataApplications

Runtime

StorageServers

Networking

O/SMiddleware

Virtualization

DataApplications

Runtime

You

man

age

Managed by vendor

Managed by

vendor

You

man

age

You

man

age

StorageServers

Networking

O/SMiddleware

Virtualization

Applications

RuntimeData

Software(as a

Service)

Managed by vendorStorage

Servers

Networking

O/SMiddleware

Virtualization

Applications

RuntimeData

Page 5: Designing for the Windows Azure Application Developer Model

http://www.flickr.com/photos/pedromourapinheiro/5075612989/sizes/o/

Page 6: Designing for the Windows Azure Application Developer Model

UNDERSTANDING WINDOWS AZURE COMPUTE

Windows Azure provides applications with• High availability via redundancy• On-Demand scalability (up AND

down)• Manual scaling using Developer Portal• Programmatic scaling using the RESTful

Service Management API

The Fabric Controller provides automated load balancing and compute resource scaling for your Windows Azure application

Compute provides availability and scalability to the application. Developers can build services using a combination of Windows Azure roles.

Compute Storage CDN

Management

Page 7: Designing for the Windows Azure Application Developer Model

DESIGNING APPLICATIONS FOR WINDOWS AZURE

To receive the availability and scalability benefits that Windows Azure provides, an application must follow three rules:

1. A Windows Azure application is built from one or more roles2. A Windows Azure application runs multiple instances of each role3. A Windows Azure application behaves correctly when any role instance

fails

Compute Storage CDN

Management

Page 8: Designing for the Windows Azure Application Developer Model

Web Role

Worker Role

Compute Storage CDN

Management

#1: A WINDOWS AZURE APPLICATION IS BUILT FROM ONE OR MORE ROLES

Impact on Your Application Design• Applications must be divided into logical parts• Applications must accommodate the limitations to storage and

environment access of the role they are designed to run in

Windows Azure provides virtual machine types called ‘Roles’ to make platform capabilities available to your application

Web Role• Uses IIS to host web apps• Runs ASP.NET, WCF, PHP,

etc.Worker Role• Used for generalized development• Can host 3rd-party servers

(Tomcat, MySQL, etc.)Virtual Machine (VM) Role• Runs a Windows Server 2008 R2

VHD• Makes it easier to move existing

applications to Azure

Page 9: Designing for the Windows Azure Application Developer Model

#2: A WINDOWS AZURE APPLICATION RUNS MULTIPLE INSTANCES OF EACH ROLE

Applications consist of one or more role instancesWindows Azure must run at least two distinct copies of each role it contains for availability

Each instance runs as its own VM, replicated as needed

Load is balanced per request

Impact on Your Application Design• Shared Persistence: Client-specific application

state should be stored outside of role instances to retain durability

VM Instance(s)

UI/ServicesInstance

Load BalancerHTTP/HTTPS

VM Instance(s)

ComputeInstance

Benefits to your application: Distribute load across

VMs Locked processes won’t

stop handling new request

Scale up and down

Page 10: Designing for the Windows Azure Application Developer Model

#3: A WINDOWS AZURE APPLICATION BEHAVES CORRECTLY WHEN ANY ROLE INSTANCE FAILS

If one (or more) instance fails…The application must be designed to continue to behave correctly

Impact on Your Application Design• Shared Persistence: State shouldn’t be affected by

instance failures; multiple ‘retries’ should work

VM Instance(s)

UI/ServicesInstance

Load BalancerHTTP/HTTPS

VM Instance(s)

ComputeInstance

Provides Protection From… System Failure System Maintenance System Updates

Page 11: Designing for the Windows Azure Application Developer Model

INTRODUCTION TO THE WINDOWS AZURE APPLICATION DEVELOPMENT MODEL

The Fabric Controller manages the pool of compute and storage services; automating deployment and monitoring of your application

• Automates load balancing of incoming requests to role instances

• Manages your compute resources• Instantiates and loads instances• Continuously monitors role instances

Compute Storage CDN

Management

FabricController

Developer Portal

Page 12: Designing for the Windows Azure Application Developer Model

INTRODUCTION TO THE WINDOWS AZURE APPLICATION DEVELOPMENT MODEL

FabricController

Application

Service(s)

Model

Service(s) represent the logical parts of your applicationYour Model is the configuration of how your service(s) are to be deployed to the resource pool

Developer Portal

Page 13: Designing for the Windows Azure Application Developer Model

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

Your compute role instances run on a pool of compute and storage services available from Windows Azure

Load Balancer

FabricController

Application

Service(s)

ModelDeveloper

Portal

Page 14: Designing for the Windows Azure Application Developer Model

FabricController

Application

Service(s)

ModelDeveloper

Portal

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

1. Instantiates and loads instances using the application’s configuration

2. Provides DNS information to the data center DNS Servers for load balancing

DNS

12

Load Application via VS or PortalUse the tooling or developer portal to load and configure the application

Load Balancer

Page 15: Designing for the Windows Azure Application Developer Model

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

DNS

1. Instantiates and loads instances using the application’s configuration

2. Provides DNS information to the data center DNS Servers for load balancing

3. Monitors your application’s role instances for failure

3

Load Balancer

FabricController

Application

Service(s)

ModelDeveloper

Portal

Page 16: Designing for the Windows Azure Application Developer Model

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

DNS

1. Instantiates and loads instances using the application’s configuration

2. Provides DNS information to the data center DNS Servers for load balancing

3. Monitors your application’s role instances for failure & start new instances

3

Load Balancer

FabricController

Application

Service(s)

ModelDeveloper

Portal

Page 17: Designing for the Windows Azure Application Developer Model

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

DNS

1. Instantiates and loads instances using the application’s configuration

2. Provides DNS information to the data center DNS Servers for load balancing

3. Monitors your application’s role instances for failure & start new instances

4. As needed, can scale instances up

Update via Developer PortalRequest scale up of the application to meet additional compute demand

4

Load Balancer

FabricController

Application

Service(s)

ModelDeveloper

Portal

Page 18: Designing for the Windows Azure Application Developer Model

FabricController

Developer Portal

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

DNS

1. Instantiates and loads instances using the application’s configuration

2. Provides DNS information to the data center DNS Servers for load balancing

3. Monitors your application’s role instances for failure & start new instances

4. As needed, can scale instances up or down

4

Update via Developer PortalRequest scale down of the application to meet additional compute demand

Load Balancer

Application

Service(s)

Model

Page 19: Designing for the Windows Azure Application Developer Model

FabricController

Application

Service(s)

ModelDeveloper

Portal

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

DNS

1. Instantiates and loads instances using the application’s configuration

2. Provides DNS information to the data center DNS Servers for load balancing

3. Monitors your application’s role instances for failure & start new instances

4. As needed, can scale instances up or down

5. Can also deploy application updates to staging servers

5

Load Balancer

Page 20: Designing for the Windows Azure Application Developer Model

FabricController

Application

Service(s)

ModelDeveloper

Portal

WINDOWS AZURE APP DEV MODEL: FABRIC CONTROLLER & RESOURCE MANAGEMENT

Resource Pool

DNS

1. Instantiates and loads instances using the application’s configuration

2. Provides DNS information to the data center DNS Servers for load balancing

3. Monitors your application’s role instances for failure & start new instances

4. As needed, can scale instances up or down

5. Can also deploy application updates to staging servers and make them live

5

Load Balancer

Page 21: Designing for the Windows Azure Application Developer Model

WINDOWS AZURE APP DEV MODEL: BENEFITS OF PLATFORM ABSTRACTION

Resource Pool

Availability Benefits• Protection against hardware failures• Protection against software failures• Update applications with

no application downtime• Update infrastructure components

with no application downtimeScalability Benefits

• Developer specified number of role instances via portal or

• Service Management API

Load Balancer

FabricController

Application

Service(s)

ModelDeveloper

Portal

Page 22: Designing for the Windows Azure Application Developer Model

Windows Azure PlatformRu

ntim

es &

Serv

ices

http:// REST Web ServicesXMLoData AtomPub RSS

Developer ExperienceUse existing skills and tools.

Tools for Windows Azure W

indo

ws

Azur

e

SDKs

Windows Azure Command-line Tool for

AppF

abri

c SD

Ks

Page 23: Designing for the Windows Azure Application Developer Model

Why next web

23http://www.flickr.com/photos/benterrett/191625180/sizes/l/in/photostream/

Page 24: Designing for the Windows Azure Application Developer Model

APPS THAT BENEFIT FROM WINDOWS AZURE

Scale-OutCompute

Departmental Applications

Scale-OutWeb Applications

Marketing or Social

Applications

SaaS Applications

Page 25: Designing for the Windows Azure Application Developer Model

SCALE-OUT WEB APPS ON WINDOWS AZURE

Application Challenges• Front-end often must be highly available

(Enterprise apps; Web 2.0 apps; mobile)• Demand may [or not] be predictable

(Fridays; month end; successful Groupon)• Increased scale often requires additional resource

investmentWindows Azure Platform Benefits• High availability; fault tolerance infrastructure• Updates with no downtime• Scale up or scale down as needed• Pay only for compute/storage used

Platform enables infrastructure agility to provide apps with availability, scalability, and a reduced TCO

Page 26: Designing for the Windows Azure Application Developer Model

• To date – 30,000 students online at once

• 300 azure servers • Application developed in

3 months• Hosting costs less than

$10K

• Azure roles for authentication, testing and data synchronisation

• Linked to administration IIS/SQL system

• Deliver an online assessment for up to 80,000 students at once

• Support up to 5,000 transactions per second

JANISON USES THE WINDOWS AZURE PLATFORM TO ASSESS STUDENTS

ONLINEBusiness Challenge Solution Results/Benefits

KEY LEARNING• Realisation that scaling out servers was the easiest path to achieve

performance • Cost of scaling out is not prohibitive, in fact relying on it can improve

your design• Load testing is major part of this type of project• New opportunities for community applications (learning, assessment,

collaboration)

Page 27: Designing for the Windows Azure Application Developer Model

DEPARTMENTAL APPS ON WINDOWS AZURE

Application Challenges• Departmental needs may not match IT needs

(dashboards; BU AP/AR; BU pipeline management)• Personal apps can become department-critical

(“under the desk” and “desktop servers”)

Windows Azure Platform Benefits• Rapid self-provisioning by departments• High availability and central control of data• Familiar tools and programming model to

build and migrate applications

• Platform enables departments to self-provision resources to more quickly meet departmental needs

Page 28: Designing for the Windows Azure Application Developer Model

•Less capital accumulation•Better utilisation•Lower cost•Greener IT

•Offload peaks to the cloud•Auto scale to meet demand•Shut down when not in use

•Seasonal and unpredictable load•Expensive idle capacity•Negative effects on core business

COMPUTERSHARE USES THE WINDOWS AZURE PLATFORM AS ELASTIC COMPUTE OFFLOADING

Business Challenge

Solution Results/Benefits

KEY LEARNING• Do cost your on-premise solutions and understand your pain points.• Do build and deploy secure external services today.• Do set up a management competency for your “Cloud Data Centre”.• Start small, guide your organisation. Cloud makes $ sense but is also

a threat.

Page 29: Designing for the Windows Azure Application Developer Model

SAAS APPS ON WINDOWS AZURE•Platform enables ISVs to build SaaS scalable apps thatexpand business opportunities and quickly reach new markets

Windows Azure Platform Benefits• Highly available; fault tolerant infrastructure• Easily scale up and down with customer base• Encourage customer trials without friction• Geo-dispersed data centers and CDN

Application Challenges• Meeting a variety of customer needs

(on-premise app extension; customer v partner)• Increased scale requires additional investment

(server/networking infrastructure; DB; load balancing)• Geo-expansion required to expand reach

Page 30: Designing for the Windows Azure Application Developer Model

• Speed to market• Data and Business

logic in the cloud• Real time

collaboration• Move to PaaS

• MYOB rewritten for MS Azure

• Best of both worlds: online and offline

• 1m desktop users• Multiple data sets• Creating dev

platform• Smooth transition

MYOB USES THE WINDOWS AZURE PLATFORM TO HELP CLIENTS MOVE

ONLINEBusiness Challenge

Solution Results/Benefits

KEY LEARNING• All in: required a rewrite of the existing applications – existing IP

transitioned• Azure allowed us to design for the clients needs not follow technology

limitations• Agile approach alongside Azure for speed to market

Page 31: Designing for the Windows Azure Application Developer Model

MARKETING & SOCIAL APPS ON WINDOWS AZURE

Application Challenges• Applications have unpredictable lifetime

(marketing campaigns; social media apps; start-ups)• Unknown demand has potential to overinvest• Unknown demand has potential to underinvest

(overwhelmed resources can impact brand)

Windows Azure Platform Benefits• Publicly experiment with applications without upfront

resource investments• Quickly add resources if app is successful• No unnecessary resources• CDN improves performance & user experience using high-

bandwidth delivery closer to user

•Platform enables easy experimentation with apps that may either fail fast be wildly successful

Page 32: Designing for the Windows Azure Application Developer Model

• Reduced operational cost

• Scale up/down in real time to satisfy demand

• Leveraged existing technical expertise

Developed a flexible location-centric service (+20 apps) on Windows Azure that integrates with social platforms such as Facebook and Twitter

Rapidly bring to market mobile location based services with global reach

LIVESPOT USES THE WINDOWS AZURE PLATFORM TO DELIVER LOCATION BASED SERVICES TO

MOBILE USERSBusiness Challenge

Solution Results/Benefits

KEY LEARNING• Performance degradation in shared hosting scenario led to

consideration of cloud alternatives - all were price competitive.• Leveraging existing .NET developer skills was an easy win• Membership in BizSpark provided incentive to get started on

Windows Azure

Logo

Page 33: Designing for the Windows Azure Application Developer Model

SCALE-OUT COMPUTE ON WINDOWS AZURE

Application Challenges• Compute-intensive tasks often very short-lived

(Financial modeling; scientific calculations)• Batch processing often has predictable peaks

(month/quarter end processing; financial reports)• Burst scenarios often require purchasing hardware

resources that are infrequently usedWindows Azure Platform Benefits• Scale up or scale down as needed• Pay only for compute/storage used• Automatic bursting from on-premises HPC

Platform enables infrastructure agility to provide supplemental compute with scalability and a reduced TCO

Page 34: Designing for the Windows Azure Application Developer Model

CASE STUDY

Company Profile:

Benefit Drivers:• Efficiency• Improved scalability for compute-

heavy processes• Reduced expenses by 87 percent

• Agility• Frees scientists to focus on designing

new enzymes

Situation/Solution:In an effort to affordably scale up the processing power and storage required for some of its complex mathematical computations, Arzeda implemented Windows® Azure™.

Key Advances:Delivered a cost-efficient, scalable solution for its compute-heavy computational transactions and can now focus on its business instead of worrying about managing IT infrastructure.

Biotechnology Firm Scales Up for Compute-Heavy Processes by Using Cloud Services“We want to focus all of our energy on designing new enzymes—that is our business. With Windows Azure, we can maintain our focus on what we do best and let Microsoft handle the infrastructure.”—Alexandre Zanghellini, Cofounder, Arzeda

Biotechnology firm Arzeda engineers custom-made enzymes for almost any chemical reaction. Its vision is to use those bioprocesses to contribute to a more sustainable environment.

Page 35: Designing for the Windows Azure Application Developer Model

http://www.flickr.com/photos/53370644@N06/4976490816/sizes/l/in/photostream/

Page 36: Designing for the Windows Azure Application Developer Model

NEXT STEPS: GETTING STARTED WITH THE WINDOWS AZURE PLATFORMLearn more – download the tools:

www.microsoft.com/windowsazure/getstarted

1

ISV Partners – get Azure support:www.microsoftplatformready.com

3

Activate your MSDN Azure benefits: msdn.microsoft.com

2

Page 37: Designing for the Windows Azure Application Developer Model

NEXT STEPS: ACCELERATE YOUR JOURNEY TO THE CLOUD

Page 38: Designing for the Windows Azure Application Developer Model

THANK YOU