Architecting for the Windows Azure Platform
Document Sample


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