Upload
gabi
View
47
Download
0
Tags:
Embed Size (px)
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
Citation preview
Slide 1
DESIGNING FOR THE WINDOWS AZURE APPLICATION DEVELOPER MODELLarry GregoryEvangelism ManagerMicrosoft Corporation
2http://www.flickr.com/photos/lbrummphoto/4315487404/sizes/l/in/photostream/
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
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
http://www.flickr.com/photos/pedromourapinheiro/5075612989/sizes/o/
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
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
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
#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
#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
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
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
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
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
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
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
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
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
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
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
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
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
Why next web
23http://www.flickr.com/photos/benterrett/191625180/sizes/l/in/photostream/
APPS THAT BENEFIT FROM WINDOWS AZURE
Scale-OutCompute
Departmental Applications
Scale-OutWeb Applications
Marketing or Social
Applications
SaaS Applications
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
• 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)
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
•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.
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
• 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
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
• 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
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
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.
http://www.flickr.com/photos/53370644@N06/4976490816/sizes/l/in/photostream/
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
NEXT STEPS: ACCELERATE YOUR JOURNEY TO THE CLOUD
THANK YOU