O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Windows Azure Platform

14.302 visualizações

Publicada em

Overview of the Microsoft cloud computing platform, Windows Azure Platform.

Publicada em: Tecnologia, Negócios
  • Entre para ver os comentários

Windows Azure Platform

  1. 1. Windows Azure Platform<br />David Chou<br />david.chou@microsoft.com<br />blogs.msdn.com/dachou<br />
  2. 2. Private<br />(On-Premise)<br />Infrastructure<br />(as a Service)<br />Platform<br />(as a Service)<br />Types of Clouds<br />You manage<br />Applications<br />Applications<br />Applications<br />You manage<br />Runtimes<br />Runtimes<br />Runtimes<br />Security & Integration<br />Security & Integration<br />Security & Integration<br />Managed by vendor<br />Databases<br />Databases<br />Databases<br />You manage<br />Servers<br />Servers<br />Servers<br />Managed by vendor<br />Virtualization<br />Virtualization<br />Virtualization<br />Server HW<br />Server HW<br />Server HW<br />Storage<br />Storage<br />Storage<br />Networking<br />Networking<br />Networking<br />
  3. 3. Private<br />(On-Premise)<br />Types of Clouds<br />Infrastructure<br />(as a Service)<br />Platform<br />(as a Service)<br />
  4. 4. Scalability & Availability<br />Consistency & Control<br />Private Cloud<br />(on-premise)<br />Public Cloud<br />(off-premise)<br />Real-Time Performance<br />Redundancy & Resiliency<br />Global Reach<br />Security & Privacy<br />Customizability<br />Ease of Provisioning<br />Abstract Resources<br />Physical Resources<br />A Hybrid World<br />Homogeneity<br />Heterogeneity<br />
  5. 5. The Microsoft Cloud<br />~100 Globally Distributed Data Centers<br />Quincy, WA<br />Chicago, IL<br />San Antonio, TX<br />Dublin, Ireland<br />Generation 4 DCs<br />
  6. 6. Categories of Services<br />Application Services<br />Software Services<br />Platform Services<br />Infrastructure Services<br />The Microsoft Cloud<br />
  7. 7. Web and Clouds<br />Developer Experience<br />Third party Cloud<br />Web applications<br />Use existing skills and tools.<br />Compute<br />Storage<br />Management<br />Management<br />Relational data<br />Connectivity<br />Access control<br />On-premises<br />Composite applications<br />LOB Applications<br />Windows Azure Platform<br />
  8. 8. Windows Azure Platform<br /><ul><li>Internet-scale, highly available cloud fabric
  9. 9. Globally distributed Microsoft data centers (ISO/IEC 27001:2005 and SAS 70 Type I and Type II certified)
  10. 10. Consumption and usage-based pricing; enterprise-class SLA commitment
  11. 11. Compute– auto-provisioning 64-bit application containers in Windows Server VMs; supports a wide range of application models
  12. 12. Storage– highly available distributed table, blob, queue, & cache storage services
  13. 13. Languages– .NET 3.5 (C#, VB.NET, etc.), IronRuby, IronPython, PHP, Java, native Win32 code
  14. 14. Data – massively scalable & highly consistent distributed relational database; geo-replication and geo-location of data
  15. 15. Processing – relational queries, search, reporting, analytics on structured, semi-structured, and unstructured data
  16. 16. Integration – synchronization and replication with on-premise databases, other data sources
  17. 17. Service Bus – connectivity to on-premises applications; secure, federated fire-wall friendly Web services messaging intermediary; durable & discoverable queues
  18. 18. Access Control – rules-driven federated identity; AD federation; claims-based authorization
  19. 19. Workflows – declarative service orchestrations via REST-based activities</li></li></ul><li>Pricing<br /><ul><li>Compute</li></ul>$0.12 / CPU hour<br /><ul><li>Storage</li></ul>$0.15 / GB / month<br />$0.01 / 10k transactions / month<br /><ul><li>Bandwidth</li></ul>$0.10 in / GB<br />$0.15 out / GB<br /><ul><li>Web Edition (1GB)</li></ul>$9.99 / month<br /><ul><li>Business Edition (10GB)</li></ul>$99.99 / month<br /><ul><li>Bandwidth</li></ul>$0.10 in / GB<br />$0.15 out / GB<br /><ul><li>Service Bus</li></ul>$0.15 / 100k messages<br /><ul><li>Access Control</li></ul>$0.15 / 100k tokens<br /><ul><li>Bandwidth</li></ul>$0.10 in / GB<br />$0.15 out / GB<br />Virtual Machine instances<br />Load balancers, routers, etc.<br />Automated service management <br /><ul><li>Fabric controller operations (deploy/upgrade/delete/scale)
  20. 20. Load balancer programming</li></ul>Blob Storage<br />Table Storage<br />Multiple replicas<br />Ingress/Egress (to/from internet only)<br />
  21. 21. Storage servicewill be available/ reachable (connectivity)<br />Your storage requests willbe processed successfully<br />.NET Service Bus endpoint willhave external connectivity<br />Message operation requests willbe processed successfully<br />Serviceavailability<br />Storage availability<br />Database availability<br />Role instance monitoring and restart<br />Compute connectivity<br />Your service is connected and reachable via web<br />Internet facing roles will have external connectivity<br />Database is connected to the internet gateway <br />Availability monitoring every 5-minute interval<br />All runningroles will be continuously monitored<br />If role is unhealthy, we will detect and initiate corrective state<br />Automated Systems Management<br />&gt;99.9%<br />&gt;99.95%<br />&gt;99.9%<br />&gt;99.9%<br />Service Guarantee<br />
  22. 22. Benefits<br />BUSINESS<br />DEMANDS<br />TECHOLOGYDEMANDS<br />WINDOWS AZURE PLATFORM OFFERS<br /><ul><li>Cost-effective solution to manage IT resources
  23. 23. Less infrastructure to buy/configure and support
  24. 24. Lower TCO
  25. 25. Predictable cost
  26. 26. Focus on delivering compelling software not on managing infrastructure
  27. 27. Monetize new offering quickly without investment in billing and other enablement technologies.</li></ul>  <br /><ul><li>Speed of development
  28. 28. Interoperability
  29. 29. Leverage existing IP
  30. 30. Simplified deployment
  31. 31. Scale up or down as business needs change
  32. 32. Go to market faster
  33. 33. Reliable service
  34. 34. SLAs
  35. 35. Security
  36. 36. Global data centers</li></ul>Lower costs<br />Efficiency<br />Stay Competitive<br />Innovation<br />Generate New Revenue Quickly<br />Agility<br />Reduced<br />Risk<br />Reliability<br />
  37. 37. Platform of Choice<br />
  38. 38. Sign up at the Windows Azure Platform developers’ portal<br />Windows Azure access<br />Developer tools <br />White papers<br />Sample applications<br />Plan pilot applications, proofs of concept, and architectural design sessions with Windows Azure partners<br />http://www.azure.com<br />
  39. 39. Application Architecture<br />
  40. 40. Application Models<br />Web Hosting<br /><ul><li>Massive scale infrastructure
  41. 41. Burst & overflow capacity
  42. 42. Temporary, ad-hoc sites</li></ul>Application Hosting<br /><ul><li>On-premise extensions
  43. 43. Composite applications
  44. 44. Automated agents / jobs</li></ul>Media Hosting & Processing<br /><ul><li>CGI rendering
  45. 45. Content transcoding
  46. 46. Media streaming</li></ul>Distributed Storage<br /><ul><li>External backup and storage</li></ul>High performance computing<br /><ul><li>Parallel & distributed processing
  47. 47. Massive modeling & simulation
  48. 48. Advanced analytics</li></ul>Information Sharing<br /><ul><li>Common data repositories
  49. 49. Reference data
  50. 50. Knowledge discovery & mgmt</li></ul>Collaborative Processes<br /><ul><li>Multi-enterprise integration
  51. 51. B2B& e-commerce
  52. 52. Supply chain management
  53. 53. Health & life sciences
  54. 54. Domain-specific services</li></li></ul><li>Internet-Scale Application Architecture<br />Design<br /><ul><li>Horizontal scaling
  55. 55. Service-oriented composition
  56. 56. Eventual consistency
  57. 57. Fault tolerant (expect failures)</li></ul>Security<br /><ul><li>Claims-based authentication & access control
  58. 58. Federated identity
  59. 59. Data encryption & key mgmt.</li></ul>Management<br /><ul><li>Policy-driven automation
  60. 60. Aware of application lifecycles
  61. 61. Handle dynamic data schema and configuration changes</li></ul>Data & Content<br /><ul><li>De-normalization
  62. 62. Logical partitioning
  63. 63. Distributed in-memory cache
  64. 64. Diverse data storage options (persistent & transient, relational & unstructured, text & binary, read & write, etc.)</li></ul>Processes<br /><ul><li>Loosely coupled components
  65. 65. Parallel & distributed processing
  66. 66. Asynchronous distributed communication
  67. 67. Idempotent (handle duplicity)
  68. 68. Isolation (separation of concerns)</li></li></ul><li>Presentation<br /><ul><li>ASP.NET C#, PHP, Java
  69. 69. Distributed in-memory cache</li></ul>Internet-Scale Application Architecture<br />Services<br /><ul><li>.NET C#, Java, native code
  70. 70. Distributed in-memory cache
  71. 71. Asynchronous processes
  72. 72. Distributed parallel processes
  73. 73. Transient file storage</li></ul>Connectivity<br /><ul><li>Message queues
  74. 74. Service orchestrations
  75. 75. Identity federation
  76. 76. Claims-based access control
  77. 77. External services connectivity</li></ul>SERVICE BUS<br />ACCESS CONTROL<br />WORK<br />FLOWS<br />Storage<br /><ul><li>Relational & transactional data
  78. 78. Federated databases
  79. 79. Unstructured, de-normalized data
  80. 80. Logical partitioning
  81. 81. Persistent file & blob storage
  82. 82. Encrypted storage</li></li></ul><li>Application Patterns<br />Cloud Web Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Cloud Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application<br />Data<br />Reference Data<br />
  83. 83. Application Patterns<br />Composite Services Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  84. 84. Application Patterns<br />Cloud Agent Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  85. 85. Application Patterns<br />B2B Integration Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  86. 86. Application Patterns<br />Grid / Parallel Computing Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  87. 87. Application Patterns<br />Hybrid Enterprise Application<br />User<br />Silverlight<br />Application<br />Web Browser<br />Mobile<br />Browser<br />WPF<br />Application<br />ASP.NET<br />(Web Role)<br />Web Svc<br />(Web Role)<br />Jobs<br />(Worker Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Private Cloud<br />Public Services<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />ASP.NET<br />(Web Role)<br />Enterprise Application<br />Application<br />Service<br />Enterprise Web Svc<br />Data<br />Service<br />Table Storage<br />Service<br />Blob Storage<br />Service<br />Queue<br />Service<br />Enterprise Data<br />Storage<br />Service<br />Identity<br />Service<br />Enterprise Identity<br />Service Bus<br />Access Control Service<br />Workflow<br />Service<br />User<br />Data<br />Application Data<br />Reference Data<br />
  88. 88.
  89. 89. BUSINESSES<br />CONSUMERS<br />INTERNET<br />Windows Azure Architecture<br />
  90. 90. Fabric<br />Fabric controller<br />Compute<br />Storage<br />The Fabric Controller communicates with every server within the Fabric. It manages Windows Azure, monitors every application, decides where new applications should run – optimizing hardware utilization.<br />Windows Azure Architecture<br />
  91. 91. The Fabric Controller automates load balancing and computes resource scaling<br />Security and Control Features include storage encryption, access authentication, and over-the-wire encryption using HTTPS. Industry certification is part of the Windows Azure roadmap.<br />Computation provides application scalability. Developers can build a combination of web and worker roles. Those roles can be replicated as needed to scale the applications and computational processing power.<br />Storage Services allow customers to scale to store large amounts of data – in any format – for any length of time, only paying for what they use or store.<br />Geographically distributed, state-of-the-art data centers host your applications and data, internet-accessible from everywhere you choose to allow.<br />Windows Azure Architecture<br />
  92. 92. Interacts with a “Fabric Agent” on each machine<br />Monitors every VM, application and instance<br />Performs load balancing, check pointing and recovery<br />Windows Azure Architecture<br />Fabric Controller<br />
  93. 93. Compute<br />GOAL:<br />SCALABILITY<br />Two instance types: Web Role & Worker Role<br />Windows Azure applications are built with <br />web role instances, worker role instances, <br />or a combination of both.<br />Scale out by replicating worker instances as needed.<br />Allow applications to scale <br />user and compute processing independently.<br />Each instance runs on its own VM (virtual machine), replicated as needed<br />Windows Azure Architecture<br />
  94. 94. Storage<br />GOAL:<br />SCALABLE, DURABLE STORAGE<br />Tables: simply structured data, accessed using ADO.NET Data Services<br />Queues: serially accessed messages or requests, allowing web-roles and worker-roles to interact<br />Blobs: large, unstructured data (audio, video, etc)<br />Windows Azure storage is an application managed by the Fabric Controller<br />Windows Azure applications can use native storage or SQL Azure<br />Application state is kept in storage services, so worker roles can replicate as needed<br />Windows Azure Architecture<br />
  95. 95. Services Management<br />GOAL:<br />AUTOMATED APPLICATION MANAGEMENT AND CONTROL<br />Fabric<br />The Fabric Controller automates service management<br />Windows Azure Architecture<br />
  96. 96.
  97. 97. SQL Server<br /><ul><li>SQL Server on-premises
  98. 98. Resource governance @ machine
  99. 99. Security @ SQL Server/OS</li></ul>Roll-your-own HA/DR/scale<br />Dedicated<br />Hosted RDBMS<br /><ul><li>Hosted SQL Server
  100. 100. Resource governance @ VM
  101. 101. Security @ SQL Server/OS</li></ul>Roll-your-own HA/DR/scale<br />SQL Azure Database (RDBMS)<br />Resources<br /><ul><li>Virtual DB server
  102. 102. Logical user database (LUDB)
  103. 103. Resource governance @ LUDB
  104. 104. Security @LUDB</li></ul>Shared<br />Low<br />High<br />“Friction”/Control<br />Value Propositions :<br /><ul><li>XSPs, Server Ops
  105. 105. SQL CLR
  106. 106. 100% compatibility</li></ul>Value Propositions:<br /><ul><li>Auto HA, Fault-Tolerance
  107. 107. Friction-free scale
  108. 108. Self-provisioning
  109. 109. High compatibility</li></ul>Value Propositions :<br /><ul><li>Full h/w control – size/scale
  110. 110. 100% compatibility</li></ul>Data Storage Options<br />
  111. 111. SQL Azure Architecture<br />Simple storage and hosted RDBMS<br />Flexible access to data in the cloud<br /><ul><li>Create client applications that access data in the cloud via TDS – just like on-premise SQL Server
  112. 112. Create cloud-based Web applications in Azure that use standard SQLClient libraries with ADO.NET
  113. 113. Create cloud-based REST data interfaces in Azure with ADO.NET Data Services and the Entity Framework</li></ul>Low friction data storage provisioning<br /><ul><li>Web interface for simple, database provisioning
  114. 114. Scale seamlessly as needed </li></ul>Self-managing data center<br /><ul><li>Automated maintenance
  115. 115. Built in high-availability and data recoverability</li></ul>ODBC, OLEDB, ADO.Net PHP, Ruby, …<br />BrowserApplication<br />Application<br />Application<br />REST Client<br />SQL Client*<br />Cloud<br />REST(Astoria)<br />ADO.Net +EF<br />HTTP+REST<br />HTTP<br />TDS<br />Windows Azure<br />Web App<br />SQL Client*<br />Data Center<br />TDS + TSQL Model<br />SQL Azure<br />* Client access enabled using TDS for ODBC, ADO.Net, OLEDB, PHP-SQL, Ruby, …<br />
  116. 116. Goal: A storage platform built for extreme scale and low cost<br />Architecture:<br />An Azure account provides access to SQL Azure<br />Each account can have one or more logical server<br />Implemented as multiple physical servers within a given geo-location<br />Each logical server can contain one or more logical database<br />Implemented as replicated partitioned data across multiple physical databases<br />Account<br />Azure wide<br />Billing instrument<br />Has one or more<br />Server<br />Database metadata<br />Unit of authorization<br />Unit of geo-location<br />Has one or more<br />Database<br />Unit of consistency<br />Contains Users, Tables, Views, etc…<br />Data Platform Design<br />
  117. 117. Uses shared infrastructure at SQL database and below<br />Each user database is replicated to one or more servers (configurable based on SLA)<br />Client requests are routed to current “primary server” for read and write operations (based on SQL session)<br />Security, lockdown and isolation enforced in SQL tier<br />Highly scalable and state-of-the-art HA technology<br />Automatic failure detection; client request re-routed to new primary on failure <br />High SLA guarantee using logical replication (hot standby replicas)<br />Automatic management, self-healing and load balancing across shared resource pool<br />SQL Azure Database provides provisioning, metering and billing infrastructure<br />Machine 5<br />Machine 6<br />Machine 4<br />SQL Instance<br />SQL Instance<br />SQL Instance<br />SQL DB<br />SQL DB<br />SQL DB<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />Scalability and Availability: Fabric, Failover, Replication, and Load balancing<br />SQL Azure Database Provisioning (databases, accounts, roles, …, Metering, and Billing<br />DBA role will change to focus on policy/logical management<br />Logical User Databases<br />
  118. 118. Security<br />Uses regular SQL security model<br />Authenticate logins, map to users and roles<br />Authorize users and roles to SQL objects<br />Supports standard SQL logins<br />Logins are username + password strings<br />Service enforces use of SSL to secure credentials<br />Future support for AD Federation, WLID, etc as alternate authentication protocols<br />Connections<br />Connect using common client libraries<br />ADO.NET, OLE DB, ODBC, etc.<br />Clients connect to a database directly<br />Cannot hop across DBs<br />Large surface of SQL supported within the database boundary<br />Future work will relax many of these constraints<br />Security and Connection Models<br />
  119. 119. Account and server provisioning<br />Portal and API based access<br />Ex: enumerate my servers, show server usage metrics, etc<br />Each account has one or more servers<br />Ex: srv123.data.database.windows.net<br />Each server has a virtual master database<br />Has subset of SQL Server master DB interface<br />Each server has one or more SQL logins<br />System creates sysadmin login on “server creation”<br />Databases created using “CREATE DATABASE”<br />Can be called by sysadmin or anyone with create DB permission<br />*<br />*<br />Provisioning Model<br />
  120. 120. SQL Server has many patterns for accomplishing tasks<br />SQL Azure Database supports a subset of full SQL Server patterns<br />Focus on logical and policy based administration<br />Patterns work in both SQL Azure Database and SQL Server<br />Enables migration of on-premise application to/from SQL Azure<br />SQL Azure Database is a multi-tenant service<br />Throttling and load balancing policies<br />Examples: limit on DB size, duration of transaction, …<br />In Scope for v1<br />Out of Scope for v1<br /><ul><li>CLR
  121. 121. Service Broker
  122. 122. Distributed Transactions
  123. 123. Distributed Query
  124. 124. Spatial
  125. 125. All server level DDL
  126. 126. All physical DDL and physical catalog views
  127. 127. Create/Alter/Drop on Database/Index/View
  128. 128. Stored Procedures (Transact-SQL)
  129. 129. Triggers
  130. 130. Constraints
  131. 131. Table variables, session temp tables (#t)
  132. 132. + lots of others</li></ul>SQL Server Compatibility<br />
  133. 133. Departmental Applications<br />Web Applications<br />Departmental workgroup applications with low concurrency and cyclical usage patterns<br />Small customers or start ups with Web applications of all scale that have simple RDBMS needs<br />Data Hubs<br />ISV/SaaS Offerings<br />Secure data hubs that consolidate multiple data sources and enable access from multiple locations and devices<br />Traditional ISVs extending offering or selling software hosted in the cloud (including SaaS ISVs)<br />Application Scenarios<br />
  134. 134.
  135. 135. Common patterns and problems<br />Service Bus<br />Access Control<br />How can you use cloud services to connect apps and services across deployment locations?<br />Bridge cloud, on-premises, and hosted assets<br />Navigate network and security boundaries, securely and simply<br />Handle identity and access across organizations and ID providers<br />Interoperate across languages, platforms, standards<br />Perform protocol mediation and schema mapping<br />Customers need a way to:<br />
  136. 136. .NET Services provides solutionsfor developers facing those problems<br />Service Bus<br />Connect Endpoints<br />firewall<br />firewall<br />NAT<br />0101 0111 0011 0111<br />0101 0111 0011 0111<br />0101 0111 0011 0111<br />0101 0111 0011 0111<br />Your app<br />Customer/partner app<br />
  137. 137. .NET Services provides solutionsfor developers facing those problems<br />Control Access<br />Access Control Service<br />3. Map input claims<br />to output claims<br />1. Define access control rules for a customer<br />4. Token<br />0. periodic cert exchange<br />2. Claims<br />6. Check claims<br />5. Msg w/token<br />Your app<br />Customer/partner users & apps<br />
  138. 138. Private Network Space<br />Service Bus: Core Capabilities<br />Internet-scoped overlay-network bridging across IP NATs and Firewalls with federated access control <br />Network Listen/Send from any Internet-Connected Device<br />Internet-scoped, per-endpoint Naming and Discovery<br />NAT/FW Traversal via TCP, TCP/Direct, and HTTP Web Streams<br />Internet Space<br />B<br />C<br />D<br />A<br />ACS<br />ACS<br />ACS<br />ACS<br />ACS<br />
  139. 139. Service Bus: Core Capabilities<br />Transfer raw and structured data allowing for any common shape of communication<br />Raw Data, Text, XML, JSON, …<br />Datagrams, Sessions, Correlated Messages<br />Unicast, Multicast<br />A<br />B<br />Octet-Streams<br />Text<br />…<br />JSON<br />XML<br />…<br />A<br />B<br />SOAP<br />XML-RPC<br />…<br />A<br />B<br />
  140. 140. Service Bus: Core Capabilities<br />Built-In messaging primitives for temporally decoupled communication, routing, and message processing<br />Push/Pull translation for occasionally connected receivers<br />Publish/subscribe and message processing (after V1)<br />Push<br />Pull<br />B<br />A<br />B<br />A<br />C<br />D<br />E<br />Push<br />Push<br />
  141. 141. Pattern: Notification Fan-Out(Sessionless Unicast or Multicast Datagrams)<br />Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine<br />“Worker Role” App Instance<br />AppInstance<br />ACS<br />ACS<br />ACS<br />ACS<br />unicast<br />ACS<br />ACS<br />ACS<br />unicast<br />multicast<br />Client<br />Client<br />Client<br />Client<br />Client<br />Client<br />NATs<br />ACS<br />ACS<br />
  142. 142. Pattern: REST Resource Management(Request/Response HTTP/HTTPS w/ arbitrary payloads)<br />Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine<br />Storage<br />Storage<br />Storage<br />AppInstance<br />AppInstance<br />AppInstance<br />ACS<br />ACS<br />POST, PUT, DELETE<br />POST, PUT, DELETE<br />POSTPUTDELETE<br />ACS<br />POST, PUT, DELETE<br />ACS<br />ACS<br />GET<br />On-Premise App(s)<br />On-Demand ‘Pull’ Sync<br />Cache<br />Continuous ‘Push’ Sync<br />
  143. 143. In-House<br />Outsourced<br />Pattern: Document Exchange(session-bound, app-level ack’d document transfers + notifications)<br />Hosted<br />ACS<br />Storage<br />Storage<br />Storage<br />E-CommerceFront<br />Inventory / ShippingSystem<br />OrderingSystem<br />Ready<br />PO<br />SO<br />Shipped<br />ACS<br />ACS<br />Delivered<br />ACS<br />ACK<br />ACK<br />Hi-Fi Client Experience<br />Web Client Experience<br />ACS<br />Order AcceptedOrder Processed<br />
  144. 144. Pattern: External DMZ(any communication style, secure NAT traversal for TCP & HTTP/S)<br />Home<br />Internal Datacenter<br />Storage<br />Storage<br />Storage<br />Devices<br />Enterprise App Instance<br />Enterprise App Instance<br />Enterprise App Instance<br />Home Automation or Home Media Server<br />Balance / Filter Reverse Proxy<br />ACS<br />ACS<br />ACS<br />net.tcp/direct<br />http(s) / net.tcp<br />Web or Hi-Fi Client Experience<br />Web or Hi-Fi Client Experience<br />
  145. 145. Pattern: Integrate “Anything”(session-bound, raw-binary transport tunneling)<br />Windows Azure, Datacenter, Hosting, Amazon EC2 (Windows)<br />NP Agent<br />Socket Agent<br />AppInstance<br />ASP.NETADO.NET<br />J2EE, JDBC, JMS<br />TDSPassthrough<br />SocketPassthrough<br />HTTP/HTTPSPassthrough<br />w/ URI Rewriting<br />ACS<br />ACS<br />On-Premise Data<br />On-Premise Infra<br />Apps & Services<br />NP Bridge<br />Socket Bridge<br />HTTP Bridge<br />Exchange/Mail (SMTP/IMAP)Active Directory (LDAP)System Center (SNMP)…<br />SQL Server<br />ERP, CRM, Custom Apps.NET, J2EE, ROR, PHP…<br />
  146. 146. Thank you<br />david.chou@microsoft.com<br />blogs.msdn.com/dachou<br />© 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.<br />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.<br />