Architecting Solutions Leveraging the Cloud<br />David Chou<br />david.chou@microsoft.com<br />blogs.msdn.com/dachou<br />
Application Models<br />Web Hosting<br /><ul><li>Massive scale infrastructure
Burst & overflow capacity
Temporary, ad-hoc sites</li></ul>Application Hosting<br /><ul><li>Hybrid applications
Composite applications
Automated agents / jobs</li></ul>Media Hosting & Processing<br /><ul><li>CGI rendering
Content transcoding
Media streaming</li></ul>Distributed Storage<br /><ul><li>External backup and storage</li></ul>High Performance Computing<...
Massive modeling & simulation
Advanced analytics</li></ul>Information Sharing<br /><ul><li>Reference data
Common data repositories
Knowledge discovery & mgmt</li></ul>Collaborative Processes<br /><ul><li>Multi-enterprise integration
B2B& e-commerce
Supply chain management
Health & life sciences
Domain-specific services</li></li></ul><li>Case Study<br />About<br /><ul><li>kbb.com, established 1995; vehicle data aggr...
14M UU/month
Upcoming SlideShare
Loading in...5
×

Architecting Solutions Leveraging The Cloud

2,195

Published on

Discussion on how to design next-generation applications leveraging cloud platforms. Deck delivered at the 2009Q4 Microsoft Architect Council events

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

No Downloads
Views
Total Views
2,195
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
211
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide
  • Source: Jeffrey Dean and Sanjay Ghemawat, Google
  • Source: John Rothschild, VP of Technology, Facebook
  • Architecting Solutions Leveraging The Cloud

    1. 1. Architecting Solutions Leveraging the Cloud<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 />About<br /><ul><li>kbb.com, established 1995; vehicle data aggregation and publication service provider
    17. 17. 14M UU/month
    18. 18. Multiple physical data centers</li></ul>Solution<br /><ul><li>Cloud-based overflow capacity
    19. 19. Windows Azure Web Role
    20. 20. SQL Azure database</li></ul>Benefits<br /><ul><li>~$100,000 savings / year in hosting costs alone
    21. 21. Retire failover data center (27 Web servers & 9 SQL Servers)
    22. 22. <1% code changes needed for application compatibility
    23. 23. 6 weeks down to 6 minutes to add server capacity</li></li></ul><li>Case Study<br />About<br /><ul><li>Legacy call-center application for order processing and fulfillment
    24. 24. On-premise systems integration with ERP and master data management</li></ul>Solution<br /><ul><li>Cloud-based Web-enablement of on-premise assets
    25. 25. Windows Azure Web Role
    26. 26. Web services integration via on-premise ESB endpoints</li></ul>Benefits<br /><ul><li>“In a matter of weeks, we were able to see the fruits of our efforts very rapidly.“ – Kevin Flowers, Dir. Enabling Technologies
    27. 27. “The resilience and reliability of this platform is some of the benefits that we are seeing.” – EsatSezer, SVP & CIO</li></li></ul><li>Case Study<br />About<br /><ul><li>Complex Monte Carlo simulations to calculate financial risks
    28. 28. Daily risk analysis load equivalent to processing 4 trillion US Stocks
    29. 29. Existing on-premise HPC implementation</li></ul>Solution<br /><ul><li>Massively scalable compute leveraging cloud capacity
    30. 30. Deployed on 2K Windows Azure instances; 10K+ in 2010
    31. 31. Windows Azure Worker Role
    32. 32. Windows Azure Blob and Queue
    33. 33. AppFabric Service Bus</li></ul>Benefits<br /><ul><li>Elastic scaling to effectively meet customer demands
    34. 34. Turning elements of its peak load infrastructure from a fixed cost to a variable cost</li></li></ul><li>Case Study<br />About<br /><ul><li>Web-based ERP and accounting software to help mid-sized businesses automate customized business processes
    35. 35. 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
    36. 36. Windows Azure
    37. 37. SQL Azure</li></ul>Benefits<br /><ul><li>Application migration completed in 3 weeks with 2 developers
    38. 38. Customers can implement solution without investing in on-premise infrastructure; can save ~$8,000 for startup costs</li></li></ul><li>Case Study<br />About<br /><ul><li>Online service providing productivity tools to help students conduct research, write better papers, and get help on-demand
    39. 39. 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
    40. 40. Cloud-based extensions and services mash-ups with on-premise implementation
    41. 41. Windows Azure application
    42. 42. .NET Services service bus, access control, & workflows</li></ul>Benefits<br /><ul><li>$500,000 savings in dev. costs
    43. 43. 40% faster time-to-market
    44. 44. More effective development
    45. 45. Cost-effective scalability and enhanced availability</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 />
    46. 46. 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 />
    47. 47. 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 />
    48. 48. 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 />
    49. 49. 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 />
    50. 50. 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 />
    51. 51. Internet-Scale Application<br />2007 stats:<br />+20 petabytes of data processed / day by +100K MapReduce jobs <br />1 petabyte sort took ~6 hours on ~4K servers replicated onto ~48K disks<br />+200 GFS clusters, each at 1-5K nodes, handling +5 petabytes of storage<br />~40 GB/sec aggregate read/write throughput across the cluster<br />+500 servers for each search query &lt; 500ms<br />Scaling the process:<br />MapReduce: parallel processing framework<br />BigTable: structured hash database<br />Google File System: massively scalable distributed storage<br />
    52. 52. Internet-Scale Application<br />2009 stats:<br />+200B pageviews/month<br />&gt;3.9T feed actions/day<br />+300M active users<br />&gt;1B chat mesgs/day<br />100M search queries/day<br />&gt;6B minutes spent/day (ranked #2 on Internet)<br />+20B photos, +2B/month growth<br />600,000 photos served / sec<br />25TB log data / day processed thru Scribe<br />120M queries /sec on memcache<br />Scaling the “relational” data:<br />Keeps data normalized, randomly distributed, accessed at high volumes<br />Uses “shared nothing” architecture<br />
    53. 53. Internet-Scale Application Architecture<br />Design<br /><ul><li>Horizontal scaling
    54. 54. Service-oriented composition
    55. 55. Eventual consistency
    56. 56. Fault tolerant (expect failures)</li></ul>Security<br /><ul><li>Claims-based authentication & access control
    57. 57. Federated identity
    58. 58. Data encryption & key mgmt.</li></ul>Management<br /><ul><li>Policy-driven automation
    59. 59. Aware of application lifecycles
    60. 60. Handle dynamic data schema and configuration changes</li></ul>Data & Content<br /><ul><li>De-normalization
    61. 61. Logical partitioning
    62. 62. Distributed in-memory cache
    63. 63. Diverse data storage options (persistent & transient, relational & unstructured, text & binary, read & write, etc.)</li></ul>Processes<br /><ul><li>Loosely coupled components
    64. 64. Parallel & distributed processing
    65. 65. Asynchronous distributed communication
    66. 66. Idempotent (handle duplicity)
    67. 67. Isolation (separation of concerns)</li></li></ul><li>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 />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×