Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ArcReady - Architecting For The Cloud


Published on

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.

Published in: Technology, Business
  • Be the first to comment

ArcReady - Architecting For The Cloud

  1. 1. ArcReady: Architecting for the cloud
  2. 2. About ArcReady… <ul><li>A forum for aspiring and practicing architects to discuss industry trends </li></ul><ul><li>An overview of Microsoft’s roadmap as it relates to software architecture </li></ul><ul><li>A mechanism to solicit your feedback </li></ul><ul><li>An opportunity to showcase the work you do! </li></ul>
  3. 3. Discussion Encouraged
  4. 5. SESSION 1 Architecting for the cloud
  5. 7. Flashback to previous ArcReady
  6. 8. Timesharing
  7. 9. Client-Server
  8. 11. Application Service Providers (ASP)
  9. 12. Software as a Service
  10. 13. Software + Services
  11. 14. “ 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
  12. 17. Platform as a service
  13. 18. We’re building for Scale <ul><li>Running scalable services now </li></ul><ul><li>30B Live ID authentications/month </li></ul><ul><li>2B Live Search queries/month </li></ul><ul><li>10B MSN page views/month </li></ul><ul><li>240B Messenger messages/month </li></ul><ul><li>Building to run your services </li></ul><ul><li>Quincy, WA : Complete, approx 500K sq ft </li></ul><ul><li>San Antonio, TX : Opening Fall 08, approx 475K sq ft </li></ul><ul><li>Chicago, IL : Opening Spring/Summer 09, approx 550K sq ft </li></ul><ul><li>Dublin, Ireland : Opening Summer 09, approx 570K sq ft </li></ul><ul><li>Des Moines, Iowa : Recently announced land purchase </li></ul>
  14. 19. Use Case – Erratic Traffic is not affiliated with Windows Azure – example only
  15. 20. Use Case – Erratic Traffic is not affiliated with Windows Azure – example only
  16. 21. Use Case – New Site Launch
  17. 22. Why leverage the cloud?
  18. 23. Almost zero upfront infrastructure cost
  19. 24. Just in time Infrastructure
  20. 25. More efficient resource utilization
  21. 26. Usage Based Computing
  22. 27. Potential to shrink processing time
  23. 28. Concerns with Cloud Computing
  24. 29. Security
  25. 30. Scalability
  26. 31. Recovery and reliability
  27. 32. Regulations and other legal issues HIPAA GLB SOX PCI …
  28. 33. Pricing
  29. 34. Break
  30. 35. SESSION 2 The Azure Platform
  31. 36. <ul><li>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. </li></ul><ul><li>Azure is a near synonym for the color blue. </li></ul>Commonly it refers to a bright blue, resembling the sky on a bright, clear day.
  32. 38. Your Applications
  33. 39. Your Applications
  34. 40. <ul><li>Web farm that handles request from the internet </li></ul><ul><li>IIS7 hosted web core </li></ul><ul><ul><li>Hosts ASP.NET </li></ul></ul><ul><ul><li>XML based configuration of IIS7 </li></ul></ul><ul><ul><li>Integrated managed pipeline </li></ul></ul><ul><ul><li>Supports SSL </li></ul></ul><ul><ul><li>Windows Azure code access security policy (CAS) for managed code </li></ul></ul>Storage Services Public Internet Web Role Load Balancer
  35. 41. <ul><li>No inbound network connections </li></ul><ul><li>Can read requests from queue in storage </li></ul><ul><ul><li>Windows Azure specific CAS policy for managed code </li></ul></ul>Storage Service Public Internet Worker Role
  36. 42. Public Internet Web Role Storage Service Worker Role Load Balancer
  37. 43. Public Internet Web Role Storage Service Worker Role Load Balancer
  38. 44. Public Internet Web Role Storage Service Worker Role Load Balancer
  39. 45. … Fabric Compute Storage Application Blobs Queues HTTP Tables
  40. 46. <ul><li>Storage types: </li></ul><ul><ul><li>Blobs: a simple hierarchy of binary data </li></ul></ul><ul><ul><li>Tables: hierarchical storage (not relational tables) </li></ul></ul><ul><ul><li>Queues: allow message-based communication </li></ul></ul><ul><li>Access: </li></ul><ul><ul><li>Data is exposed via a RESTful interface </li></ul></ul><ul><ul><li>Data can be accessed by: </li></ul></ul><ul><ul><ul><li>Windows Azure apps </li></ul></ul></ul><ul><ul><ul><li>Other on-premises or cloud apps </li></ul></ul></ul>
  41. 47. Table . . . Table Table Entity . . . Entity Entity Property Property Property Name Type Value Storage Accounts
  42. 48. <ul><li>Access via REST </li></ul><ul><ul><li>You can’t use ordinary ADO.NET </li></ul></ul><ul><li>No SQL </li></ul><ul><ul><li>Query language based on the LINQ C# syntax </li></ul></ul><ul><ul><li>No real joins, aggregates, etc. </li></ul></ul><ul><li>An unfamiliar hierarchical structure </li></ul><ul><ul><li>You can’t easily move relational data to it </li></ul></ul><ul><ul><li>Supporting services are scarce, e.g., reporting </li></ul></ul><ul><ul><li>There’s significant platform lock-in </li></ul></ul><ul><li>No schema </li></ul><ul><ul><li>And no views </li></ul></ul>
  43. 49. <ul><li>Massive scalability </li></ul><ul><ul><li>By effectively allowing scale-out data </li></ul></ul><ul><li>Highly durable </li></ul><ul><li>Perspective: </li></ul><ul><ul><li>Applied to the right problem, Windows Azure Tables are a beautiful thing </li></ul></ul><ul><ul><ul><li>But they’re not the optimal solution for a majority of data storage scenarios </li></ul></ul></ul><ul><ul><li>Amazon, Google, and others do quite similar things </li></ul></ul><ul><ul><ul><li>It appears to be the state of the art for scale-out data </li></ul></ul></ul>
  44. 50. 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:
  45. 51. <ul><li>Data stored in Tables </li></ul><ul><ul><li>A Table is a set of Entities (rows) </li></ul></ul><ul><ul><li>An Entity is a set of Properties (columns) </li></ul></ul><ul><li>Entity has: </li></ul><ul><ul><li>PartitionKey – enables scalability </li></ul></ul><ul><ul><li>RowKey – unique id within the partition (the only indexed property) </li></ul></ul><ul><ul><li>Timestamp – for optimistic concurrency </li></ul></ul><ul><ul><li>255 properties for your data </li></ul></ul><ul><ul><li>Max size of 1MB </li></ul></ul>
  46. 52. 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
  47. 53. POST http://myaccount. queue 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 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
  48. 54. <ul><li>Queues guarantee a message will be processed at least once </li></ul><ul><li>Allows recovery in the event of errors </li></ul><ul><li>Roles normally consist of several tasks </li></ul><ul><ul><ul><li>Get Message </li></ul></ul></ul><ul><ul><ul><li>Insert to Table1 </li></ul></ul></ul><ul><ul><ul><li>Insert to Table2 </li></ul></ul></ul><ul><li>Could fail at any point </li></ul><ul><li>Write your code to expect failures </li></ul><ul><ul><li>Inserts/Deletes might fail as already performed </li></ul></ul><ul><ul><li>Data in inconsistent state (part processed) </li></ul></ul>
  49. 55. <ul><li>Same tools you’re already used to using, namely Visual Studio </li></ul><ul><li>Real Storage & Dev Store have differences </li></ul><ul><ul><li>Fixed schema </li></ul></ul><ul><ul><li>No dynamic table creating </li></ul></ul><ul><li>String length nvarchar[1000] – String[64000] </li></ul><ul><li>Dev Storage forces you to use certain patterns </li></ul><ul><li>Can be difficult to debug issues in data store: </li></ul><ul><ul><li>Use logging and tracing </li></ul></ul><ul><ul><li>Use Fiddler, SQL profiler and SDK docs </li></ul></ul>
  50. 57. Your Applications
  51. 58. <ul><li>Key developer challenges </li></ul><ul><ul><li>Many identity providers, many vendors, many protocols, complex semantics – tricky to get right </li></ul></ul><ul><ul><li>Application strewn with one-off access logic </li></ul></ul><ul><ul><li>Hard to get right, not agile, not compliant, many dead ends </li></ul></ul><ul><li>Approach </li></ul><ul><ul><li>Automate federation for a wide-range of identity providers and technologies </li></ul></ul><ul><ul><li>Factor the access control logic from the application into manageable collection of rules </li></ul></ul><ul><ul><li>Easy-to-use framework that ensures correct token processing </li></ul></ul>
  52. 59. <ul><li>Key developer challenges </li></ul><ul><ul><li>Want to easily describe long-running processes </li></ul></ul><ul><ul><li>Want modularity and nesting </li></ul></ul><ul><ul><li>Easy to describe but in practice harder to run </li></ul></ul><ul><ul><ul><li>Hosting and scaling can be challenging </li></ul></ul></ul><ul><ul><ul><li>Setup and installing, define scale-out approach, ensure long-running availability, manage upgrades, … </li></ul></ul></ul><ul><li>Approach </li></ul><ul><ul><li>. NET 3.0/3.5/4.0 addresses key developer requests </li></ul></ul><ul><ul><li>.NET Services makes it easy to deploy, manage and run Workflows </li></ul></ul>
  53. 60. <ul><li>The problem: Exposing internal applications on the Internet isn’t easy </li></ul><ul><ul><li>Network address translation (NAT) and firewalls get in the way </li></ul></ul><ul><li>The solution: </li></ul><ul><ul><li>Service Bus provides a cloud-based intermediary between clients and internal applications </li></ul></ul><ul><ul><li>It also provides a service registry that clients can use to find the services they need </li></ul></ul>
  54. 61. Service Bus Service Bus Registry Endpoints Organization Y Organization X Application Application 2) Discover endpoints 1) Register endpoints 3) Access application
  55. 62. Your Applications
  56. 63. SQL Services .NET Services Windows Azure Live Services Applications Applications Others Windows Mobile Windows Vista/XP Windows Server SQL Data Services Others (Future)
  57. 64. SQL Data Services Data Center Container . . . Container Container HTTP/ SOAP Entity . . . Entity Entity Property Property Property Name Type Value Authorities
  58. 65. Resources <ul><li>Jinesh Varia’s Cloud Computing Whitepaper – </li></ul><ul><li>Azure Landing Site – </li></ul><ul><li>Steve Marx - </li></ul><ul><li>Azure Team - </li></ul>
  59. 66. Your Applications
  60. 67. Your Applications
  61. 68. Windows Live
  62. 69. Finished Services
  63. 70. Software Applications
  64. 71. <ul><li>… are a set of building blocks for handling user data and application resources which can connect your application to hundreds of millions of users. </li></ul>Storage Search & Geospatial Identity Directory Devices Applications Synchronization Mesh Services User Comms & Presence 1.2B 30B 367M 320M nnPB 460M
  65. 73. 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
  66. 74. Virtual Earth
  67. 75. <ul><li>Eliminated calls to help center about locations </li></ul><ul><li>Proof of concept in three weeks </li></ul><ul><li>24/7 technical support, easy development with online software development kit </li></ul><ul><li>Chose Microsoft ® Virtual Earth ™ with the Microsoft MapPoint ® Web service </li></ul><ul><li>Integrated location information to provide location hours and services </li></ul><ul><li>Added 3-D maps and integrated driving directions </li></ul><ul><li>FedEx wanted to increase its visibility and improve customer experience </li></ul><ul><li>Wanted to add location information and rich features to its online store locater </li></ul><ul><li>Stable, well-supported solution platform was a must </li></ul>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
  68. 76. Live Mesh
  69. 77. Quick Walkthrough and Demo (not nearly as impressive as the video)
  70. 80. 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
  71. 81. “ 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
  72. 82. © 2009 Microsoft corporation. all rights reserved. this presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.