1 / 38

Designing for the Windows Azure Application Developer Model

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

gabi
Download Presentation

Designing for the Windows Azure Application Developer Model

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Designing for the Windows Azure Application Developer Model Larry Gregory Evangelism Manager Microsoft Corporation

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

  3. 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

  4. PaaS and Platform Abstraction Platform (as a Service) Software (as a Service) (On-Premises) Infrastructure (as a Service) You manage You manage Applications Applications Applications Applications Managed by vendor You manage Managed by vendor Data Data Data Data Managed by vendor Runtime Runtime Runtime Runtime Middleware Middleware Middleware Middleware O/S O/S O/S O/S Virtualization Virtualization Virtualization Virtualization Servers Servers Servers Servers Storage Storage Storage Storage Networking Networking Networking Networking

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

  6. 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 RESTfulService Management API Computeprovides availability and scalability to the application. Developers can build services using a combination of Windows Azure roles. Compute Storage CDN Management The Fabric Controller provides automated load balancing and compute resource scaling for your Windows Azure application

  7. Designing Applications for Windows Azure To receive the availability and scalability benefits that Windows Azure provides, an application must follow three rules: • A Windows Azure application is built from one or more roles • A Windows Azure application runs multiple instances of each role • A Windows Azure application behaves correctly when any role instance fails Compute Storage CDN Management

  8. #1: A Windows Azure application is built from one or more roles • 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.) Windows Azure provides virtual machine types called ‘Roles’ to make platform capabilities available to your application • Virtual Machine (VM) Role • Runs a Windows Server 2008 R2 VHD • Makes it easier to move existing applications to Azure Web Role Worker Role • 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 Compute Storage CDN Management

  9. #2: A Windows Azure application runs multiple instances of each role • Benefits to your application: • Distribute load across VMs • Locked processes won’t stop handling new request • Scale up and down Applications consist of one or more role instances Windows Azure must run at least two distinct copies of each role it contains for availability Load Balancer UI/ServicesInstance ComputeInstance VM Instance(s) VM Instance(s) HTTP/HTTPS Load is balanced per request Each instance runs as its own VM, replicated as needed • Impact on Your Application Design • Shared Persistence: Client-specific application state should be stored outside of role instances to retain durability

  10. #3: A Windows Azure application behaves correctly when any role instance fails • Provides Protection From… • System Failure • System Maintenance • System Updates If one (or more) instance fails… The application must be designed to continue to behave correctly Load Balancer HTTP/HTTPS UI/ServicesInstance ComputeInstance VM Instance(s) VM Instance(s) • Impact on Your Application Design • Shared Persistence: State shouldn’t be affected by instance failures; multiple ‘retries’ should work

  11. 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 Fabric Controller Developer Portal

  12. Introduction to the Windows Azure Application Development Model Application Service(s) Service(s) represent the logical parts of your application Fabric Controller Developer Portal Model Your Model is the configuration of how your service(s) are to be deployed to the resource pool

  13. Windows Azure App Dev Model: Fabric Controller & Resource Management Your compute role instances run on a pool of compute and storage services available from Windows Azure Resource Pool Load Balancer Application Service(s) Fabric Controller Developer Portal Model

  14. 1 2 Windows Azure App Dev Model: Fabric Controller & Resource Management Instantiates and loads instances using the application’s configuration Provides DNS information to the data center DNS Servers for load balancing Resource Pool D N S Load Balancer Application Service(s) Fabric Controller Developer Portal Model Load Application via VS or Portal Use the tooling or developer portal to load and configure the application

  15. 3 Windows Azure App Dev Model: Fabric Controller & Resource Management Instantiates and loads instances using the application’s configuration Provides DNS information to the data center DNS Servers for load balancing Monitors your application’s role instances for failure Resource Pool D N S Load Balancer Application Service(s) Fabric Controller Developer Portal Model

  16. 3 Windows Azure App Dev Model: Fabric Controller & Resource Management Instantiates and loads instances using the application’s configuration Provides DNS information to the data center DNS Servers for load balancing Monitors your application’s role instances for failure &start new instances Resource Pool D N S Load Balancer Application Service(s) Fabric Controller Developer Portal Model

  17. 4 Windows Azure App Dev Model: Fabric Controller & Resource Management Instantiates and loads instances using the application’s configuration Provides DNS information to the data center DNS Servers for load balancing Monitors your application’s role instances for failure &start new instances As needed, can scale instances up Resource Pool D N S Load Balancer Application Service(s) Fabric Controller Developer Portal Model Update via Developer Portal Request scale up of the application to meet additional compute demand

  18. 4 Windows Azure App Dev Model: Fabric Controller & Resource Management Instantiates and loads instances using the application’s configuration Provides DNS information to the data center DNS Servers for load balancing Monitors your application’s role instances for failure & start new instances As needed, can scale instances up or down Resource Pool D N S Load Balancer Application Service(s) Fabric Controller Developer Portal Model Update via Developer Portal Request scale down of the application to meet additional compute demand

  19. 5 Windows Azure App Dev Model: Fabric Controller & Resource Management Instantiates and loads instances using the application’s configuration Provides DNS information to the data center DNS Servers for load balancing Monitors your application’s role instances for failure & start new instances As needed, can scale instances up or down Can also deploy application updates to staging servers Resource Pool D N S Load Balancer Application Service(s) Fabric Controller Developer Portal Model

  20. 5 Windows Azure App Dev Model: Fabric Controller & Resource Management Instantiates and loads instances using the application’s configuration Provides DNS information to the data center DNS Servers for load balancing Monitors your application’s role instances for failure & start new instances As needed, can scale instances up or down Can also deploy application updates to staging servers and make them live Resource Pool D N S Load Balancer Application Service(s) Fabric Controller Developer Portal Model

  21. Windows Azure App Dev Model: Benefits of Platform Abstraction • Availability Benefits • Protection against hardware failures • Protection against software failures • Update applications with no application downtime • Update infrastructure components with no application downtime Resource Pool Load Balancer • Scalability Benefits • Developer specified number of role instances via portal or • Service Management API Application Service(s) Fabric Controller Developer Portal Model

  22. Windows Azure Platform • Developer Experience Windows Azure Command-line Tool for • Use existing skills and tools. Tools for Windows Azure Windows Azure SDKs AppFabric SDKs http:// oData XML AtomPub REST RSS Web Services Runtimes & Services

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

  24. Apps that Benefit from Windows Azure Scale-OutCompute Scale-OutWeb Applications Departmental Applications Marketing or Social Applications SaaS Applications

  25. 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 investment Windows 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 Scale-out Web Apps on Windows Azure

  26. Janison Uses the Windows Azure Platform to Assess Students Online Business Challenge Solution Results/Benefits • Deliver an online assessment for up to 80,000 students at once • Support up to 5,000 transactions per second • Azure roles for authentication, testing and data synchronisation • Linked to administration IIS/SQL system • To date – 30,000 students online at once • 300 azure servers • Application developed in 3 months • Hosting costs less than $10K 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)

  27. 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 Departmental Apps on Windows Azure

  28. Computershare Uses the Windows Azure Platform AS ELASTIC compute OFFLOADING Business Challenge Solution Results/Benefits • Seasonal and unpredictable load • Expensive idle capacity • Negative effects on core business • Offload peaks to the cloud • Auto scale to meet demand • Shut down when not in use • Less capital accumulation • Better utilisation • Lower cost • Greener IT 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.

  29. 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 SaaS Apps on Windows Azure

  30. MYOB Uses the Windows Azure Platform to help clients move online Business Challenge Solution Results/Benefits • 1m desktop users • Multiple data sets • Creating dev platform • Smooth transition • MYOB rewritten for MS Azure • Best of both worlds: online and offline • Speed to market • Data and Business logic in the cloud • Real time collaboration • Move to PaaS 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

  31. 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 Marketing & Social Apps on Windows Azure

  32. Logo LiveSpot Uses the Windows Azure Platform to DELIVER LOCATION BASED SERVICES to Mobile Users Business Challenge Solution Results/Benefits • Developed a flexible location-centric service (+20 apps) on Windows Azure that integrates with social platforms such as Facebook and Twitter • Reduced operational cost • Scale up/down in real time to satisfy demand • Leveraged existing technical expertise Rapidly bring to market mobile location based services with global reach 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

  33. 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 used Windows Azure Platform Benefits Scale up or scale down as needed Pay only for compute/storage used Automatic bursting from on-premises HPC Scale-out Compute on Windows Azure Platform enables infrastructure agility to provide supplemental compute with scalability and a reduced TCO

  34. Case Study • 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.”—AlexandreZanghellini, Cofounder, Arzeda Company Profile: 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.

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

  36. Next Steps: Getting Started with the Windows Azure Platform 1 Learn more – download the tools: www.microsoft.com/windowsazure/getstarted 2 Activate your MSDN Azure benefits: msdn.microsoft.com 3 ISV Partners – get Azure support: www.microsoftplatformready.com

  37. Next Steps: Accelerate your Journey to the cloud

  38. Thank you

More Related