Architecting for the Windows Azure Platform

Shared by: dachou
-
Stats
views:
1857
posted:
10/30/2009
language:
English
pages:
18
Document Sample
scope of work template
							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