Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Architecting For The Windows Azure Platform

3,723 views

Published on

Deck delivered at the Windows Azure World Tour

Published in: Technology
  • Be the first to comment

Architecting For The Windows Azure Platform

  1. 1. Architecting for the<br />Windows Azure Platform<br />David Chou<br />david.chou@microsoft.com<br />blogs.msdn.com/dachou<br />
  2. 2. Application Models<br />Web Hosting<br /><ul><li>Massive scale infrastructure
  3. 3. Burst & overflow capacity
  4. 4. Temporary, ad-hoc sites</li></ul>Application Hosting<br /><ul><li>Hybrid applications
  5. 5. Composite applications
  6. 6. Automated agents / jobs</li></ul>Media Hosting & Processing<br /><ul><li>CGI rendering
  7. 7. Content transcoding
  8. 8. Media streaming</li></ul>Distributed Storage<br /><ul><li>External backup and storage</li></ul>High Performance Computing<br /><ul><li>Parallel & distributed processing
  9. 9. Massive modeling & simulation
  10. 10. Advanced analytics</li></ul>Information Sharing<br /><ul><li>Reference data
  11. 11. Common data repositories
  12. 12. Knowledge discovery & mgmt</li></ul>Collaborative Processes<br /><ul><li>Multi-enterprise integration
  13. 13. B2B& e-commerce
  14. 14. Supply chain management
  15. 15. Health & life sciences
  16. 16. Domain-specific services</li></li></ul><li>Case Study<br />Background<br /><ul><li>Web-based ERP and accounting software to help mid-sized businesses automate customized business processes
  17. 17. Business needs:</li></ul>Launch a SaaSoffering which includes on demand infrastructure and billing<br />Maintain a 24/7 production environment<br />Minimize development efforts for both on-premise and SaaS offerings<br /><ul><li>Technical implementation</li></ul>Web – IIS 7, ASP.NET 3.5<br />Server – SQL Server 2005/2008, Windows Server 2003/2008<br />Tools – Visual Studio 2008, .NET Framework 3.5<br />Solution<br /><ul><li>Cloud-based SaaS deployment
  18. 18. Windows Azure
  19. 19. SQL Azure</li></ul>Benefits<br /><ul><li>Application migration completed in 3 weeks with 2 developers
  20. 20. Customers can implement solution without investing in on-premise infrastructure; can save ~$8,000 for startup costs
  21. 21. Lowered capital expenditures
  22. 22. Improved time-to-market and agility in meeting customer needs
  23. 23. More strategic use of IT resources</li></li></ul><li>Case Study<br />Background<br /><ul><li>Online service providing productivity tools to help students conduct research, write better papers, and get help on-demand
  24. 24. Technical implementation</li></ul>Client – Windows Mobile 6<br />Web – IIS 6, ASP.NET 3.5<br />Server – Windows Server 2003, SQL Server 2005<br />Services – Bing Search, Windows Live Messenger Web Toolkit<br />Tools – Visual Studio 2008, .NET Framework 3.5, .NET Compact Framework 3.5<br />Solution<br /><ul><li>Hybrid cloud application
  25. 25. Cloud-based extensions and services mash-ups with on-premise implementation
  26. 26. Windows Azure application
  27. 27. .NET Services service bus, access control, & workflows</li></ul>Benefits<br /><ul><li>$500,000 savings in dev. costs
  28. 28. 40% faster time-to-market
  29. 29. More effective development
  30. 30. Cost-effective scalability and enhanced availability</li></li></ul><li>Case Study<br />Local Storage<br />Eduify Workflows<br />FW—LB—Cache<br />Browser<br />Internet Clipping Toolbar<br />Eduify <br />Business Objects<br />ASPX Pages<br />Full Featured Javascript Editor<br />Local / Network File Folder<br />SQL Server<br />Common Services<br /> Notification <br /> Logging<br /> Security <br />JSON / AJAX/ HTTP<br />IE 6/7/8* and Firefox<br /><ul><li> Rich Web 2.0 Technologies: </li></ul>Javascript<br />Java<br />Ajax<br />CSS<br />XHTML<br />ASP.NET / CLR<br />IIS <br />Third Party<br />Mashups<br />Facebook Connect Integration<br />Bing Search Integration for Citation Check<br />
  31. 31. Case Study<br />Connected w/ Services<br />Live Presence<br />IM Integration<br />Search Citation / Plagiarism<br />Mash-up with Microsoft Services<br />On-Premise Implementation<br />Cloud-Based Extensions<br />ASP.NET<br />Certain ASPX | Workflows | Service Bus | Access Controls<br /> Business <br />Objects<br />Common <br />Services<br />Workflows<br />Service Bus<br />SQL Server<br />Local Storage<br />
  32. 32. Internet-Scale Application Architecture<br />Design<br /><ul><li>Horizontal scaling
  33. 33. Service-oriented composition
  34. 34. Eventual consistency
  35. 35. Fault tolerant (expect failures)</li></ul>Security<br /><ul><li>Claims-based authentication & access control
  36. 36. Federated identity
  37. 37. Data encryption & key mgmt.</li></ul>Management<br /><ul><li>Policy-driven automation
  38. 38. Aware of application lifecycles
  39. 39. Handle dynamic data schema and configuration changes</li></ul>Data & Content<br /><ul><li>De-normalization
  40. 40. Logical partitioning
  41. 41. Distributed in-memory cache
  42. 42. Diverse data storage options (persistent & transient, relational & unstructured, text & binary, read & write, etc.)</li></ul>Processes<br /><ul><li>Loosely coupled components
  43. 43. Parallel & distributed processing
  44. 44. Asynchronous distributed communication
  45. 45. Idempotent (handle duplicity)
  46. 46. Isolation (separation of concerns)</li></li></ul><li>Presentation<br /><ul><li>ASP.NET C#, PHP, Java
  47. 47. Distributed in-memory cache</li></ul>Internet-Scale Application Architecture<br />Services<br /><ul><li>.NET C#, Java, native code
  48. 48. Distributed in-memory cache
  49. 49. Asynchronous processes
  50. 50. Distributed parallel processes
  51. 51. Transient file storage</li></ul>Connectivity<br /><ul><li>Message queues
  52. 52. Service orchestrations
  53. 53. Identity federation
  54. 54. Claims-based access control
  55. 55. External services connectivity</li></ul>SERVICE BUS<br />ACCESS CONTROL<br />WORK<br />FLOWS<br />Storage<br /><ul><li>Relational & transactional data
  56. 56. Federated databases
  57. 57. Unstructured, de-normalized data
  58. 58. Logical partitioning
  59. 59. Persistent file & blob storage
  60. 60. Encrypted storage</li></li></ul><li>Application Patterns<br />Cloud Web Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Cloud Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application<br />Data<br />Reference Data<br />
  61. 61. Application Patterns<br />Composite Services Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  62. 62. Application Patterns<br />Cloud Agent Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  63. 63. Application Patterns<br />B2B Integration Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  64. 64. Application Patterns<br />Grid / Parallel Computing Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  65. 65. Application Patterns<br />Hybrid Enterprise Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  66. 66. Categories of Services<br />Application Services<br />Software Services<br />Platform Services<br />Infrastructure Services<br />The Microsoft Cloud<br />
  67. 67. Platform of Choice<br />
  68. 68. Sign up at the Windows Azure Platform developers’ portal<br />Windows Azure access<br />Developer tools <br />White papers<br />Sample applications<br />Plan pilot applications, proofs of concept, and architectural design sessions with Windows Azure partners<br />http://www.azure.com<br />
  69. 69. Thank you<br />david.chou@microsoft.com<br />blogs.msdn.com/dachou<br />© 2009 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.<br />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.<br />

×