ArcReady Architecting for the Cloud Phil Wheat Architect Evangelist [email_address] blog: PhilWheat.net
 
Community Events Austin CodeCamp – May 30 th     http://www.austincodecamp.com / Dallast TechFest –June 19 th   http://www.dallastechfest.com / StartupWeekend San Antonio http ://startupweekend.com/san-antonio-startup-weekend /
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
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_address] Heartland and  South Central Rachel McKane (469) 775-6125 [email_address]
ArcReady: Architecting for the cloud
About Me Phil Wheat Architect Evangelist [email_address] blog: PhilWheat.net
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!
Discussion Encouraged
 
SESSION 1 Architecting for the cloud
 
 
Flashback to previous ArcReady
 
 
Application Service Providers (ASP)
Software as a Service
Software + Services
“ 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
Almost zero upfront infrastructure cost
Just in time Infrastructure
More efficient resource utilization
Usage Based Computing
Potential to shrink processing time
Concerns with Cloud Computing
Security
Scalability
Reliability
Regulations and other legal issues
Azure
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
 
Platform as a service
Your Applications
Your Applications
Use Case – Erratic Traffic MLB.com is not affiliated with Windows Azure – example only
Use Case – Erratic Traffic pgatour.com is not affiliated with Windows Azure – example only
Use Case – New Site Launch
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 Storage Services Public Internet Web Role Load Balancer
No inbound  network connections Can read requests  from queue  in storage  Windows Azure  specific CAS policy for managed code Storage Service Public Internet Worker Role
Public Internet Web Role Storage Service Worker Role Load Balancer
Public Internet Web Role Storage Service Worker Role Load Balancer
Public Internet Web Role Storage Service Worker Role Load Balancer
… Fabric Compute Storage Application Blobs Queues HTTP Tables
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
Table . . . Table Table Entity . . . Entity Entity Property Property Property Name Type Value Storage Accounts
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
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
What tables don’t do Not relational No Referential Integrity No Joins Limited Queries No Group by No Aggregations No Transactions What tables can do Cheap Very Scalable Flexible Durable If these are important to you, use:
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
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
POST 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=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>  <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> DELETE http://myaccount. queue .core.windows.net/ myqueue /messages/messageid? popreceipt =YzQ4Yzg1MDIGM0MDFiZDAwYzEw Queue Msg 1 Msg 2 Msg 3 Msg 4 Worker Role Worker Role PutMessage Web Role GetMessage (Timeout) RemoveMessage Msg 2 Msg 1 Worker Role Msg 2
Queues guarantee a message will be processed  at least  once Allows recovery in the event of errors Roles normally consist of several tasks Get Message Insert to Table1 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)
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
 
Your Applications
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
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
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
Service Bus Service Bus Registry Endpoints Organization Y Organization X Application Application 2) Discover endpoints 1) Register endpoints 3) Access application
Your Applications
SQL Services .NET Services Windows Azure Live Services Applications Applications Others Windows Mobile Windows Vista/XP Windows Server SQL Data Services Others  (Future)
SQL Data Services Data Center Container  . . . Container  Container  HTTP/ SOAP Entity . . . Entity Entity Property Property Property Name Type Value Authorities
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
Break
 
SESSION 2 Mesh and Live Services
Your Applications
Your Applications
Windows Live
Finished Services
Software Applications
…  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 & Geospatial Identity Directory Devices Applications Synchronization Mesh Services User Comms & Presence 1.2B 30B 367M 320M nnPB 460M
 
Why Live Services? 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 Connect across devices Embed social building blocks Jumpstart traffic
Virtual Earth
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
Live Mesh
Quick Walkthrough and Demo (not nearly as impressive as the video)
 
 
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
“ 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
© 2009 Microsoft corporation. all rights reserved. this presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Arc Ready Cloud Computing

  • 1.
    ArcReady Architecting forthe Cloud Phil Wheat Architect Evangelist [email_address] blog: PhilWheat.net
  • 2.
  • 3.
    Community Events AustinCodeCamp – May 30 th http://www.austincodecamp.com / Dallast TechFest –June 19 th http://www.dallastechfest.com / StartupWeekend San Antonio http ://startupweekend.com/san-antonio-startup-weekend /
  • 4.
    Are you atechnology 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
  • 5.
    Microsoft Developer ToolsPromotions …ending June 30th, 2009 Contact your local Microsoft Developer Tools Representative for more details… Midwest and North Central Jerry Flynn (314) 872-5919 [email_address] Heartland and South Central Rachel McKane (469) 775-6125 [email_address]
  • 6.
  • 7.
    About Me PhilWheat Architect Evangelist [email_address] blog: PhilWheat.net
  • 8.
    About ArcReady… Aforum 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!
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
    “ Packaged” ApplicationAn 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
  • 21.
    Almost zero upfrontinfrastructure cost
  • 22.
    Just in timeInfrastructure
  • 23.
  • 24.
  • 25.
    Potential to shrinkprocessing time
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Azure isa 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
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
    Use Case –Erratic Traffic MLB.com is not affiliated with Windows Azure – example only
  • 38.
    Use Case –Erratic Traffic pgatour.com is not affiliated with Windows Azure – example only
  • 39.
    Use Case –New Site Launch
  • 40.
    Web farm thathandles 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 Storage Services Public Internet Web Role Load Balancer
  • 41.
    No inbound network connections Can read requests from queue in storage Windows Azure specific CAS policy for managed code Storage Service Public Internet Worker Role
  • 42.
    Public Internet WebRole Storage Service Worker Role Load Balancer
  • 43.
    Public Internet WebRole Storage Service Worker Role Load Balancer
  • 44.
    Public Internet WebRole Storage Service Worker Role Load Balancer
  • 45.
    … Fabric ComputeStorage Application Blobs Queues HTTP Tables
  • 46.
    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
  • 47.
    Table . .. Table Table Entity . . . Entity Entity Property Property Property Name Type Value Storage Accounts
  • 48.
    Access via RESTYou 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
  • 49.
    Massive scalability Byeffectively 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
  • 50.
    What tables don’tdo Not relational No Referential Integrity No Joins Limited Queries No Group by No Aggregations No Transactions What tables can do Cheap Very Scalable Flexible Durable If these are important to you, use:
  • 51.
    Data stored inTables 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
  • 52.
    Queue Web RoleASP.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
  • 53.
    POST 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=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <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> DELETE http://myaccount. queue .core.windows.net/ myqueue /messages/messageid? popreceipt =YzQ4Yzg1MDIGM0MDFiZDAwYzEw Queue Msg 1 Msg 2 Msg 3 Msg 4 Worker Role Worker Role PutMessage Web Role GetMessage (Timeout) RemoveMessage Msg 2 Msg 1 Worker Role Msg 2
  • 54.
    Queues guarantee amessage will be processed at least once Allows recovery in the event of errors Roles normally consist of several tasks Get Message Insert to Table1 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)
  • 55.
    Same tools you’realready 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
  • 56.
  • 57.
  • 58.
    Key developer challengesMany 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
  • 59.
    Key developer challengesWant 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
  • 60.
    The problem: Exposinginternal 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
  • 61.
    Service Bus ServiceBus Registry Endpoints Organization Y Organization X Application Application 2) Discover endpoints 1) Register endpoints 3) Access application
  • 62.
  • 63.
    SQL Services .NETServices Windows Azure Live Services Applications Applications Others Windows Mobile Windows Vista/XP Windows Server SQL Data Services Others (Future)
  • 64.
    SQL Data ServicesData Center Container . . . Container Container HTTP/ SOAP Entity . . . Entity Entity Property Property Property Name Type Value Authorities
  • 65.
    Resources Jinesh Varia’sCloud 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
  • 66.
  • 67.
  • 68.
    SESSION 2 Meshand Live Services
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
    … area set of building blocks for handling user data and application resources which can connect your application to hundreds of millions of users. Storage Search & Geospatial Identity Directory Devices Applications Synchronization Mesh Services User Comms & Presence 1.2B 30B 367M 320M nnPB 460M
  • 75.
  • 76.
    Why Live Services?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 Connect across devices Embed social building blocks Jumpstart traffic
  • 77.
  • 78.
    Eliminated calls tohelp 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
  • 79.
  • 80.
    Quick Walkthrough andDemo (not nearly as impressive as the video)
  • 81.
  • 82.
  • 83.
    External Commentary #1Coolest 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
  • 84.
    “ Eventually, we’llgive 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
  • 85.
    © 2009 Microsoftcorporation. all rights reserved. this presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.