Architecting For The Windows Azure Platform

3,553 views

Published on

Deck delivered at the Windows Azure World Tour

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,553
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
314
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Build and deploy software quickly and easily by capitalizing on the same personnel, development tools investments, and knowledge that already power your IT organization. Use the services platform’s infrastructure to power prototyping environments for experimentation, and then launch to full-scale production as soon as your business needs it. Imagine connecting existing applications with an online database that can be shared with partners, or a service bus that enables secure B2B connectivity across firewalls.Pay as you grow and reduce costs. Pay for the services you use and reduce the capital costs associated with purchasing hardware and infrastructure. Reduce operational costs by running applications on the services platform and decrease the need for maintaining on-premises infrastructure. Increase business efficiency and agility by dynamically adding and subtracting capacity in real time. Envision building an e-commerce Web site that you can scale at the click of a mouse to meet seasonal demands or spikes in traffic based on sales and promotions. Develop a new portfolio of expertise. In these early stages of software development for the cloud, businesses will be seeking the best advice on what this means for their current and future technology investments. Stay ahead of the curve and help your customers understand what cloud computing and development means to their business today and how they can pivot and extend their investments to maximize its value tomorrow. Don’t slow down. Start projects without the hurdles of lengthy training or waiting for new infrastructure to be delivered and installed. With a broad set of services already running on Microsoft global data centers, the services platform is ready to start prototyping and testing solutions.
  • 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 />

    ×