Windows Azure Platform

davidcchou 7,701 views 52 slides Oct 17, 2009
Slide 1
Slide 1 of 52
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52

About This Presentation

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


Slide Content

Windows Azure Platform David Chou [email protected] blogs.msdn.com/ dachou

Private (On-Premise) Infrastructure (as a Service) Platform (as a Service) Types of Clouds Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration You manage Managed by vendor Managed by vendor You manage You manage

Private (On-Premise) Types of Clouds Infrastructure (as a Service) Platform (as a Service)

Abstract Resources Private Cloud (on-premise) Physical Resources Public Cloud (off-premise) Customizability Ease of Provisioning Global Reach Security & Privacy Real-Time Performance Redundancy & Resiliency Scalability & Availability Consistency & Control A Hybrid World Homogeneity Heterogeneity

The Microsoft Cloud ~100 Globally Distributed Data Centers Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs

Platform Services Software Services Application Services Infrastructure Services The Microsoft Cloud Categories of Services

Web and Clouds Third party Cloud Web applications On-premises LOB Applications Composite applications Compute Storage Management Management Relational data Connectivity Access control Developer Experience Use existing skills and tools. Windows Azure Platform

Windows Azure Platform Internet-scale, highly available cloud fabric Globally distributed Microsoft data centers (ISO/IEC 27001:2005 and SAS 70 Type I and Type II certified) Consumption and usage-based pricing; enterprise-class SLA commitment Compute – auto-provisioning 64-bit application containers in Windows Server VMs; supports a wide range of application models Storage – highly available distributed table, blob, queue, & cache storage services Languages – .NET 3.5 (C#, VB.NET, etc.), IronRuby , IronPython , PHP, Java, native Win32 code Data – massively scalable & highly consistent distributed relational database; geo-replication and geo-location of data Processing – relational queries, search, reporting, analytics on structured, semi-structured, and unstructured data Integration – synchronization and replication with on-premise databases, other data sources Service Bus – connectivity to on-premises applications; secure, federated fire-wall friendly Web services messaging intermediary; durable & discoverable queues Access Control – rules-driven federated identity; AD federation; claims-based authorization 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) Load balancer programming Blob Storage Table Storage Multiple replicas Ingress/Egress (to/from internet only) Host OS Windows Server 2008 x64 Guest OS Windows Server 2008 Enterprise x64 Hypervisor Hyper-V CPU 1.5 - 1.7 GHz x64 equivalent Memory 1.7GB Network 100Mbps Transient storage 250GB

Compute connectivity Your service is connected and reachable via web Internet facing roles will have external connectivity >99.95% Database availability Database is connected to the internet gateway Availability monitoring every 5-minute interval Storage service will be available/ reachable (connectivity) Your storage requests will be processed successfully >99.9% Storage availability >99.9% .NET Service Bus endpoint will have external connectivity Message operation requests will be processed successfully Service availability >99.9% All running roles will be continuously monitored If role is unhealthy, we will detect and initiate corrective state Automated Systems Management Service Guarantee Role instance monitoring and restart

Benefits BUSINESS DEMANDS TECHOLOGY DEMANDS WINDOWS AZURE PLATFORM OFFERS Cost-effective solution to manage IT resources Less infrastructure to buy/configure and support Lower TCO Predictable cost Focus on delivering compelling software not on managing infrastructure Monetize new offering quickly without investment in billing and other enablement technologies.    Speed of development Interoperability Leverage existing IP Simplified deployment Scale up or down as business needs change Go to market faster Reliable service SLAs Security Global data centers Lower costs Efficiency Stay Competitive Innovation Agility Generate New Revenue Quickly Reliability Reduced Risk

Platform of Choice

Sign up at the Windows Azure P latform 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

Application Architecture

Application Models Web Hosting Massive scale infrastructure Burst & overflow capacity Temporary, ad-hoc sites Application Hosting On-premise extensions Composite applications Automated agents / jobs Media Hosting & Processing CGI rendering Content transcoding Media streaming Distributed Storage External backup and storage High performance computing Parallel & distributed processing Massive modeling & simulation Advanced analytics Information Sharing Common data repositories Reference data Knowledge discovery & mgmt Collaborative Processes Multi-enterprise integration B2B & e-commerce Supply chain management Health & life sciences Domain-specific services

Internet-Scale Application Architecture Design Horizontal scaling Service-oriented composition Eventual consistency Fault tolerant (expect failures ) Security Claims-based authentication & access control Federated identity Data encryption & key mgmt. Management Policy-driven automation Aware of application lifecycles Handle dynamic data schema and configuration changes Data & Content De-normalization L ogical partitioning Distributed in-memory cache Diverse data storage options (persistent & transient, relational & unstructured, text & binary, read & write, etc.) Processes Loosely coupled components Parallel & distributed processing Asynchronous distributed communication Idempotent (handle duplicity) Isolation (separation of concerns)

Storage Relational & transactional data Federated databases Unstructured, de-normalized data Logical partitioning Persistent file & blob storage Encrypted storage Connectivity Message queues Service orchestrations Identity federation Claims-based access control External services connectivity Presentation ASP.NET C#, PHP, Java Distributed in-memory cache Services .NET C#, Java, native code Distributed in-memory cache Asynchronous processes Distributed parallel processes Transient file storage Internet-Scale Application Architecture SERVICE BUS ACCESS CONTROL WORK FLOWS

User Private Cloud Public Cloud Services Application Patterns Table Storage Service Blob Storage Service Queue Service ASP.NET (Web 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) ASP.NET (Web Role) ASP.NET (Web Role) Web Svc (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Jobs (Worker Role) Silverlight Application Web Browser Mobile Browser WPF Application Service Bus Access Control Service Workflow Service User Data Application Data Reference Data Cloud Web Application Enterprise Data Enterprise Web Svc Enterprise Application Data Service Storage Service Identity Service Application Service Enterprise Identity

User Private Cloud Public Services Application Patterns Table Storage Service Blob Storage Service Queue Service ASP.NET (Web 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) ASP.NET (Web Role) ASP.NET (Web Role) Web Svc (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Jobs (Worker Role) Silverlight Application Web Browser Mobile Browser WPF Application Service Bus Access Control Service Workflow Service User Data Application Data Reference Data Composite Services Application Enterprise Data Enterprise Web Svc Enterprise Application Data Service Storage Service Identity Service Application Service Enterprise Identity

User Private Cloud Public Services Application Patterns Table Storage Service Blob Storage Service Queue Service ASP.NET (Web 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) ASP.NET (Web Role) ASP.NET (Web Role) Web Svc (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Jobs (Worker Role) Silverlight Application Web Browser Mobile Browser WPF Application Service Bus Access Control Service Workflow Service User Data Application Data Reference Data Cloud Agent Application Enterprise Data Enterprise Web Svc Enterprise Application Data Service Storage Service Identity Service Application Service Enterprise Identity

User Private Cloud Public Services Application Patterns Table Storage Service Blob Storage Service Queue Service ASP.NET (Web 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) ASP.NET (Web Role) ASP.NET (Web Role) Web Svc (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Jobs (Worker Role) Silverlight Application Web Browser Mobile Browser WPF Application Service Bus Access Control Service Workflow Service User Data Application Data Reference Data B2B Integration Application Enterprise Data Enterprise Web Svc Enterprise Application Data Service Storage Service Identity Service Application Service Enterprise Identity

User Private Cloud Public Services Application Patterns Table Storage Service Blob Storage Service Queue Service ASP.NET (Web 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) ASP.NET (Web Role) ASP.NET (Web Role) Web Svc (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Jobs (Worker Role) Silverlight Application Web Browser Mobile Browser WPF Application Service Bus Access Control Service Workflow Service User Data Application Data Reference Data Grid / Parallel Computing Application Enterprise Data Enterprise Web Svc Enterprise Application Data Service Storage Service Identity Service Application Service Enterprise Identity

User Private Cloud Public Services Application Patterns Table Storage Service Blob Storage Service Queue Service ASP.NET (Web 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) ASP.NET (Web Role) ASP.NET (Web Role) Web Svc (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Jobs (Worker Role) Silverlight Application Web Browser Mobile Browser WPF Application Service Bus Access Control Service Workflow Service User Data Application Data Reference Data Hybrid Enterprise Application Enterprise Data Enterprise Web Svc Enterprise Application Data Service Storage Service Identity Service Application Service Enterprise Identity

BUSINESSES CONSUMERS INTERNET Windows Azure Architecture

Fabric Compute Storage Fabric controller 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

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. 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. Geographically distributed, state-of-the-art data centers host your applications and data, internet-accessible from everywhere you choose to allow. Windows Azure Architecture

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

GOAL: SCALABILITY Scale out by replicating worker instances as needed. Allow applications to scale user and compute processing independently. Two instance types: Web Role & Worker Role Windows Azure applications are built with web role instances, worker role instances, or a combination of both. Each instance runs on its own VM (virtual machine), replicated as needed Windows Azure Architecture Compute

GOAL: SCALABLE, DURABLE STORAGE 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 Blobs: large, unstructured data (audio, video, etc) Tables: simply structured data, accessed using ADO.NET Data Services Queues: serially accessed messages or requests, allowing web-roles and worker-roles to interact Windows Azure Architecture Storage

GOAL: AUTOMATED APPLICATION MANAGEMENT AND CONTROL Fabric The Fabric Controller automates service management Windows Azure Architecture Services Management

Value Propositions : XSPs, Server Ops SQL CLR 100% compatibility Resources Dedicated Shared Low High “Friction”/Control SQL Azure Database (RDBMS) Hosted RDBMS SQL Server Value Propositions: Auto HA, Fault-Tolerance Friction-free scale Self-provisioning High compatibility Virtual DB server Logical user database (LUDB) Resource governance @ LUDB Security @LUDB Hosted SQL Server Resource governance @ VM Security @ SQL Server/OS Roll-your-own HA/DR/scale SQL Server on-premises Resource governance @ machine Security @ SQL Server/OS Roll-your-own HA/DR/scale Value Propositions : Full h/w control – size/scale 100% compatibility Data Storage Options

SQL Azure Architecture SQL Azure TDS + TSQL Model Web App SQL Client * Windows Azure Browser Application Application REST Client REST(Astoria) ADO.Net +EF Application SQL Client * Cloud HTTP HTTP+REST TDS * Client access enabled using TDS for ODBC, ADO.Net, OLEDB, PHP-SQL, Ruby, … Data Center ODBC, OLEDB, ADO.Net PHP, Ruby, … Flexible access to data in the cloud Create client applications that access data in the cloud via TDS – just like on-premise SQL Server Create cloud-based Web applications in Azure that use standard SQLClient libraries with ADO.NET 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 Scale seamlessly as needed Self-managing data center Automated maintenance Built in high-availability and data recoverability Simple storage and hosted RDBMS

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 Server Database metadata Unit of authorization Unit of geo-location Database Unit of consistency Contains Users, Tables, Views, etc… Has one or more Has one or more Data Platform Design

Scalability and Availability: Fabric, Failover, Replication, and Load balancing 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 SQL Instance SQL DB User DB1 User DB2 User DB3 User DB4 SQL Azure Database Provisioning (databases, a ccounts, roles, …, Metering, and Billing Machine 6 SQL Instance SQL DB User DB1 User DB2 User DB3 User DB4 Machine 4 SQL Instance SQL DB User DB1 User DB2 User DB3 User DB4 DBA role will change to focus on policy/logical management Logical User Databases

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 Connections Security and Connection Models 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

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

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 Create/Alter/Drop on Database/Index/View Stored Procedures (Transact-SQL) Triggers Constraints Table variables, session temp tables (#t) + lots of others Out of Scope for v1 CLR Service Broker Distributed Transactions Distributed Query Spatial All server level DDL All physical DDL and physical catalog views SQL Server Compatibility

Departmental Applications Departmental workgroup applications with low concurrency and cyclical usage patterns Web Applications Small customers or start ups with Web applications of all scale that have simple RDBMS needs Data Hubs Secure data hubs that consolidate multiple data sources and enable access from multiple locations and devices ISV/ SaaS Offerings Traditional ISVs extending offering or selling software hosted in the cloud (including SaaS ISVs) Application Scenarios

Common patterns and problems 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: Service Bus Access Control

.NET Services provides solutions for developers facing those problems Connect E ndpoints firewall NAT firewall 0101 0111 0011 0111 0101 0111 0011 0111 Your app Customer/partner app 0101 0111 0011 0111 0101 0111 0011 0111 Service Bus

.NET Services provides solutions for developers facing those problems Control Access 4. Token 2. Claims 3. Map input claims to output claims 5. Msg w/token 0. periodic cert exchange 1. Define access control rules for a customer 6 . Check claims Your app Customer/partner users & apps Access Control Service

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

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 Octet-Streams Text JSON … XML … A B A B A B SOAP XML-RPC …

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) B A Push Pull B A Push C D E Push

Pattern: Notification Fan-Out ( Sessionless Unicast or Multicast Datagrams) Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine “Worker Role” App Instance App Instance Client Client Client Client Client Client NATs multicast unicast unicast ACS ACS ACS ACS ACS ACS ACS ACS ACS

Pattern: REST Resource Management (Request/Response HTTP/HTTPS w/ arbitrary payloads) Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine App Instance Storage App Instance App Instance Storage Storage On-Premise App(s) Cache GET POST PUT DELETE POST, PUT, DELETE POST, PUT, DELETE POST, PUT, DELETE On-Demand ‘Pull’ Sync Continuous ‘Push’ Sync ACS ACS ACS ACS ACS

In-House Outsourced Pattern: Document Exchange (session-bound, app-level ack’d document transfers + notifications) Hosted E-Commerce Front Storage Inventory / Shipping System Ordering System Storage Storage Hi-Fi Client Experience PO S O Shipped Order Accepted Order Processed Ready Delivered ACK ACK Web Client Experience ACS ACS ACS ACS ACS

Pattern: External DMZ (any communication style, secure NAT traversal for TCP & HTTP/S) Home Home Automation or Home Media Server Storage Devices Web or Hi-Fi Client Experience Internal Datacenter Enterprise App Instance Enterprise App Instance Enterprise App Instance Storage Web or Hi-Fi Client Experience Balance / Filter Reverse Proxy Storage net.tcp /direct http(s) / net.tcp ACS ACS ACS

Pattern: Integrate “Anything” (session-bound, raw-binary transport tunneling) Windows Azure, Datacenter, Hosting, Amazon EC2 (Windows) App Instance On-Premise Data NP Bridge SQL Server TDS Passthrough ASP.NET ADO.NET NP Agent ACS On-Premise Infra Socket Bridge Exchange/Mail (SMTP/IMAP) Active Directory (LDAP) System Center (SNMP) … Socket Agent ACS Socket Passthrough Apps & Services HTTP Bridge ERP, CRM, Custom Apps .NET, J2EE, ROR, PHP … J2EE, JDBC, JMS HTTP/HTTPS Passthrough w/ URI Rewriting

[email protected] blogs.msdn.com/ dachou Thank you © 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.