Your SlideShare is downloading. ×
Windows Azure Platform
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Windows Azure Platform

10,439
views

Published on

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

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

Published in: Technology, Business

2 Comments
24 Likes
Statistics
Notes
  • Fantastic deck !
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Loving your deck David! You did an awesome job describing Azure and Platform as a Service (PaaS)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
10,439
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1,065
Comments
2
Likes
24
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Whether an application runs in the cloud, uses services provided by the cloud, or both, some kind of application platform is required. Viewed broadly, an application platform can be thought of as anything that provides developer-accessible services for creating applications. In the local, on-premises Windows world, for example, this includes technologies such as the .NET Framework, SQL Server, and more. To let applications exploit the cloud, cloud application platforms must also exist. And because there are a variety of ways for applications to use cloud services, different kinds of cloud platforms are useful in different situations. Microsoft’s Windows Azure platform is a group of cloud technologies, each providing a specific set of services to application developers. The Windows Azure platform can be used both by applications running in the cloud and by applications running on local systems. The components of the Windows Azure platform can be used by local applications running on a variety of systems, including various flavors of Windows, mobile devices, and others. Those components include:  Windows Azure: Provides a Windows-based environment for running applications and storing data on servers in Microsoft data centers.  Microsoft .NET Services: Offers distributed infrastructure services to cloud-based and local applications.  Microsoft SQL Azure: Provides data services in the cloud based on SQL Server. Each component of the Windows Azure platform has its own role to play. This overview describes all four, first at a high level, then in a bit more detail. While none of them are yet final—details and more might change before their initial release—it’s not too early to start understanding this new set of platform technologies.
  • Read the slide
  • Build and deploy software quickly and easily by capitalizing on the same personnel, development tools investments, and knowledge that already power your IT organization. Use the services platform’s infrastructure to power prototyping environments for experimentation, and then launch to full-scale production as soon as your business needs it. Imagine connecting existing applications with an online database that can be shared with partners, or a service bus that enables secure B2B connectivity across firewalls.Pay as you grow and reduce costs. Pay for the services you use and reduce the capital costs associated with purchasing hardware and infrastructure. Reduce operational costs by running applications on the services platform and decrease the need for maintaining on-premises infrastructure. Increase business efficiency and agility by dynamically adding and subtracting capacity in real time. Envision building an e-commerce Web site that you can scale at the click of a mouse to meet seasonal demands or spikes in traffic based on sales and promotions. Develop a new portfolio of expertise. In these early stages of software development for the cloud, businesses will be seeking the best advice on what this means for their current and future technology investments. Stay ahead of the curve and help your customers understand what cloud computing and development means to their business today and how they can pivot and extend their investments to maximize its value tomorrow. Don’t slow down. Start projects without the hurdles of lengthy training or waiting for new infrastructure to be delivered and installed. With a broad set of services already running on Microsoft global data centers, the services platform is ready to start prototyping and testing solutions.
  • As the figure shows, Windows Azure runs on machines in Microsoft data centers. Rather than providing software that Microsoft customers can install and run themselves on their own computers, Windows Azure is a service: Customers use it to run applications and store data on Internet-accessible machines owned by Microsoft. Those applications might provide services to businesses, to consumers, or both.
  • Read the slide headlines, answer questions
  • All Windows Azure applications and all of the data in Windows Azure Storage live in some Microsoft data center. Within that data center, the set of machines dedicated to Windows Azure is organized into a fabric. As the figure shows, the Windows Azure Fabric consists of a (large) group of machines, all of which are managed by software called the fabric controller. The fabric controller is replicated across a group of five to seven machines, and it owns all of the resources in the fabric: computers, switches, load balancers, and more. Because it can communicate with a fabric agent on every computer, it’s also aware of every Windows Azure application in this fabric. (Interestingly, the fabric controller sees Windows Azure Storage as just another application, and so the details of data management and replication aren’t visible to the controller.) 8 This broad knowledge lets the fabric controller do many useful things. It monitors all running applications, for example, giving it an up-to-the-minute picture of what’s happening in the fabric. It manages operating systems, taking care of things like patching the version of Windows Server 2008 that runs in Windows Azure VMs. It also decides where new applications should run, choosing physical servers to optimize hardware utilization. To do this, the fabric controller depends on a configuration file that is uploaded with each Windows Azure application. This file provides an XML-based description of what the application needs: how many Web role instances, how many Worker role instances, and more. When the fabric controller receives this new application, it uses
  • The Windows Azure Compute service can run many different kinds of applications. A primary goal of this platform, however, is to support applications that have a very large number of simultaneous users. (In fact, Microsoft has said that it will build its own SaaS applications on Windows Azure, which sets the bar high.) Reaching this goal by scaling up—running on bigger and bigger machines—isn’t possible. Instead, Windows Azure is designed to support applications that scale out, running multiple copies of the same code across many commodity servers. To allow this, a Windows Azure application can have multiple instances, each executing in its own virtual machine (VM). These VMs run 64-bit Windows Server 2008, and they’re provided by a hypervisor (based on Hyper-V) that’s been modified for use in Microsoft’s cloud. To run an application, a developer accesses the Windows Azure portal through her Web browser, signing in with a Windows Live ID. She then chooses whether to create a hosting account for running applications, a storage account for storing data, or both. Once the developer has a hosting account, she can upload her application, specifying how many instances the application needs. Windows Azure then creates the necessary VMs and runs the application. It’s important to note that a developer can’t supply her own VM image for Windows Azure to run. Instead, the platform itself provides and maintains its own copy of Windows. Developers focus solely on creating applications that run on Windows Azure. 4 In the initial incarnation of Windows Azure, known as the Community Technology Preview (CTP), two different instance types are available for developers to use: Web role instances and Worker role instances.
  • Regardless of how it’s stored—in blobs, tables, or queues—all data held in Windows Azure storage is replicated three times. This replication allows fault tolerance, so losing a copy isn’t fatal. The system guarantees consistency, however, so an application that reads data it has just written will get what it expects. Windows Azure storage can be accessed either by a Windows Azure application or by an application running someplace else. In both cases, all three Windows Azure storage styles use the conventions of REST to identify and expose data. Everything is named using URIs and accessed with standard HTTP operations. A .NET client can also use ADO.NET Data Services and LINQ, but access to Windows Azure storage from, say, a Java application can just use standard REST.
  • SQL Azure Database provides the best aspects of simple, cloud-based storage and a hosted RDBMS.Developers have the flexibility of being able to choose the data access model that best fits the application requirements. They can use the same tools and libraries as with on-premise client applications to build client applications or Web applications hosted in Windows Azure that access data through familiar data access APIs. Alternatively, they can use ADO.NET Data Services and the Entity Framework to expose a REST-based interface that enables rich Internet applications to access data in the cloud.Whichever data access model is used, SQL Azure Database significantly reduces the effort and cost associated with provisioning data storage for an application. You can just use the Web-based interface to create a new database, and then start building your application. As your scalability requirements increase, SQL Azure can grow with you to meet your specific needs.By using SQL Azure Database, you eliminate the need to manage your own data center servers. Maintenance is automated, reducing your administrative overhead.BackgroundThe initial release of SQL Azure was announced at the PDC in 2008. It consisted of a cloud-based data store that provided an HTTP/REST and SOAP based data access interface and a data object model based on authorities, containers, and entities. While this release provided a great way for developers to build rich applications that access data in the cloud, it lacked some of the key capabilities of a traditional, on-premise SQL Server-based database solution.The REST-based interface and ACE data model has been replaced with a TDS interface and a relational, Transact-SQL-based programming model– just like an on-premise SQL Server instance. This means that developers can create client applications for SQL Azure that use the same data access libraries as traditional, on-premise SQL Server solutions. For scenarios where a REST-based interface is desired, developers can use ADO.NET Services (formerly known as Astoria) and the ADO.NET Entity Framework in the Windows Azure platform to expose SQL Azure through a REST-based data access interface.
  • The SQL Azure storage platform was designed for extreme scale and low cost. To achieve this, it uses a partitioned data architecture where data is physically distributed across multiple servers in order to provide the high scalability and query performance associated with a federated database solution. The partitions are replicated to provide redundancy and failover capabilities. All partitioning, failover, and load-balancing is automatic.Rather than take a “single image” approach in which each customer gets a dedicated database server, customer data is physically spread across multiple servers in order to maximize scalability and read/write performance for common data access patterns. Workflow is used to achieve transactional consistency across partitions.The end result of this architecture is a highly scalable data platform that requires little to no administrative effort on the part of the customer to provision or manage. Operations and maintenance are automated, with built-in intelligence to detect failures and trigger automatic failover.Goal: A storage platform built for extreme scale and low costCommodity hardware to lower CapExLights out operations and self healing to lower OpExOptimize I/O throughput for specific app patternsOptimized for a handful of hardware SKU’s for datacenter operationsAchieved by:Partitioning dataApps are partition aware to exploit data parallelism for HA, scaling and throughputPartitions are replicated to achieve reliabilitySystem is self healing - automatically partitions data, fails over, load-balances, and scales-upTrade off single system image for scale at very low cost and high throughput“Fan out” operations for large scale cross partition query workloadsDistributed transactions enabled through workflowSpecific IO optimizations to reduce random writes and readsOptimized code paths for high throughputEasy to deploy and manageNo DBA required to manage clusterUse automated provisioning, deployment / rollback and monitoringUse distributed fabric for reliable failure detection, primary election, failover and load balancingFramework for deploying and running scheduled and one off tasks
  • From the customer’s perspective, SQL Azure provides logical databases for application data storage. In reality, each customer’s data is actually stored in multiple SQL Server databases, which are distributed across multiple physical servers. Many customers may share the same physical database, but the data is presented to the customer through a logical database that abstracts the physical storage architecture and uses automatic load balancing and connection routing to access the distributed data. Security and isolation is managed automatically.The key impact of this model for the customer is a move from managing physical servers to focus on logical management of data storage through policies.
  • In terms of security, SQL Azure uses the same authentication and authorization model as SQL Server. Logins are created at the Server instance level, and mapped to user accounts and roles at the database level. Access to objects and data in the database is based on permissions granted or denied to database-level user accounts.One key difference from SQL Server is that SQL Azure Db supports only SQL Server authentication – integrated Windows authentication is not supported. Authentication is achieved through a username and password transmitted over a secure, encrypted connection. Future released of SQL Azure may support additional authentication models.When a client opens a connection to SQL Azure, the connection context is set to a specific database. If no database is specified in the connection information, the database context is the Master database. Once a connection is established, the client application cannot change the database context by using the USE Transact-SQL keyword or a fully-qualified database name.
  • Provisioning is handled by a utility service that is exposed through a Web-based portal and an API. The utility service can be used to enumerate the servers associated with a customer account, show server usage statistics, and other common administrative tasks. You can also use the utility service to manage logins and create new databases with the CREATE DATABASE Transact-SQL command.
  • What is the difference between SQL Azure and SQL Server?How do we think about compatibility on/off premises – as necessary to provide a broad platform for customersKey Differences – v1 TimeframeSQL Azure v1 will cover a vast majority of the “feature/function” surface area SQL Server (RDBMS). Exceptions:SQL CLRServer-scoped catalogue (shared environment)Few T-SQL constructs not appropriate in a shared environment (global temp tables, DTC)Longer term, will extend other parts of the data platform to cloudSQL BI platformDWCore RDBMS functionality with necessary restrictions due to:SecurityResource GovernanceDatabase independence
  • This slide describes four common customer scenarios that AQL Azure supportsDepartmental workgroup applicationsBuilt with SQL Express or AccessSmall in size, 5 GB or lessLess than 10,000 rowsSmall number of concurrent users (tens)Owned by a department, not central IT.Often grows out an excel spreadsheet or Access databaseTypically one of the following types:Tracking app (purchase orders changes)Simple reporting app (CSS tool for tracking issues)Commonly pulls reference data from other systems.Simple security needs (a set of people all get read access, with a small number of people with Admin access)Do not have a dedicated DBA (usually managed by a department level IT helper or a technically savvy IW)Developer often a technically savvy IW. Especially for the Access apps.Web applicationsTypically built by a small development team with no little or administrative capabilitiesNeed to start small, but then be able to scale-up quickly and easily as required.Secure data hubs enable you to consolidate existing data store investments and access them through a single cloud-based hub. The security features provided by the SQL Azure Database platform ensure movement of, and access to your data is secure at all times. This enables you to develop or modify applications to provide geo-dispersed data access and enables the complete mobility of your workforce. You can be certain that if your employees have access to the internet they have access to their data!ISVs and SaaS ProvidersGrowing trend towards cloud-based LOB application offerings.Need global reach and scalability with the ability to quickly provision multiple tenants and manage billing
  • Transcript

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

      JSON
      XML

      A
      B
      SOAP
      XML-RPC

      A
      B
    • 140. Service Bus: Core Capabilities
      Built-In messaging primitives for temporally decoupled communication, routing, and message processing
      Push/Pull translation for occasionally connected receivers
      Publish/subscribe and message processing (after V1)
      Push
      Pull
      B
      A
      B
      A
      C
      D
      E
      Push
      Push
    • 141. Pattern: Notification Fan-Out(Sessionless Unicast or Multicast Datagrams)
      Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine
      “Worker Role” App Instance
      AppInstance
      ACS
      ACS
      ACS
      ACS
      unicast
      ACS
      ACS
      ACS
      unicast
      multicast
      Client
      Client
      Client
      Client
      Client
      Client
      NATs
      ACS
      ACS
    • 142. Pattern: REST Resource Management(Request/Response HTTP/HTTPS w/ arbitrary payloads)
      Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine
      Storage
      Storage
      Storage
      AppInstance
      AppInstance
      AppInstance
      ACS
      ACS
      POST, PUT, DELETE
      POST, PUT, DELETE
      POSTPUTDELETE
      ACS
      POST, PUT, DELETE
      ACS
      ACS
      GET
      On-Premise App(s)
      On-Demand ‘Pull’ Sync
      Cache
      Continuous ‘Push’ Sync
    • 143. In-House
      Outsourced
      Pattern: Document Exchange(session-bound, app-level ack’d document transfers + notifications)
      Hosted
      ACS
      Storage
      Storage
      Storage
      E-CommerceFront
      Inventory / ShippingSystem
      OrderingSystem
      Ready
      PO
      SO
      Shipped
      ACS
      ACS
      Delivered
      ACS
      ACK
      ACK
      Hi-Fi Client Experience
      Web Client Experience
      ACS
      Order AcceptedOrder Processed
    • 144. Pattern: External DMZ(any communication style, secure NAT traversal for TCP & HTTP/S)
      Home
      Internal Datacenter
      Storage
      Storage
      Storage
      Devices
      Enterprise App Instance
      Enterprise App Instance
      Enterprise App Instance
      Home Automation or Home Media Server
      Balance / Filter Reverse Proxy
      ACS
      ACS
      ACS
      net.tcp/direct
      http(s) / net.tcp
      Web or Hi-Fi Client Experience
      Web or Hi-Fi Client Experience
    • 145. Pattern: Integrate “Anything”(session-bound, raw-binary transport tunneling)
      Windows Azure, Datacenter, Hosting, Amazon EC2 (Windows)
      NP Agent
      Socket Agent
      AppInstance
      ASP.NETADO.NET
      J2EE, JDBC, JMS
      TDSPassthrough
      SocketPassthrough
      HTTP/HTTPSPassthrough
      w/ URI Rewriting
      ACS
      ACS
      On-Premise Data
      On-Premise Infra
      Apps & Services
      NP Bridge
      Socket Bridge
      HTTP Bridge
      Exchange/Mail (SMTP/IMAP)Active Directory (LDAP)System Center (SNMP)…
      SQL Server
      ERP, CRM, Custom Apps.NET, J2EE, ROR, PHP…
    • 146. Thank you
      david.chou@microsoft.com
      blogs.msdn.com/dachou
      © 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.
      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.