• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Cloud application architecture with sql azure and windows azure
 

Cloud application architecture with sql azure and windows azure

on

  • 10,136 views

In this presentation we review the database development with SQL Azure and Windows Azure.

In this presentation we review the database development with SQL Azure and Windows Azure.

Regards

Eduardo Castro Martinez

Statistics

Views

Total Views
10,136
Views on SlideShare
9,016
Embed Views
1,120

Actions

Likes
15
Downloads
0
Comments
3

19 Embeds 1,120

http://ecastrom.blogspot.com 679
http://universosql.blogspot.com 170
http://todosobresql.blogspot.com 83
http://ecastrom.blogspot.mx 61
http://ecastrom.blogspot.com.es 40
http://sqlserverpedia.blogspot.com 32
http://ecastrom.blogspot.com.ar 17
http://www.ecastrom.blogspot.com 16
http://universosql.blogspot.mx 7
http://todosobresql.blogspot.com.es 2
http://todosobresql.blogspot.mx 2
http://universosql.blogspot.com.ar 2
http://ecastrom.blogspot.kr 2
http://todosobresql.blogspot.com.ar 2
http://www.sqlserverpedia.blogspot.com 1
http://ecastrom.blogspot.ch 1
http://ecastrom.blogspot.com.au 1
http://207.46.192.232 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Its really a nice one. Please see if I can have a permission to download it for my self study so that even when I am offline still I can read it.
    Are you sure you want to
    Your message goes here
    Processing…
  • :p i can't download it !
    Are you sure you want to
    Your message goes here
    Processing…
  • good work!! great help...
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cloud application architecture with sql azure and windows azure Cloud application architecture with sql azure and windows azure Presentation Transcript

    • Cloud Application Architecture with SQL Azure and Windows Azure
      Dr. Eduardo Castro Martínez
      Microsoft MVP
      ecastro@mswindowscr.org
      http://comunidadwindows.org
      http://ecastrom.blogspot.com
    • Session Objectives
      Provide a big-picture view of the SQL Server in the Cloud
      Provide a big-picture view of the Windows Azure platform
      Describe typical scenarios for using the Windows Azure platform
    • Agenda
      Cloud Computing Platform
      Understanding Cloud Computing
      Cloud Computing Security
      Cloud Computing and Standards
      Creating Cloud Aware Applications
      Windows Azure Platform
    • Computing Evolution
      40’s
      70’s
      80’s
      Now
      • Mobility explosion
      • Collaboration
      • High level of interconexion between users
      • Web platform growing
      • Pressure over companies data centre.
      4
    • Issues Facing Developers
      70% of Web Development Effort is “Muck”:
      Data Centers
      Bandwidth / Power / Cooling
      Operations
      Staffing
      Scaling is Difficult and Expensive:
      Large Up-Front Investment
      Invest Ahead of Demand
      Load is Unpredictable
    • Solution: Web-Scale Computing
      Scale capacity on demand
      Turn fixed costs into variable costs
      Always available
      Rock-solid reliability
      Simple APIs and conceptual models
      Cost-effective
      Reduced time to market
      Focus on product & core competencies
    • The Cloud General concepts
    • Typical Application Grow?
      Users
      Unused
      capacity
      Buy more of everything
      Servers
      Rearchitect Database to scale out
      Buy bigger
      SQL Box
      Add some Web Servers
    • Workload Patterns Optimal For Cloud
      “On and Off “
      “Growing Fast“
      Inactivity
      Period
      Compute
      Compute
      Average Usage
      Usage
      Average
      Time
      Time
      On & off workloads (e.g. batch job)
      Over provisioned capacity is wasted
      Time to market can be cumbersome
      Successful services needs to grow/scale
      Keeping up w/ growth is big IT challenge
      Complex lead time for deployment
      “Unpredictable Bursting“
      “Predictable Bursting“
      Compute
      Compute
      Average Usage
      Average Usage
      Time
      Time
      Unexpected/unplanned peak in demand
      Sudden spike impacts performance
      Can’t over provision for extreme cases
      Services with micro seasonality trends
      Peaks due to periodic increased demand
      IT complexity and wasted capacity
    • What is the ‘Cloud’?
      The Cloud – metaphor for the internet
      ‘Cloud Computing’
      Exploiting resources ‘out there’
      Scalable computational power
      Data management and storage
      Enabling services
      Applications
    • What is the ‘Cloud’?
      The Cloud
      “Packaged”
      Application
      An application that I buy “off the shelf” and run myself
      Hosted
      “Packaged”
      An application that I buy “off the shelf” and run at a host site
      “Packaged”
      Using cloud services
      An application that I buy “off the shelf” and host using cloud platform
      “Software as a Service”
      A hosted application that I buy as a service from a vendor
      Buy
      Build vs. Buy
      “Custom Built”
      Application
      An application that I develop and run myself
      Hosted
      “Custom Built”
      An application that I develop myself and run at a host site
      “Custom Built”
      using cloud services
      An application that I develop myself and host using cloud platform
      “Platform as a Service”
      A vendor hosted development and runtime environment
      Build
    • 3 Cloud Service Models
      Cloud Software as a Service (SaaS)
      Use provider’s applications over a network
      Cloud Platform as a Service (PaaS)
      Deploy customer-created applications to a cloud
      Cloud Infrastructure as a Service (IaaS)
      Rent processing, storage, network capacity, and other fundamental computing resources
      To be considered “cloud” they must be deployed on top of cloud infrastructure that has the key characteristics
      12
    • Service Model Architectures
      13
    • Cloud App Architecture
    • High Scale Application Archetype
      Intelligent Network Load Balancer
      Network Activation
      M Tiers of N stateless machines w/ Forward Caching
      Stateless ‘Worker’ Machines
      Queue Activation
      Shared Filesystem
      Partitioned Relational DB
      Async Dispatch
      Queue
      ‘Monolithic’
      State Tier
    • Cloud aware Architecture
      Windows Azure Roles
      Client Applications
      Silverlight Application
      • Common Educational Experiences
      Service Bus
      WCF
      Distributed Cache Worker
      http:// gagame .*
      Dynamic Worker
      (tasks uploaded as blobs and sharding)
      PartitionerWorker
      On PremisesSQL Server
      Windows Azure Storage
      -- - --- - -
      -- - --- - -
      Queues for communication between clients and roles
      Tables to record server & partition information
      Blobs to store web and worker role resources
      Configuration
      Statistics
      C# Application on Premises
      SQL Azure
      Castellan Venue DB
      Castellan Venue DB
      Castellan Venue DB
      Castellan Venue DB’s
      Castellan Venue DB’s
      Castellan Venue DB’s
      Common DB Tables
      Sharding
      Partition
      Sharding
      Partition
      Sharding
      Partition
      ...
    • Sample Cloud Application Architecture
      Source: eleniamapi@yahoo.com
    • Sample Cloud Architecture
      Source: eleniamapi@yahoo.com
    • The ‘Why’ and ‘How’ of Cloud Migration
      There are many benefits that explain why to migrate to clouds
      Cost savings, power savings, green savings, increased agility in software deployment
      Cloud security issues may drive and define how we adopt and deploy cloud computing solutions
      19
    • Balancing Threat Exposure and Cost Effectiveness
      20
      Private clouds may have less threat exposure than community clouds which have less threat exposure than public clouds.
      Massive public clouds may be more cost effective than large community clouds which may be more cost effective than small private clouds.
      Doesn’t strong security controls mean that I can adopt the most cost effective approach?
    • 21
      Cloud Migration and Cloud Security Architectures
      Clouds typically have a single security architecture but have many customers with different demands
      Clouds should attempt to provide configurable security mechanisms
      Organizations have more control over the security architecture of private clouds followed by community and then public
      This doesn’t say anything about actual security
      Higher sensitivity data is likely to be processed on clouds where organizations have control over the security model
    • 22
      Putting it Together
      Most clouds will require very strong security controls
      All models of cloud may be used for differing tradeoffs between threat exposure and efficiency
      There is no one “cloud”. There are many models and architectures.
      How does one choose?
    • Migration Paths for Cloud Adoption
      Use public clouds
      Develop private clouds
      Build a private cloud
      Procure an outsourced private cloud
      Migrate data centers to be private clouds (fully virtualized)
      Build or procure community clouds
      Organization wide SaaS
      PaaS and IaaS
      Disaster recovery for private clouds
      Use hybrid-cloud technology
      Workload portability between clouds
      23
    • Possible Effects ofCloud Computing
      Small enterprises use public SaaS and public clouds and minimize growth of data centers
      Large enterprise data centers may evolve to act as private clouds
      Large enterprises may use hybrid cloud infrastructure software to leverage both internal and public clouds
      Public clouds may adopt standards in order to run workloads from competing hybrid cloud infrastructures
      24
    • An Overview of the Windows Azure Platform
    • The Windows Azure Platform
      Windows Azure
      SQL Azure
      Windows Azure platform AppFabric
      Developer tools
    • Windows Azure Basics
      Windows Azure can potentially provide various kinds of Windows-based environments
      The current release supports both .NET and unmanaged applications
      Windows Azure provides Operating System like concepts
      Process Management
      Computation
      Storage
    • Azure™ Services Platform
    • A set of connected servers
      On which developers can:
      Install and run services
      Store and retrieve data
      What Is The Cloud in Windows Azure?
    • It is an operating system for the cloud
      It is designed for utility computing
      It has four primary features:
      Service management
      Compute
      Storage
      Developer experience
      What Is Windows Azure?
    • The Windows Azure Platform
      SQL Azure
      Cloud
      Applications
      Windows Azure AppFabric
      Windows Azure
      On-Premises
      Applications
      Others
      Windows
    • Windows AzureAn illustration
      Application
      Compute
      Storage
      Config
      Fabric

      SQL Azure
      Applications
      Windows Azure AppFabric
      Windows Azure
      Applications
      Others
      Windows
    • Windows Azure Datacenter
      Your Service
      Windows Azure Building Blocks
      Web Site
      (ASPX, ASMX, WCF)
      Web Site
      (ASPX, ASMX, WCF)
      Web Role
      (ASPX, WCF)
      LB
      Tables
      Worker Service
      Worker Role
      Internet
      Storage
      Queue
      LB
      Blobs
    • Windows Azure Applications, Storage, and Roles
      n
      m
      Web Role
      Worker Role
      LB
      Cloud Storage (blob, table, queue)
    • Windows Azure, In One Picture
      Business Portal
      Developer Portal
      Service Management Service
      REST
      User Code


      Runtime API
      Storage Cluster
      VS Tools
      Compute Cluster

      WA SDK
      VM Setup
      REST
      MSFT Datacenters
      Desktop
      Cloud VM
    • Azure
      Partial Trust
      “Dev Fabric”
      Dev Environment
    • Windows Azure Compute Service A closer look
      VMs
      VMs
      HTTP/ HTTPS
      Worker
      Role Instance
      Web
      Role Instance
      Load Balancer
      IIS
      Application
      Storage
      Compute
      Fabric

    • Storage
      Web Role
      Instance
      Worker Role
      Instance
      Fabric Agent
      Fabric Agent
      Fabric Controller
      Windows Azure Fabric
    • Cloud Simple Application
      Worker Role
      Web Role
      Queue
      Blob
    • Windows Azure for Application Developers
      Hosted
      Service
      Portal
      SDK
      Storage
      Develop
      Run
      Deploy
    • Roles
      Role
      Code
      Configuration
    • Load Balanced Instances
      Role
      Instance 1
      http://yourapp.cloudapp.net
      Instance 2
    • Web vs Worker Role
      Worker Role
      Web Role
      System Host
      IIS Host
      Your Code
      Your Code
    • Compute
    • Windows Azure Compute Service
      The VMs are provided by a cloud-optimized hypervisor
      Not your average VM
      They run 64-bit Windows Server 2008
      Each VM has a one-to-one relationship with a processor core
      For developers:
      It’s mostly standard Windows and .NET
      A few things require accessing the Windows Azure Agent, e.g., logging
      A desktop facsimile of Windows Azure in the cloud is provided for development via the SDK
    • Windows Azure Compute Service A closer look
      VMs
      VMs
      Worker
      Role Instance
      Web
      Role Instance
      HTTP
      IIS
      Load Balancer
      RoleEntryPoint.Start()
      Agent
      Agent
      Windows Azure Fabric
      Application
      Storage
      Compute
      Fabric

    • Storage
    • Windows Azure Storage
      Storage types:
      Blobs: a simple hierarchy of binary data
      Tables: entity storage (not relational tables)
      Queues: high performance quasi-transactional queue structures
      Access:
      Data is exposed via a RESTful interface
      Data can be accessed by:
      Windows Azure applications
      Any other internet connected applicationon-premises or other cloud applications
    • Windows Azure Storage ServiceA closer look
      HTTP/ HTTPS
      RESTServices
      Blobs
      Tables
      Queues
      Application
      Storage
      Compute
      Fabric

    • Business Analytics
      Reporting
      Data Sync
      Database
    • SQL AzureA relational DB in the cloud
      SQL Azure Database
      Data Hub
      Others (Future)
      Relational database as a service
      Highly available, automatically maintained
      Extension of the SQL Server Data Platform
      .NET Services
      SQL Services
      Applications
      Live Services
      Windows Azure
      Applications
      Windows
      Mobile
      Windows
      Vista/XP
      Windows
      Server
      Others
    • Database
      Relational database, provided as a service
      Highly symmetrical development and tooling experience (use TDS protocol and T-SQL)
      Highly scaled out, on commodity hardware
      Built on the SQL Server technology foundation
      Beyond “hosted database”
      High availability, DB provisioning, and DB management are provided by the service
      Pay for what you use
    • SQL Azure Database
      Highly scaled out relational database as a service
      Relational database service
      • SQL Server technology foundation
      • Highly symmetrical
      • Highly scaled
      • Highly secure
      Database “as a Service” – beyond hosting
      Browser
      Database
      SOAP/REST
      HTTP/S
      ADO.NET/REST - EDM
      HTTP/S
      MS
      Datacenter
      Windows Azure
      Compute
      App Code
      (ASP.NET)
      SQL Server Report Server
      (on-premises)
      Customer Value Props
      • Self-provisioning and capacity on demand
      • Symmetry w/ on-premises database platform
      • Automatic high-availability and fault-tolerance
      • Automated DB maintenance (infrastructure)
      • Simple, flexible pricing – “pay as you grow”
      T-SQL (TDS)
      T-SQL (TDS)
      SQL Azure
      Database
      - AD Federation (LiveId /AppFabric AC)
    • Application Primary FocusDesigning for the Cloud
      Fundamentals
      Automated
      Service
      Management
      High
      Availability
      Scale out
      Services
      Multi-tenancy
      Resource Optimization
    • Transitioning Cloud Driven Process
    • Transitioning to the cloud
      Move Entire Applications to the Cloud
      Extend Application Components to the Cloud
      Store Data in
      the Cloud
      Create hybrid applications by Combining
      Cloud Services
      Start new applications based on
      Cloud Services
    • Migration Paths for Cloud Adoption
      Use public clouds
      Develop private clouds
      Build a private cloud
      Procure an outsourced private cloud
      Migrate data centers to be private clouds (fully virtualized)
      Build or procure community clouds
      Organization wide SaaS
      PaaS and IaaS
      Disaster recovery for private clouds
      Use hybrid-cloud technology
      Workload portability between clouds
      57
    • Infrastructure Transition
    • Cloud Reference Architecture
      Cloud Computing for Financial Institutions. VivekKejriwal
    • Transitioning Cloud Driven Architectures
    • Transitioning Cloud Driven Architectures
    • Transitioning Cloud Driven Architectures
    • Transitioning Cloud Driven Architectures
    • Application Architecture for the Cloud
    • Application Basic Building Blocks
      n
      m
      Presentation Role
      Service Role
      LB
      Cloud Storage (blob, table, queue)
      65
    • N-Tier Application Transition
      Presentation
      Business
      Move to the cloud
      On Premises
      Data Access
      Data
      Data
    • N-Tier Application Transition
      Presentation
      Business
      Move to the cloud
      On Premises
      Data Access
      Data
      Data
    • N-Tier Application Transition
      Presentation
      Move to the cloud
      Business
      Move to the cloud
      Data
      Data Access
      Data
      On Premises Data
      Sync
    • Simple Cloud Application
      Services
      Presentation
      Queue
      Blob
    • Sample Cloud Application Arquitecture
      Cloud Based Roles
      Client Applications
      Multimedia Application
      • Common Educational Experiences
      Communication Services
      Communication Services
      Distributed Cache Worker
      http:// sophia.*
      Dynamic Worker
      (blobs and sharding management)
      PartitionerWorker
      On PremisesData Storage
      Cloud Storage
      -- - --- - -
      -- - --- - -
      Queues for communication between clients and roles
      Tables to record server & partition information
      Blobs to store web and worker role resources
      Configuration
      Statistics
      Application on Premises
      Cloud Relational Storage
      Castellan Venue DB
      Castellan Venue DB
      Castellan Venue DB
      Castellan Venue DB’s
      Castellan Venue DB’s
      Castellan Venue DB’s
      Common DB Tables
      Sharding
      Partition
      Sharding
      Partition
      Sharding
      Partition
      ...
    • Service Bus
      2) Discover endpoints
      Registry
      4) Upgrade to direct connection
      1) Register endpoints
      3) Access application
      Endpoints
      Application
      Application
      Organization X
      Organization Y
      Access Control
      Service Bus
      Cloud Communication Pattern
    • Transitioning to the CloudDesign Requirements
    • Basic cloud development principles
    • Basic cloud development principles
    • Cloud Transitioning ArchitectureIdentify Patterns
      Consider:
      Basic components
      Messaging
      Interoperable Message Format and Protocols
      Communication or Integration Bus
      Resource Deployment
      Storage
      Infrastructure (Processing, Creation, …)
    • Scaling Out using a Queue Based Pattern
      Process Message
      Process Role
      Submit Message
      Queue
      Msg 1
      Msg 2
      Msg 2
      Msg 1
      Application
      Worker Role
      Process Role
      Msg 3
      Msg 4
      Msg 2
    • Table
      Incident
      Table
      Queue A
      Alarm
      Processor
      Pos Rpt
      Table
      NewMsg
      Parse & Route
      Event
      Table
      Timer
      Table
      Implement Queues for Reliability and Continuity
      Processor A
      Table
      Queue B
      Processor B
      Table
    • Building Blocks Key takeaways
      Use the cloud provider service configuration to scale
      Design how to communicate your application components
      Built your application to scale up/down roles in production
    • Windows Azure Storage Service
    • Windows Azure Storage ServiceA closer look
      HTTP/ HTTPS
      Blobs
      Tables
      Queues
      Application
      Storage
      Compute
      Fabric

    • Fundamental Storage Abstractions
      Tables– Provide structured storage. A Table is a set of entities, which contain a set of properties
      Queues– Provide reliable storage and delivery of messages for an application
      Blobs – Provide a simple interface for storing named files along with metadata for the file
      Drives – Provides durable NTFS volumes for Windows Azure applications to use (new)
      81
    • Windows Azure StorageTables: Strengths
      Massive scalability
      By effectively allowing scale-out data
      Perspective:
      Applied to the right problem, Windows Azure Tables are a beautiful thing
      But they’re not the optimal solution for a majority of data storage scenarios
      Amazon, Google, and others provide similar cloud storage mechanisms
      All of these can be seen as part of the NOSQL movement
    • Windows Azure StoragePoints of interest
      Storage types:
      Blobs: store binary data
      Tables: provide scale-out, entity-based storage
      Not relational tables
      Queues: allow message-based communication
      Access:
      Data is grouped into storage accounts
      Data can be accessed by:
      Windows Azure apps
      Other on-premises or cloud apps
    • Windows Azure StorageA closer look at blobs
      Options for accessing blobs:
      From Windows Azure applications or other applications: via RESTful requests
      From Windows Azure applications: via Windows Azure Drives
      Drives make a blob look like an NTFS file system to the application
      Blobs can also be used with the Windows Azure Content Delivery Network (CDN)
      For faster access from distributed locations to frequently accessed content
    • Windows Azure StorageA closer look at tables
      . . .
      Table
      Table
      Table
      Entity
      . . .
      Entity
      Entity
      Storage Accounts
      Property
      Property
      Property
      Name
      Type
      Value
    • Windows Azure Tables
      Provides Structured Storage
      Massively Scalable Tables
      Billions of entities (rows) and TBs of data
      Can use thousands of servers as traffic grows
      Highly Available & Durable
      Data is replicated several times
      Familiar and Easy to use API
      ADO.NET Data Services – .NET 3.5 SP1
      .NET classes and LINQ
      REST – with any platform or language
      86
    • Windows Azure StorageTables: Challenges
      No SQL
      A new approach for developers to learn
      No aggregates
      Access via REST
      You can’t use ordinary ADO.NET
      An unfamiliar structure for data
      You can’t easily move relational data in or out
      Supporting services are scarce, e.g., reporting
      No schema
      And no views
    • Windows Azure StorageA closer look at queues
      main()
      { … }
      Web Role
      Worker Role
      1) Receive work
      4) Do work
      ASP.NET, WCF, etc.
      2) Put message in queue
      3) Get message from queue
      5) Delete message from queue
      Queue
    • Windows Azure Tables
    • Windows Azure Tables
      Provides Structured Storage
      Massively Scalable Tables
      Billions of entities (rows) and TBs of data
      Can use thousands of servers as traffic grows
      Highly Available & Durable
      Data is replicated several times
      Familiar and Easy to use API
      ADO.NET Data Services – .NET 3.5 SP1
      .NET classes and LINQ
      REST – with any platform or language
      90
    • Table Storage Concepts
      Entities
      Tables
      Accounts
      Email =…
      Name = …
      Users
      Email =…
      Name = …
      moviesonline
      Genre =…
      Title = …
      Movies
      Genre =…
      Title = …
      91
    • Table Data Model
      Table
      A storage account can create many tables
      Table name is scoped by account
      Set of entities (i.e. rows)
      Entity
      Set of properties (columns)
      Required properties
      PartitionKey, RowKey and Timestamp
      92
    • Required Entity Properties
      PartitionKey & RowKey
      Uniquely identifies an entity
      Defines the sort order
      Use them to scale your application
      Timestamp
      Read only
      Optimistic Concurrency
      93
    • PartitionKey And Partitions
      PartitionKey
      Used to group entities in the table into partitions
      A table partition
      All entities with same partition key value
      Unit of scale
      Control entity locality
      Row key provides uniqueness within a partition
      94
    • Partitions and Partition Ranges
      Server A
      Table = Movies
      [Action - Comedy)
      Server A
      Table = Movies
      Server B
      Table = Movies
      [Comedy- Western)
      95
    • Table Operations
      Table
      Create
      Query
      Delete
      Entities
      Insert
      Update
      Merge – Partial Update
      Replace – Update entire entity
      Delete
      Query
      Entity Group Transaction (new)
    • Table Schema
      Define the schema as a .NET class
      [DataServiceKey("PartitionKey", "RowKey")]
      publicclassMovie
      {
      ///<summary>
      /// Category is the partition key
      ///</summary>
      publicstringPartitionKey { get; set; }
      ///<summary>
      /// Title is the row key
      ///</summary>
      publicstringRowKey { get; set; }
      publicDateTime Timestamp { get; set; }
      publicintReleaseYear { get; set; }
      publicstring Language { get; set; }
      publicstring Cast { get; set; }
      }
      97
    • Table SDK Sample Code
      StorageCredentialsAccountAndKeycredentials = newStorageCredentialsAccountAndKey(
      “myaccount", “myKey");
      stringbaseUri = "http://myaccount.table.core.windows.net";
      CloudTableClienttableClient = newCloudTableClient(baseUri, credentials);
      tableClient.CreateTable(“Movies");
      TableServiceContextcontext = tableClient.GetDataServiceContext();
      CloudTableQuery<Movie> q = (from movie incontext.CreateQuery<Movie>(“Movies")
      wheremovie.PartitionKey == “Action" && movie.RowKey == "The Bourne Ultimatum"
      select movie).AsTableServiceQuery<Movie>();
      MoviemovieToUpdate = q.FirstOrDefault();
      // Update movie
      context.UpdateObject(movieToUpdate);
      context.SaveChangesWithRetries();
      // Add movie
      context.AddObject(new Movie(“Action" , movieToAdd));
      context.SaveChangesWithRetries();
      98
    • Key Selection: Things to Consider
      Scalability
      Distribute load as much as possible
      Hot partitions can be load balanced
      PartitionKeyis critical for scalability
      Query Efficiency & Speed
      Avoid frequent large scans
      Parallelize queries
      Entity group transactions (new)
      Transactions across a single partition
      Transaction semantics & Reduce round trips
      99
    • Key Selection: Case Study 1
      Table for listing all movies
      Home page lists movies based on chosen category
      100
    • Movie Listing – Solution 1
      Why do I need multiple PartitionKeys?
      Account name as Partition Key
      Movie title as RowKey since movie names need to be sorted
      Category as a separate property
      Does this scale?
      101
    • Movie Listing – Solution 1
      Single partition - Entire table served by one server
      All requests served by that single server
      Does not scale
      Client
      Client
      Request
      Request
      Request
      Request
      Server A
      102
    • Movie Listing – Solution 2
      All movies partitioned by category
      Allows system to load balance hot partitions
      Load distributed
      Better than single partition
      Server A
      Client
      Client
      Request
      Request
      Request
      Request
      Request
      Request
      Request
      Request
      Server B
      103
    • Key Selection: Case Study 2
      Log every transaction into a table for diagnostics
      Scale Write Intensive Scenario
      Logs can be retrieved for a given time range
      104
    • Logging - Solution 1
      Timestamp as Partition Key
      Looks like an obvious choice
      It is not a single partition as time moves forward
      Append only
      Requests to single partition range
      Load balancingdoesnot help
      Server may throttle
      Server A
      Applications
      Client
      Server B
      Request
      Request
      Request
      Request
      105
    • Logging Solution 2 - Distribute "Append Only”
      Prefix timestamp such that load is distributed
      Id of the node logging
      Hash into N buckets
      Write load is now distributed
      Better throughput
      To query logs in time range
      Parallelize it across prefix values
      Server A
      Applications
      Client
      Server B
      Request
      Request
      Request
      Request
      106
    • Key Selection: Query Efficiency & Speed
      Select keys that allow fast retrieval
      Reduce scan range
      Reduce scan frequency
      107
    • Single Entity Query
      Where PartitionKey=‘SciFi’ and RowKey = ‘Star Trek’
      Efficient processing
      No continuation tokens
      Server A
      Client
      Request
      Server B
      Result
      108
    • Table Scan Query
      Select * from Movies where Rating > 4
      Returns Continuation token
      1000 movies in result set
      Partition range boundary
      Serial Processing: Wait for
      continuation token before
      proceeding
      Returns 1000 movies
      Partition range boundary hit
      Server A
      Cont.
      Cont.
      Return continuation
      Client
      Request
      Request Cont.
      Request Cont.
      Server B
      Cont.
      109
    • Make Scans Faster
      Split “Select * from Movies where Rating > 4” into
      Where PartitionKey >= “A” and PartitionKey < “D” and Rating > 4
      Where PartitionKey >= “D” and PartitionKey < “I” and Rating > 4
      Etc.
      Execute in parallel
      Each query handles continuation
      Server A
      Cont.
      Cont.
      Request
      Client
      Request
      Request
      Server B
      Cont.
      110
    • Query Speed
      Fast
      Single PartitionKey and RowKey with equality
      Medium
      Single partition but a small range for RowKey
      Entire partition or table that is small
      Slow
      Large single scan
      Large table scan
      “OR” predicates on keys => no query optimization => results in scan
      Expect continuation token for all except in 1
      111
    • Make Queries Faster
      Large Scans
      Split the range and parallelize queries
      Create and maintain own views that help queries
      “Or” Predicates
      Execute individual query in parallel instead of using “OR”
      User Interactive
      Cache the result to reduce scan frequency
      112
    • Expect Continuation Tokens – Seriously!
      Maximum of 1000 rows in a response
      At the end of partition range boundary
      Maximum of 5 seconds to execute the query
      113
    • Entity Group Transactions (EGT) (new)
      Atomically perform multiple insert/update/deleteover entities in same partition in a single transaction
      Maximum of 100 commands in a single transaction and payload < 4 MB
      ADO.Net Data Service
      Use SaveChangesOptions.Batch
      114
    • Key Selection: Entity Group Transaction
      Case Study
      Maintain user account information
      Account ID, User Name, Address, Number of rentals
      Maintain information of checked out rentals
      Account ID, Movie Title, Check out date, Due date
      Solution 1 – Maintain two tables – Users & Rentals
      Handle Cross table consistency
      Insert into Rentals table succeeds
      Update to Users table fails
      Queue to maintain consistency
      115
    • Solution 2
      Store Account Information and Rental details in same table
      Maintain same PartitionKey to enforce transactions
      Account ID as PartitionKey
      Update total count and Insert new rentals using Entity Group Transaction
      Prefix RowKey with “Kind” code: A = Account, R = Rental
      Row key for account info: [Kind Code]_[AccountId]
      Row Key for rental info: [Kind Code]_[Title]
      Rental Properties not set for Account row and vice versa
      116
    • Best Practices
      Select PartitionKey and RowKey that help scale
      Efficient for frequently used queries
      Supports batch transactions
      Distributes load
      Distribute “Append only” patterns using prefix to PartitionKey
      Always Handle continuation tokens
      Client can maintain their own cache/views instead of frequent scans
      Future Feature - Secondary Index
      Execute parallel queries instead of “OR” predicates
      Implement back-off strategy for retries
      117
    • Windows Azure Queues
      Queue are performance efficient, highly available and provide reliable message delivery
      Simple, asynchronous work dispatch
      Programming semantics ensure that a message can be processed at least once
      Access is provided via REST
      118
    • Queue Storage Concepts
      Messages
      Queues
      Accounts
      128 x 128 http://...
      thumbnailjobs
      256 x 256 http://...
      sally
      http://...
      traverselinks
      http://...
      119
    • Account, Queues and Messages
      An account can create many queues
      Queue Name is scoped by the account
      A Queue contains messages
      No limit on number of messages stored in a queue
      Set a limit for message expiration
      Messages
      Message size <= 8 KB
      To store larger data, store data in blob/entity storage, and the blob/entity name in the message
      Message now has dequeue count
      120
    • Queue Operations
      Queue
      Create Queue
      Delete Queue
      List Queues
      Get/Set Queue Metadata
      Messages
      Add Message (i.e. Enqueue Message)
      Get Message(s) (i.e. Dequeue Message)
      Peek Message(s)
      Delete Message
      121
    • Queue Programming Api
      CloudQueueClientqueueClient = newCloudQueueClient(baseUri, credentials);
      CloudQueue queue = queueClient.GetQueueReference("test1");
      queue.CreateIfNotExist();
      //MessageCount is populated via FetchAttributes
      queue.FetchAttributes();
      CloudQueueMessage message = newCloudQueueMessage("Some content");
      queue.AddMessage(message);
      message = queue.GetMessage(TimeSpan.FromMinutes(10) /*visibility timeout*/);
      //Process the message here …
      queue.DeleteMessage(message);
      122
    • Removing Poison Messages
      Producers
      Consumers
      C1
      P2
      1. GetMessage(Q, 30 s)  msg 1
      2
      1
      1
      1
      1
      1
      2
      1
      3
      4
      0
      3
      0
      1
      1
      2
      1
      1
      0
      2
      0
      C2
      P1
      2. GetMessage(Q, 30 s)  msg 2
      123
    • Removing Poison Messages
      Producers
      Consumers
      1
      1
      C1
      P2
      1. GetMessage(Q, 30 s)  msg 1
      5. C1 crashed
      4
      0
      1
      1
      2
      1
      3
      0
      1
      2
      1
      1
      1
      2
      3
      6. msg1 visible 30 s after Dequeue
      2
      1
      C2
      P1
      2. GetMessage(Q, 30 s)  msg 2
      3. C2 consumed msg 2
      4. DeleteMessage(Q, msg 2)
      7. GetMessage(Q, 30 s)  msg 1
      124
    • Removing Poison Messages
      Producers
      Consumers
      1. Dequeue(Q, 30 sec)  msg 1
      5. C1 crashed
      10. C1 restarted
      11. Dequeue(Q, 30 sec)  msg 1
      12. DequeueCount > 2
      13. Delete (Q, msg1)
      C1
      P2
      4
      0
      1
      2
      3
      0
      1
      3
      1
      2
      1
      3
      3
      1
      2
      C2
      P1
      6. msg1 visible 30s after Dequeue
      9. msg1 visible 30s after Dequeue
      2. Dequeue(Q, 30 sec)  msg 2
      3. C2 consumed msg 2
      4. Delete(Q, msg 2)
      7. Dequeue(Q, 30 sec)  msg 1
      8. C2 crashed
      125
    • Best Practices & Summary
      Make message processing idempotent
      No need to deal with failures
      Do not rely on order
      Invisible messages result in out of order
      Use Dequeue count to remove poison messages
      Enforce threshold on message’s dequeue count
      Use message count to dynamically increase/reduce workers
      Use blob to store message data with reference in message
      Messages > 8KB
      Batch messages
      Garbage collect orphaned blobs
      126
    • Storage Summary
      Table
      Scalable & Reliable Structured Storage System
      Partitioning is critical to scalability
      Entity Group Transactions (new)
      Queue
      Scalable & Reliable Messaging System
      Dequeue count returned with message (new)
      Use back-off strategy on retries
      Official Storage Client Library (new)
      127
    • What is “SQL Azure”?
    • Review – Conceptual model
      Subscription
      Used to map service usage to the billing instrument
      Users may have many subscriptions
      Logical Server
      Akin to SQL Server Instance
      Unit of Geo-Location & Billing
      1:1 Subscription & server
      User Database
      Restricted T-SQL surface area
      Additional catalog views provided e.g. sys.billing, sys.firewall_rules, etc
    • SQL AzureA relational DB in the cloud
      SQL Azure Database
      Data Hub
      Others (Future)
      Relational database as a service
      Highly available, automatically maintained
      Extension of the SQL Server Data Platform
      .NET Services
      SQL Services
      Applications
      Live Services
      Windows Azure
      Applications
      Windows
      Mobile
      Windows
      Vista/XP
      Windows
      Server
      Others
    • SQL Azure Database
      Single Logical
      Database
      Multiple PhysicalReplicas
      Replica 1
      Single Primary
      Replica 2
      DB
      - Based on SQL Server 2008 R2 engine
      Use same tools and data access frameworks
      Six global datacenters
      High Availability & Redundancy
      Reads are completed at the primary
      Writes are replicated to a quorum of secondaries
      Replica 3
      Multiple
      Secondaries
    • Extending SQL Server Data Platform to the Cloud
      Data Sync
      Reference Data
      Database
      Symmetric Programming Model
      Data Hub Aggregation
      • Initial services – core RDBMS capabilities with SQL Azure Database, Data Sync
      • Future Offerings
      • Additional data platform capabilities: Reporting, BI
      • New services: Reference Data
    • The New SQL Data Services
      Clear Feedback: “I want a database in the Cloud”
      Familiar SQL Server relational model
      Uses existing APIs & tools
      Built for the Cloud with availability and scale
      Accessible to all from PHP, Ruby, and Java
      Focus on combining the best features of SQL Server running at scale with low friction
    • The Evolution of SDS
      Evolves
      BrowserApplication
      Application
      Application
      BrowserApplication
      Application
      ODBC, OLEDB, ADO.Net PHP, Ruby, …
      REST Client
      SQL Client*
      REST Client
      Cloud
      Cloud
      Windows Azure
      REST (Astoria)
      Web App
      ADO.Net + EF
      REST Client
      HTTP+REST
      HTTP+REST
      HTTP
      TDS
      HTTP
      Windows Azure
      Web App
      SQL Client*
      Data Center
      Data Center
      TDS + TSQL Model
      REST/SOAP + ACE Model
      SDS Next
      SDS Current
      * Client access enabled using TDS for ODBC, ADO.Net, OLEDB, PHP-SQL, Ruby, …
    • SQL Azure
      SQL Azure Database
      Others (Future)
      SQL Azure
      Applications
      Windows Azure AppFabric
      Windows Azure
      Applications
      Others
      Windows
    • SQL Azure DatabaseAn Illustration
      SQL Azure Database
      Database
      TDS
      Application
      Database
      Database
      SQL Azure Database
      Others (Future)
    • SQL Azure DatabaseUsing one or multiple databases
      SQL Azure Database
      Database
      Application
      Max database size is 50 GB
      Database
      Database
      Application
      Database
    • SQL Azure Network Topology
      Applications use standard SQL client libraries: ODBC, ADO.Net, PHP, …
      Application
      Internet
      Azure Cloud
      TDS (tcp)
      Security Boundary
      Load balancer forwards ‘sticky’ sessions to TDS protocol tier
      LB
      TDS (tcp)
      Gateway
      Gateway
      Gateway
      Gateway
      Gateway
      Gateway
      Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to CloudDB
      TDS (tcp)
      SQL
      SQL
      SQL
      SQL
      SQL
      SQL
      Scalability and Availability: Fabric, Failover, Replication, and Load balancing
    • TDS Gateway
      TDS Listener
      Capability negotiation
      TDS Packet inspection
      Security
      Logical->Physical mapping via metadata catalog
      Enabler for multi-tenet capabilities
      Isolation layer
    • TDS Gateway Layering
      Gateway Process
      TDS Endpoint
      AdminSvc Endpoint
      Provisioning Endpoint
      Protocol Parser
      Business Logic Services
      Connection Mgmt
      SQL
      SQL
      SQL
      SQL
      SQL
      SQL
      Scalability and Availability: Fabric, Failover, Replication, and Load balancing
    • Provisioning
      Subscription
      Coordinated across all Azure services
      Executed in parallel w/retries
      Server
      May occur between data centers
      Point where Geo-location is established
      Database
      Always occurs within a single data center
      Cross node operations executed during this process e.g. add new db to sys.databases on the master
    • Server Provisioning
      Driven by administrator Portal
      Provision request is sent to Gateway
      Metadata catalog entry created
      DNS record (CNAME) created within LiveDNS service
      Master DB created
      On completion metadata catalog updated
    • SQL Azure Server Provisioning
      Live DNS Cluster
      Customer Browser
      Live DNS Svc
      Datacenter (Sub-Region)
      1
      5
      Portal LB
      Gateway LB
      2
      4
      3
      6
      Front-end Node
      Front-end Node
      Front-end Node
      Front-end Node
      Gateway
      Gateway
      Admin Portal
      Admin Portal
      7
      Backend Node
      Backend Node
      Backend Node
      SQL Server
      SQL Server
      SQL Server
      Mgmt. Services
      Mgmt. Services
      Mgmt. Services
      Fabric
      Fabric
      Fabric
    • Database Provisioning
      Gateway performs stateful TDS packet inspection
      Picks out subset of messages
      Parses out args for create database
      Makes entry into Gateway metadata catalog
      Unused replica set located and reserved
      Replica set (UserDB) is prepped for use
      Metadata catalog is updated
    • SQL Azure Database provisioning
      TDS Gateway
      1
      Front-end Node
      Protocol Parser
      TDS Session
      2
      3
      Gateway Logic
      Master Node
      Master Cluster
      Master Node Components
      4
      7
      5
      6
      8
      Backend Node 1
      Backend Node 2
      Backend Node 3
      SQL Instance
      SQL Instance
      SQL Instance
      SQL DB
      SQL DB
      SQL DB
      Scalability and Availability: Fabric, Failover, Replication, and Load balancing
      Scalability and Availability: Fabric, Failover, Replication, and Load balancing
    • SQL Azure Login Process
      Login request arrives at the Gateway
      Gateway locates MasterDb & UserDb replica sets
      Credentials are validated against MasterDb
      TDS session is opened to UserDB and requests are forwarded
    • SQL Azure Login Process
      TDS Gateway
      7
      1
      Front-end Node
      Protocol Parser
      TDS Session
      2
      6
      Gateway Logic
      Master Node
      Global Partition Map
      Master Node Components
      3
      8
      4
      5
      Backend Node 1
      Backend Node 2
      Backend Node 3
      SQL Instance
      SQL Instance
      SQL Instance
      SQL DB
      SQL DB
      SQL DB
      Scalability and Availability: Fabric, Failover, Replication, and Load balancing
      Scalability and Availability: Fabric, Failover, Replication, and Load balancing
    • Service Resilience
      Provisioning
      State machines used to coordinate activities across node (and datacenter) boundaries
      Failed provisioning attempts cleaned automatically after 10 minutes
      Login
      Failovers during the login will be transparent (<30 seconds)
      Metadata catalog refresh occurs automatically
      Active Session
      Surface as connection drops (due to state)
    • Monitoring Service Health
      Metrics
      Cluster wide performance counters gather key metrics on the service
      Used to alert Operations to issues before they become a problem
      Early warning system
      Code issues
      Capacity warnings
      Health
      Exercises the service routinely looking for problems
      When issues are encountered runs deep diagnostics
      Network connectivity at the node level
      Validate all dependent services (Live DNS, Live ID, etc)
      Monitoring from other MSFT DC’s
      Validates accessibility from multiple geographic locations
      Alerts fired automatically when test jobs fail
    • Security/Attack Considerations
      Service
      Secure channel required (SSL)
      Denial Of Service trend tracking
      Packet Inspection
      Server
      IP allow list (Firewall)
      Idle connection culling
      Generated server names
      Database
      Disallow the most commonly attacked user id’s (SA, Admin, root, guest, etc)
      Standard SQL Authn/Authz mode
    • What’s New In SQL Azure CTPEnhancements
      SQL Azure Database
      Windows Azure Platform – Developer Portal
      Enhanced user experience and reporting
      Database manager for SQL Azure
      SQL Azure Reporting CTP
      Reporting and BI on SQL Azure databases
      Based on SQL Server Reporting Services
      SQL Azure Data Sync CTP2
      Synchronize SQL Azure databases
      Synchronize SQL Azure with on-premises SQL Server
    • What’s New In SQL Azure CTPEnhancements
      SQL Azure Database
      Windows Azure Platform – Developer Portal
      Enhanced user experience and reporting
      Database manager for SQL Azure
      SQL Azure Reporting CTP
      Reporting and BI on SQL Azure databases
      Based on SQL Server Reporting Services
      SQL Azure Data Sync CTP2
      Synchronize SQL Azure databases
      Synchronize SQL Azure with on-premises SQL Server
    • What’s New In SQL Azure CTPEnhancements
      SQL Azure Database
      Windows Azure Platform – Developer Portal
      Enhanced user experience and reporting
      Database management
      SQL Azure Reporting CTP
      Reporting and BI on SQL Azure databases
      Based on SQL Server Reporting Services
      SQL Azure Data Sync CTP2
      Synchronize SQL Azure databases
      Synchronize SQL Azure with on-premises SQL Server
    • SQL Azure Reporting CTP
      Features:
      Based on SQL Server Reporting Services
      Interactive and tabular reporting
      Data visualizations: charts, graphs, mapping, gauges
      SQL Azure Database data sources
      Utilizes BI Developer Studio (free) to author reports
      Export to Excel, PDF, CSV formats
      Core scenarios:
      Operational reporting on SQL Azure data
      Embed reports into Windows Azure or on-premises applications
       
      Web Role
      Reporting
      “Introduction to SQL Azure Reporting”
    • What’s New In SQL AzureEnhancements
      SQL Azure Database
      Windows Azure Platform – Developer Portal
      Enhanced user experience and reporting
      Database management
      SQL Azure Reporting CTP
      Reporting and BI on SQL Azure databases
      Based on SQL Server Reporting Services
      SQL Azure Data Sync CTP2
      Synchronize SQL Azure databases
      Synchronize SQL Azure with on-premises SQL Server
    • SQL Azure Data Sync CTP2
      Elastic Scale
      Service scales as resources requirements grow
      No-Code Sync Configuration
      Easily define data to be synchronized
      Schedule Sync
      Choose how often data is synchronized
      Conflict Handling
      Handle issues where same data is changed in multiple locations
      Logging and Monitoring
      Administration capabilities for tracking data and monitoring potential issues
      CTP 1
      CTP 2
      “Introduction to SQL Azure Data Sync”
    • SQL Azure Data Sync – A Closer LookCTP 2
      On Premises
      Windows Azure
      Data Sync Service
      Local Agent
      Sync Orchestrator
      Sync Orchestrator
      HTTPS
      SQL Server Sync Provider
      SQL Server
      Proxy Provider
      SQL Server
      Provider
      TDS
      SQL Server
      SQL Azure
    • SQL Azure Data Sync – Example Use Cases
      Move workloads in stages preserving existing infrastructure
      Move part of the application and sync its data
      Meet compliance and regulations
      Control data synchronized off-premises
      Enable scale-out read or read/write
      Multiple synchronized databases for scalability
      Preserve data – geo replication of data
      Enable new scenarios
      Spanning enterprise, cloud and remote offices/retail stores
    • SQL Azure Data Sync – Roadmap
      SQL Azure Database
      Now
      Sync
      Sync
      Data Sync Service For SQL Azure
      Remote Offices
      Retail Stores
      Sync
      Sync
      Sync
      Sync
      Sync
      CTP2 – End of CY10
      On-Premises (Headquarters)
    • New SQL Azure Usage Scenarios
      Fully featured
      Windows Azure Platform
      Application
      Data Sync
      Web Role
      Reporting
    • New SQL Azure Usage Scenarios
      Fully featured
      Windows Azure Platform
      Application
      Globally available,
      cloud & on-premises
      data synchronization
      Data Sync
      Data Sync
      Geo-replication of data across Windows Azure Platform datacenters
      Web Role
      Reporting
      Corporate Office
      Branch Office or Retail
      Datacenter
      Synchronize multiple on-premises SQL Server databases in different locations
    • Roadmap
      Now
      Visit www.microsoft.com/sqlazure to register for upcoming CTP access
      2010
      New Windows Azure Developer Portal; Database Manager
      Limited CTPs of Data Sync CTP2, Reporting CTP
      Watch for PDC Announcements; visit the SQL Azure blog and website
      2011
      Backup & Restore
      SQL Azure Reporting
      SQL Azure Data Sync
    • Windows Azure AppFabricInfrastructure in the cloud
      Service Bus
      Access Control
      SQL Azure
      Applications
      ?
      Windows Azure AppFabric
      Windows Azure
      Applications
      Others
      Windows
    • Service Bus
      3) Discover Service Bus endpoint
      1) Register service endpoint
      Registry
      2) Expose Service Bus endpoint
      5) Invoke operation on service endpoint
      4) Invoke operation on Service Bus endpoint
      Client
      (On-premises or cloud)
      WCF Service
      (On-premises)
      Service Bus
      Access Control
      Illustrating Service Bus
    • Windows Azure Platform PricingA summary (in US dollars)
      Compute: $0.12 to $0.96/hour for each role instance depending on instance size
      Storage:
      Windows Azure blobs and tables:
      Data: $0.15/GB per month
      Access: $0.01/10,000 operations
      SQL Azure relational:
      $9.99/month per GB
      Bandwidth:
      Americas/Europe: $0.10/GB in, $0.15/GB out
      Asia/Pacific: $0.30/GB in, $0.45/GB out
    • Service Level AgreementsKey points: Windows Azure compute
      When you deploy two or more role instances in different fault and upgrade domains, your Internet-facing roles will have external connectivity at least 99.95% of the time
      Microsoft will detect within two minutes when a role instance’s process is not running and initiate corrective action
    • Service Level AgreementsKey points: Windows Azure storage
      At least 99.9% of the time, Microsoft will successfully process correctly formatted requests to add, update, read and delete data
      At least 99.9% of the time, your storage accounts will have connectivity to Microsoft’s Internet gateway
    • Service Level AgreementsKey points: SQL Azure database
      SQL Azure will maintain a Monthly Availability of 99.9% during a calendar month. Monthly Availability percentage for a specific customer database is the ratio of the time the database was available to customer to the total time in a month. An interval is marked as unavailable if the customer’s attempts to connect to a database are rejected by the SQL Azure gateway.
    • Using the Windows Azure Platform: Scenarios
    • Applying Azure (1)Some characteristics of Azure-appropriate applications
      Apps that need massive scale
      Example: A Web 2.0 application
      Apps that need high reliability
      Example: A Software as a Service (SaaS) application
      Apps with variable load
      Example: An on-line ticketing application
      Apps with a short or unpredictable lifetime
      Example: An app created for a marketing campaign
    • Applying Azure (2)Some characteristics of Azure-appropriate applications
      Apps that do parallel processing
      Example: A financial modeling application
      Apps that must fail fast or scale fast
      Example: Start-ups
      Apps that don’t fit well in an organization’s data center
      Example: A business unit that wishes to avoid its IT department
      Apps that can benefit from external storage
      Example: An application that archives data
    • Building on AzureA non-Azure app using Windows Azure storage
      Blobs
      SQL Azure
      On-Premises or Hosted Application
    • Building on Azure A massively scalable web app exposed on the public Internet
      Tables
      Web Role
      Instance
      Users
    • Building on Azure A massively scalable web app with background processing
      Tables
      Blobs
      Queues
      Web Role
      Instance
      Worker Role
      Instance
      Users
    • Building on Azure A web app with relational storage
      SQL Azure
      Web Role
      Instance
      Users
    • Building on Azure A web app using cloud and on-premises data
      SQL Azure
      Web Role
      Instance
      Service Bus
      On-premises Database
      Users
    • Building on Azure A parallel processing application
      Blobs
      Queues
      Worker Role
      Instance
      Web Role
      Instance
      User
    • The Windows Azure Platform
      Developer Experience
      Use existing skills and tools.
      platform
      Relational data
      Management
      AppFabric
      Compute
      Storage
      Management
      CDN
      Connectivity
      Access control
    • Conclusions
      Cloud platforms are here
      Microsoft is placing a big bet with the Windows Azure platform
      A new world is unfolding
      Prepare to be part of it
    • Related Content
      Comunidad Windows
      http://comunidadwindows.org
      http://www.slideshare.net/ecastrom
      http://ecastrom.blogspot.com
      Introducing the Windows Azure Platform
      http://go.microsoft.com/fwlink/?LinkId=158011
      Introducing Windows Azure
      http://go.microsoft.com/?linkid=9682907
    • Presentation SourcesResources
      SQL Azure website:
      http://www.microsoft.com/sqlazure
      Blog:
      http://blogs.msdn.com/sqlazure
      Dev Center:
      http://msdn.microsoft.com/windowsazure/sqlazure
      Frameworks:
      http://msdn.microsoft.com/data
    • An Introduction to the Windows Azure Platform
      Dr. Eduardo Castro Martínez
      Microsoft MVP
      ecastro@mswindowscr.org
      http://comunidadwindows.org
      http://ecastrom.blogspot.com
    • © 2010 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.