arc ready cloud computing

85
ArcReady Architecting for the Cloud Phil Wheat Architect Evangelist [email protected] blog: PhilWheat.net

Upload: philip-wheat

Post on 14-Jun-2015

483 views

Category:

Technology


2 download

DESCRIPTION

ArcReady March Slides

TRANSCRIPT

Page 1: Arc Ready Cloud Computing

ArcReady

Architecting for the Cloud

Phil WheatArchitect [email protected]: PhilWheat.net

Page 2: Arc Ready Cloud Computing
Page 3: Arc Ready Cloud Computing

Community EventsAustin CodeCamp – May 30th

http://www.austincodecamp.com/Dallast TechFest –June 19th

http://www.dallastechfest.com/StartupWeekend San Antonio

http://startupweekend.com/san-antonio-startup-weekend/

Page 4: Arc Ready Cloud Computing

Are you a technology start-up?

• BizSpark is an innovative new program that unites Startups with entrepreneurial and technology resources in a global community with a common goal of supporting and accelerating the success of a new generation of high-potential Startups.

http://www.microsoft.com/bizspark

Page 5: Arc Ready Cloud Computing

Microsoft Developer Tools Promotions…ending June 30th, 2009

Contact your local Microsoft

Developer Tools Representative for

more details…

Midwest and North Central

Jerry Flynn(314) 872-5919

[email protected]

Heartland and South Central

Rachel McKane(469) 775-6125

[email protected]

Page 6: Arc Ready Cloud Computing

ArcReady:Architecting for the cloud

Page 7: Arc Ready Cloud Computing

About Me

Phil WheatArchitect [email protected]: PhilWheat.net

Page 8: Arc Ready Cloud Computing

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 9: Arc Ready Cloud Computing

Discussion Encouraged

Page 10: Arc Ready Cloud Computing
Page 11: Arc Ready Cloud Computing

SESSION 1

Architecting for the cloud

Page 12: Arc Ready Cloud Computing
Page 13: Arc Ready Cloud Computing
Page 14: Arc Ready Cloud Computing

Flashback to previous ArcReady

Page 15: Arc Ready Cloud Computing
Page 16: Arc Ready Cloud Computing
Page 17: Arc Ready Cloud Computing

Application Service Providers (ASP)

Page 18: Arc Ready Cloud Computing

Software as a Service

Page 19: Arc Ready Cloud Computing

Software + Services

Page 20: Arc Ready Cloud Computing

“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 21: Arc Ready Cloud Computing

Almost zero upfront infrastructure cost

Page 22: Arc Ready Cloud Computing

Just in time Infrastructure

Page 23: Arc Ready Cloud Computing

More efficient resource utilization

Page 24: Arc Ready Cloud Computing

Usage Based Computing

Page 25: Arc Ready Cloud Computing

Potential to shrink processing time

Page 26: Arc Ready Cloud Computing

Concerns with Cloud Computing

Page 27: Arc Ready Cloud Computing

Security

Page 28: Arc Ready Cloud Computing

Scalability

Page 29: Arc Ready Cloud Computing

Reliability

Page 30: Arc Ready Cloud Computing

Regulations and other legal issues

Page 31: Arc Ready Cloud Computing

Azure

Page 32: Arc Ready Cloud Computing

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 33: Arc Ready Cloud Computing
Page 34: Arc Ready Cloud Computing

Platform as a service

Page 35: Arc Ready Cloud Computing

Your Applications

Page 36: Arc Ready Cloud Computing

Your Applications

Page 37: Arc Ready Cloud Computing

Use Case – Erratic Traffic

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

Page 38: Arc Ready Cloud Computing

Use Case – Erratic Traffic

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

Page 39: Arc Ready Cloud Computing

Use Case – New Site Launch

Page 40: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

Public InternetPublic Internet

Web RoleWeb Role

Storage ServiceStorage Service

Worker Role

Worker Role

Load Balancer

Page 43: Arc Ready Cloud Computing

Public InternetPublic Internet

Web RoleWeb Role

Storage ServiceStorage Service

Worker Role

Load Balancer

Page 44: Arc Ready Cloud Computing

Public Internet

Web Role

Storage ServiceStorage Service

Worker Role

Worker Role

Load Balancer

Page 45: Arc Ready Cloud Computing

Fabric

Compute Storage

Application

Blobs Queues

HTTP

Tables

Page 46: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

Table . . .. . .Table Table

Entity . . .. . .Entity Entity

Property PropertyProperty

Name Type Value

Storage Accounts

Page 48: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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

DurableDurableIf these are important to you, use:

Page 51: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing
Page 57: Arc Ready Cloud Computing

Your Applications

Page 58: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

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

firewalls get in the way The 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: Arc Ready Cloud Computing

Service Bus

Registry

Endpoints

Organization YOrganization X

Application Application

Service Bus

2) Discover endpoints

1) Register endpoints3) Access

application

Page 62: Arc Ready Cloud Computing

Your Applications

Page 63: Arc Ready Cloud Computing

SQL Services

.NET Services

Windows Azure

Live Services

Applications

Applications

OthersWindows

Mobile

Windows

Vista/XP

Windows

Server

SQL Data Services

Others (Future)

Page 64: Arc Ready Cloud Computing

Data Center

SQL Data

Services

Container . . .. . .Container Container

HTTP/ SOAP

Entity . . .. . .Entity Entity

Property PropertyProperty

Name Type Value

Authorities

Page 65: Arc Ready Cloud Computing

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: Arc Ready Cloud Computing

Break

Page 67: Arc Ready Cloud Computing
Page 68: Arc Ready Cloud Computing

SESSION 2

Mesh and Live Services

Page 69: Arc Ready Cloud Computing

Your Applications

Page 70: Arc Ready Cloud Computing

Your Applications

Page 71: Arc Ready Cloud Computing

Windows Live

Page 72: Arc Ready Cloud Computing

Finished Services

Page 73: Arc Ready Cloud Computing

Software Applications

Page 74: Arc Ready Cloud Computing

… 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 75: Arc Ready Cloud Computing
Page 76: Arc Ready Cloud Computing

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 78: Arc Ready Cloud Computing

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 79: Arc Ready Cloud Computing

Live MeshLive Mesh

Page 80: Arc Ready Cloud Computing

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

Page 81: Arc Ready Cloud Computing
Page 82: Arc Ready Cloud Computing
Page 83: Arc Ready Cloud Computing

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 84: Arc Ready Cloud Computing

“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 85: Arc Ready Cloud Computing

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