82
cReady: chitecting for the cloud

ArcReady - Architecting For The Cloud

Embed Size (px)

DESCRIPTION

For our next ArcReady, we will explore a topic on everyone’s mind: Cloud computing. Several industry companies have announced cloud computing services . In October 2008 at the Professional Developers Conference, Microsoft announced the next phase of our Software + Services vision: the Azure Services Platform. The Azure Services Platforms provides a wide range of internet services that can be consumed from both on premises environments or the internet. Session 1: Cloud Services In our first session we will explore the current state of cloud services. We will then look at how applications should be architected for the cloud and explore a reference application deployed on Windows Azure. We will also look at the services that can be built for on premise application, using .NET Services. We will also address some of the concerns that enterprises have about cloud services, such as regulatory and compliance issues. Session 2: The Azure Platform In our second session we will take a slightly different look at cloud based services by exploring Live Mesh and Live Services. Live Mesh is a data synchronization client that has a rich API to build applications on. Live services are a collection of APIs that can be used to create rich applications for your customers. Live Services are based on internet standard protocols and data formats.

Citation preview

Page 1: ArcReady - Architecting For The Cloud

ArcReady:Architecting for the cloud

Page 2: ArcReady - Architecting For The Cloud

About ArcReady…About ArcReady…

• A forum for aspiring and practicing architects to discuss industry trends

• An overview of Microsoft’s roadmap as it relates to software architecture

• A mechanism to solicit your feedback • An opportunity to showcase the work you do!

Page 3: ArcReady - Architecting For The Cloud

Discussion Encouraged

Page 4: ArcReady - Architecting For The Cloud
Page 5: ArcReady - Architecting For The Cloud

SESSION 1

Architecting for the cloud

Page 6: ArcReady - Architecting For The Cloud
Page 7: ArcReady - Architecting For The Cloud

Flashback to previous ArcReady

Page 8: ArcReady - Architecting For The Cloud

TimesharingTimesharing

Page 9: ArcReady - Architecting For The Cloud

Client-ServerClient-Server

Page 10: ArcReady - Architecting For The Cloud
Page 11: ArcReady - Architecting For The Cloud

Application Service Providers (ASP)

Page 12: ArcReady - Architecting For The Cloud

Software as a Service

Page 13: ArcReady - Architecting For The Cloud

Software + Services

Page 14: ArcReady - Architecting For The Cloud

“Packaged”Application

An application that I buy “off the

shelf” and run myself

“Home Built”Application

An application that I develop and

run myself

Build

vs.

Buy

Build

Buy

Hosted “Home Built”

An application that I develop

myself, but run at a hoster

Hosted “Packaged”

An application that I buy “off the

shelf” and then run at a hoster

“Home Built”using cloud

An application that I develop myself, that is hosted using

cloud platform

“Packaged”using cloud

An application that I buy “off the

shelf”, that is hosted using

cloud platform

“Software as a Service”

A hosted application that I

buy from a vendor

“Platform as a Service”

A vendor hosted development and

runtime environment

On Premise Hoster Cloud Vendor

Page 15: ArcReady - Architecting For The Cloud
Page 16: ArcReady - Architecting For The Cloud
Page 17: ArcReady - Architecting For The Cloud

Platform as a service

Page 18: ArcReady - Architecting For The Cloud

We’re building for ScaleRunning scalable services now•30B Live ID authentications/month•2B Live Search queries/month•10B MSN page views/month•240B Messenger messages/month

Building to run your services•Quincy, WA: Complete, approx 500K sq ft•San Antonio, TX: Opening Fall 08, approx 475K sq ft•Chicago, IL: Opening Spring/Summer 09, approx 550K sq ft•Dublin, Ireland: Opening Summer 09, approx 570K sq ft•Des Moines, Iowa: Recently announced land purchase

Page 19: ArcReady - Architecting For The Cloud

Use Case – Erratic Traffic

MLB.com is not affiliated with Windows Azure – example only

Page 20: ArcReady - Architecting For The Cloud

Use Case – Erratic Traffic

pgatour.com is not affiliated with Windows Azure – example only

Page 21: ArcReady - Architecting For The Cloud

Use Case – New Site Launch

Page 22: ArcReady - Architecting For The Cloud

Why leverage the cloud?

Page 23: ArcReady - Architecting For The Cloud

Almost zero upfront infrastructure cost

Page 24: ArcReady - Architecting For The Cloud

Just in time Infrastructure

Page 25: ArcReady - Architecting For The Cloud

More efficient resource utilization

Page 26: ArcReady - Architecting For The Cloud

Usage Based Computing

Page 27: ArcReady - Architecting For The Cloud

Potential to shrink processing time

Page 28: ArcReady - Architecting For The Cloud

Concerns with Cloud Computing

Page 29: ArcReady - Architecting For The Cloud

Security

Page 30: ArcReady - Architecting For The Cloud

Scalability

Page 31: ArcReady - Architecting For The Cloud

Recovery and reliability

Page 32: ArcReady - Architecting For The Cloud

Regulations and other legal issues

HIPAAGLBSOXPCI…

Page 33: ArcReady - Architecting For The Cloud

Pricing

Page 34: ArcReady - Architecting For The Cloud

Break

Page 35: ArcReady - Architecting For The Cloud

SESSION 2

The Azure Platform

Page 36: ArcReady - Architecting For The Cloud

Azure is a blue color on the HSV color wheel at 210 degrees. Azure is the hue that is halfway between blue and cyan. Its complementary color is orange.

Azure is a near synonym for the color blue. Commonly it refers to a bright blue, resembling the sky on a bright, clear day.

http://en.wikipedia.org/wiki/Azure

Page 37: ArcReady - Architecting For The Cloud
Page 38: ArcReady - Architecting For The Cloud

Your Applications

Page 39: ArcReady - Architecting For The Cloud

Your Applications

Page 40: ArcReady - Architecting For The Cloud

Storage ServicesStorage Services

Web farm that handles request from the internet

IIS7 hosted web core Hosts ASP.NET XML based

configuration of IIS7 Integrated managed

pipeline Supports SSL Windows Azure code

access security policy (CAS) for managed code

Public InternetPublic

Internet

Web RoleWeb Role

Load Balancer

Page 41: ArcReady - Architecting For The Cloud

No inbound network connections

Can read requests

from queue in storage Windows Azure

specific CAS policy for managed code

Storage ServiceStorage Service

Public InternetPublic

Internet

Worker Role

Worker Role

Page 42: ArcReady - Architecting For The Cloud

Public InternetPublic Internet

Web RoleWeb Role

Storage ServiceStorage Service

Worker Role

Worker Role

Load Balancer

Page 43: ArcReady - Architecting For The Cloud

Public InternetPublic Internet

Web RoleWeb Role

Storage ServiceStorage Service

Worker Role

Load Balancer

Page 44: ArcReady - Architecting For The Cloud

Public Internet

Web Role

Storage ServiceStorage Service

Worker Role

Worker Role

Load Balancer

Page 45: ArcReady - Architecting For The Cloud

Fabric

Compute Storage

Application

Blobs Queues

HTTP

Tables

Page 46: ArcReady - Architecting For The Cloud

Storage types: Blobs: a simple hierarchy of binary data Tables: hierarchical storage (not relational

tables) Queues: allow message-based communication

Access: Data is exposed via a RESTful interface Data can be accessed by:

▪ Windows Azure apps ▪ Other on-premises or cloud apps

Page 47: ArcReady - Architecting For The Cloud

Table . . .. . .Table Table

Entity . . .. . .Entity Entity

Property PropertyProperty

Name Type Value

Storage Accounts

Page 48: ArcReady - Architecting For The Cloud

Access via REST You can’t use ordinary ADO.NET

No SQL Query language based on the LINQ C# syntax No real joins, aggregates, etc.

An unfamiliar hierarchical structure You can’t easily move relational data to it Supporting services are scarce, e.g., reporting There’s significant platform lock-in

No schema And no views

Page 49: ArcReady - Architecting For The Cloud

Massive scalability By effectively allowing scale-out data

Highly durable Perspective:

Applied to the right problem, Windows Azure Tables are a beautiful thing▪ But they’re not the optimal solution for a majority of

data storage scenarios Amazon, Google, and others do quite similar

things▪ It appears to be the state of the art for scale-out data

Page 50: ArcReady - Architecting For The Cloud

What tables don’t doWhat tables don’t do

Not relationalNot relational

No Referential IntegrityNo Referential Integrity

No JoinsNo Joins

Limited QueriesLimited Queries

No Group byNo Group by

No AggregationsNo Aggregations

No TransactionsNo Transactions

What tables can doWhat tables can do

CheapCheap

Very ScalableVery Scalable

FlexibleFlexible

DurableDurable

If these are important to you, use:

Page 51: ArcReady - Architecting For The Cloud

Data stored in Tables A Table is a set of Entities (rows) An Entity is a set of Properties (columns)

Entity has: PartitionKey – enables scalability RowKey – unique id within the partition

(the only indexed property) Timestamp – for optimistic concurrency 255 properties for your data Max size of 1MB

Page 52: ArcReady - Architecting For The Cloud

Queue

Web Role

ASP.NET, WCF,

etc.

Worker Role

main(){ … }

1) Receive work

2) Put work in queue

3) Get work from queue

4) Do work

To scale, add more of either

Page 53: ArcReady - Architecting For The Cloud

QueueQueue

Msg 1Msg 1

Msg 2Msg 2

Msg 3Msg 3

Msg 4Msg 4

Worker Worker RoleRole

Worker Worker RoleRole

PutMessagePutMessage

Web RoleWeb Role

GetMessage GetMessage (Timeout)(Timeout)

RemoveMessagRemoveMessagee

Msg 2Msg 2Msg 1Msg 1

Worker Worker RoleRole

Msg 2Msg 2

POST http://myaccount.queue.core.windows.net/myqueue/messagesPOST http://myaccount.queue.core.windows.net/myqueue/messages

HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/xml Date: Tue, 09 Dec 2008 21:04:30 GMT Server: Nephos Queue Service Version 1.0 Microsoft-HTTPAPI/2.0

<?xml version="1.0" encoding="utf-8"?> <QueueMessagesList> <QueueMessage> <MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId> <InsertionTime>Mon, 22 Sep 2008 23:29:20 GMT</InsertionTime> <ExpirationTime>Mon, 29 Sep 2008 23:29:20 GMT</ExpirationTime> <PopReceipt>YzQ4Yzg1MDIGM0MDFiZDAwYzEw</PopReceipt> <TimeNextVisible>Tue, 23 Sep 2008 05:29:20GMT</TimeNextVisible> <MessageText>PHRlc3Q+dG...dGVzdD4=</MessageText> </QueueMessage> </QueueMessagesList>

HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/xml Date: Tue, 09 Dec 2008 21:04:30 GMT Server: Nephos Queue Service Version 1.0 Microsoft-HTTPAPI/2.0

<?xml version="1.0" encoding="utf-8"?> <QueueMessagesList> <QueueMessage> <MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId> <InsertionTime>Mon, 22 Sep 2008 23:29:20 GMT</InsertionTime> <ExpirationTime>Mon, 29 Sep 2008 23:29:20 GMT</ExpirationTime> <PopReceipt>YzQ4Yzg1MDIGM0MDFiZDAwYzEw</PopReceipt> <TimeNextVisible>Tue, 23 Sep 2008 05:29:20GMT</TimeNextVisible> <MessageText>PHRlc3Q+dG...dGVzdD4=</MessageText> </QueueMessage> </QueueMessagesList>

DELETEhttp://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=YzQ4Yzg1MDIGM0MDFiZDAwYzEw

DELETEhttp://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=YzQ4Yzg1MDIGM0MDFiZDAwYzEw

Page 54: ArcReady - Architecting For The Cloud

Queues guarantee a message will be processed at least once

Allows recovery in the event of errors Roles normally consist of several tasks

1. Get Message2. Insert to Table13. Insert to Table2

Could fail at any point Write your code to expect failures

Inserts/Deletes might fail as already performed

Data in inconsistent state (part processed)

Page 55: ArcReady - Architecting For The Cloud

Same tools you’re already used to using, namely Visual Studio

Real Storage & Dev Store have differences Fixed schema No dynamic table creating

String length nvarchar[1000] – String[64000] Dev Storage forces you to use certain patterns Can be difficult to debug issues in data store:

Use logging and tracing Use Fiddler, SQL profiler and SDK docs

Page 56: ArcReady - Architecting For The Cloud
Page 57: ArcReady - Architecting For The Cloud

Your Applications

Page 58: ArcReady - Architecting For The Cloud

Key developer challenges Many identity providers, many vendors, many

protocols, complex semantics – tricky to get right Application strewn with one-off access logic Hard to get right, not agile, not compliant, many

dead ends Approach

Automate federation for a wide-range of identity providers and technologies

Factor the access control logic from the application into manageable collection of rules

Easy-to-use framework that ensures correct token processing

Page 59: ArcReady - Architecting For The Cloud

Key developer challenges Want to easily describe long-running processes Want modularity and nesting Easy to describe but in practice harder to run

▪ Hosting and scaling can be challenging▪ Setup and installing, define scale-out

approach, ensure long-running availability, manage upgrades, …

Approach .NET 3.0/3.5/4.0 addresses key developer

requests .NET Services makes it easy to deploy, manage

and run Workflows

Page 60: ArcReady - Architecting For The Cloud

The problem: Exposing internal applications on the Internet isn’t easy Network address translation (NAT) and

firewalls get in the wayThe solution:

Service Bus provides a cloud-based intermediary between clients and internal applications

It also provides a service registry that clients can use to find the services they need

Page 61: ArcReady - Architecting For The Cloud

Service Bus

Registry

Endpoints

Organization YOrganization X

Application Application

Service Bus

2) Discover endpoints

1) Register endpoints3) Access

application

Page 62: ArcReady - Architecting For The Cloud

Your Applications

Page 63: ArcReady - Architecting For The Cloud

SQL Services

.NET Services

Windows Azure

Live Services

Applications

Applications

OthersWindows

Mobile

Windows

Vista/XP

Windows

Server

SQL Data Services

Others (Future)

Page 64: ArcReady - Architecting For The Cloud

Data Center

SQL Data

Services

Container . . .. . .Container Container

HTTP/ SOAP

Entity . . .. . .Entity Entity

Property PropertyProperty

Name Type Value

Authorities

Page 65: ArcReady - Architecting For The Cloud

Resources

• Jinesh Varia’s Cloud Computing Whitepaper – http://aws.amazon.com

• Azure Landing Site – http://azure.com• Steve Marx - http://blog.smarx.com• Azure Team - http://blogs.msdn.com/windowsazure

Page 66: ArcReady - Architecting For The Cloud

Your Applications

Page 67: ArcReady - Architecting For The Cloud

Your Applications

Page 68: ArcReady - Architecting For The Cloud

Windows Live

Page 69: ArcReady - Architecting For The Cloud

Finished Services

Page 70: ArcReady - Architecting For The Cloud

Software Applications

Page 71: ArcReady - Architecting For The Cloud

… are a set of building blocks for handling user data and application resources which can connect your application to hundreds of millions of users.

Storage Search & GeospatialIdentity Directory

Devices Applications Synchronization

Mesh Services

User

Comms & Presence

1.2B 30B367M

320M

nnPB

460M

Page 72: ArcReady - Architecting For The Cloud
Page 73: ArcReady - Architecting For The Cloud

Connect across devicesEmbed social building blocksJumpstart traffic

Engage with over 450M users on Windows Live Integrate with experiences, relationships and data users care about

Comprehensive Windows Live services API’s (incl. Messenger, feeds, contacts, search) Developer Tooling with integrated Live Services

Open, interoperable programming interface and resource model across digital devices. Data synchronization and local accessibility of web / cloud data

Why Live Services?

Page 75: ArcReady - Architecting For The Cloud

Eliminated calls to help center about locations

Proof of concept in three weeks

24/7 technical support, easy development with online software development kit

Chose Microsoft® Virtual Earth™ with the Microsoft MapPoint® Web service

Integrated location information to provide location hours and services

Added 3-D maps and integrated driving directions

FedEx wanted to increase its visibility and improve customer experience

Wanted to add location information and rich features to its online store locater

Stable, well-supported solution platform was a must

FedEx improves customer experience with integrated mapping and location data

“With Virtual Earth, rather than clicking 10 times to find information, customers get it right away with the

compass control.”SNarayanan Kasiarunachalam, Technical Advisor, FedEx

Customer Logo

Page 76: ArcReady - Architecting For The Cloud

Live MeshLive Mesh

Page 77: ArcReady - Architecting For The Cloud

Quick Walkthrough and Demo(not nearly as impressive as the video)

Page 78: ArcReady - Architecting For The Cloud
Page 79: ArcReady - Architecting For The Cloud
Page 80: ArcReady - Architecting For The Cloud

External Commentary

#1 Coolest technology demoed at Web 2.0

“Live Mesh… could change the way PCs and other devices interact with Internet Services and each other…”

“… most ambitious step yet in transforming its personal computer business

“Despite Microsoft’s reputation of being a closed-wall company, it is adopting simple protocols in its Live Mesh synchronization strategy.”

“Live Mesh represents the company Microsoft is trying to become…” Rob Enderle

Page 81: ArcReady - Architecting For The Cloud

“Eventually, we’ll give customers instant access to any movie on any device with an Internet connection and a screen.” “More immediately, we could use this technology to reach into airports. Travelers could quickly download movies from Blockbuster kiosks to their portable media players.”

Keith Morrow Chief Information Officer, Blockbuster

Page 82: ArcReady - Architecting For The Cloud

© 2009 Microsoft corporation. all rights reserved.this presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.