SlideShare una empresa de Scribd logo
1 de 108
Descargar para leer sin conexión
A lap around the Seattle’s Clouds
                  (and there are a lot of them ☺ )


Stefano Paluello
stefano.paluello@pastesoft.com
http://stefanopaluello.wordpress.com
Twitter: @palutz
Agenda
• Cloud Computing Overview
• Welcome “Windows Azure Platform”
• Windows Azure Computing
  – Role Programming Model
  – Windows Azure Storage
  – Windows Azure Connect
• SQL Azure
• Azure App Fabric
• Windows Azure Development
What is the “Cloud Computing”?
• Cloud Computing represents a pattern
  of IT operation, from infrastructure to
  applications, using services.
• Microsoft thinks of the cloud as simply
  an approach to computing that enables
  applications to be delivered at scale
  for a variety of workloads and client
  devices.
Why do we need the Cloud?

                                       Allocated      Load
                                     IT-capacities   Forecast
                   Not Enough
                     Power
IT CAPACITY




              Too Much
               Power




                           Actual Load


                                         TIME
Load
                        No screaming          Capacity on     Forecast
                         customers             Demand
         IT CAPACITY




                       No capital                           Knob goes
                       laying idle                             up...
                                                              And...
                                                              down
Lower Capex
                                     Actual Load


                                                   TIME
Cloud Services



      “IaaS”                    “PaaS”                 “SaaS”
Infrastructure-as-a-Service   Platform-as-a-Service   Software-as-a-Service
        host                        build                consume
Cloud services
             Packaged                      Infrastructure                                      Platform                             Software
             Software                        (as a Service)                                    (as a Service)                       (as a Service)



             Applications                    Applications                                      Applications                         Applications




                                                                                  You manage
                 Data                            Data                                              Data                                 Data
                              You manage



               Runtime                         Runtime                                           Runtime                              Runtime




                                                                                                                                                     Managed by vendor
             Middleware                      Middleware                                        Middleware                           Middleware




                                                                                                                Managed by vendor
You manage




                 O/S                              O/S         Managed by vendor                    O/S                                   O/S


             Virtualization                  Virtualization                                    Virtualization                       Virtualization


                Servers                         Servers                                           Servers                              Servers


               Storage                         Storage                                           Storage                              Storage


             Networking                      Networking                                        Networking                           Networking
Who are the “players”?
Cloud Services                              Players
     IaaS        Vmware vCloud (ESX,Vcenter), AmazonWebServices, Microsoft
                 (Dynamic Data Center Toolkit for Hosters), GoGrid, Rackspace,…
    PaaS         Microsoft Windows Azure, Google AppEngine, Force.com,…
    SaaS         Microsoft BPOS, Salesforce.com,Google Docs,LotusLive,…



• Common services:
  – Resource pooling, Elasticity, Pay-per-use,
    On-demand self-service, Measured
    service, Broad network access
What are the differences?
       On-Premise                     Hosting                      Cloud
• Manage all on your own      • Rent HW, SW & network     • Shared multi-tenant
  server farm (electricity,   • Less control and            infrastructure
  network, hw, sw..)            responsibility than On-   • Resource pooling
• Full control &                Premise                   • On-demand self-service
  responsibility              • More flexible             • Elasticity, network
• Fixed capacity              • Less investment than        independent
• High initial investment       On-Premise                • Measured services
                              • Fixed cost with fixed     • Pay-per-use
                                capacity also when the
                                server aren’t working
Welcome…
Windows Azure Platform
Windows Azure Data Centers




        6 Datacenters across 3 continents
    Windows Azure Platform available in 41 countries
Windows Azure Compute




• O.S. for the Cloud:
  – Run apps in the Cloud, Provide Storage, App
    Management, Developer SDK
• Windows Azure best fits for app needing:
  – Scalability, Availability, Fault Tolerance & Load
    Balancing
Windows Azure “internals”
                                            Business Portal




                                           Developer Portal
                                                                                 User Code

            REST                     Service Management Service
                                                                                 Runtime
                                                                                   API
                   Storage Cluster




                                                      Compute Cluster
                                     …                                  …        VM Setup

 VS Tools




                                                                            …
                                                                                Cloud VM
 WA SDK
            REST

Desktop                                  MSFT Datacenters
Hierarchy in Windows Azure
• Subscription
  – contains a collection of Services (up to 6), determines the
    billing model (with standard, discounted or bundled charges)
• Services
  – Isolation boundary with a public URL, composed by Roles (up
    to 5), defined in the Service Model
• Roles
  – Defined in the Service Model (VM size, Communications
    endpoints, Storage Resources, etc.), at run-time a Role can
    execute up to 20 Instances per Subscription
• Instances
  – Set of code and data deployed in a VM
Windows Azure Roles
         Windows Azure supported roles :
         • Web role – is a role that is customized for
            web application programming as
            supported by IIS 7 and ASP.NET.
         • Worker role – is a role that is useful for
            generalized development, and may
            perform background processing for a
            web role.
         • VM role – is a special type of role that
            enables you to define the configuration
            & updates of the OS for the VM.
         Features available:
         • Remote desktop connection
         • Communication between role instances
         • The role instances in a hosted service
            communicate through internal and
            external connections
         • Warm-up tasks
Windows Azure Roles
Windows Azure Architecture
                             The Internet
                         The Internet via TCP or HTTP



        L                                                     L
        B                              L                      B
                                       B

                                    Queues
    Web Site
                                                        Worker
                                                          Worker
                                                         Worker
   Web Site
  WebASMX, WCF)
         Role
  (ASPX,
  (ASPX, ASMX, WCF)                                      Role
                                                          Service
                                                         Service
   IIS as Host                                            Managed
                                                        Interface Call
                                             Blobs
                          Tables   Storage


                      Windows Azure Data Center
Packaging and Config
• Windows Azure Services are described
  by two important files:
  – Service Definition (*.csdef)
  – Service Configuration (*.cscfg)
• Your code is zipped and packaged with
  definition (*.cspkg)
  – Encrypted(Zipped(Code + *.csdef)) == *.cspkg
• Windows Azure consumes just *.cspkg +
  *.cscfg
Hello Windows Azure

DEMO
Role Programming Model
• Inherits RoleEntryPoint
• OnStart() Method
  – Called by Fabric on startup, allows you to perform
    initialization tasks.
  – Reports Busy status to load balancer until you return
    true.
• Run() Method
  – Main logic is here – can do anything, typically infinite
    loop. Should never exit.
• OnStop() Method
  – Called when role is to be shutdown, graceful exit.
  – 30 Seconds to tidy up
Role Lifecycle
• All Roles MAY extend RoleEntryPoint
• Role instances raise events when their status is
  changed (managed by the RoleEnvironment class)
Windows Azure Web & Worker Roles

•   Windows Server 2008 x64 (R2 coming soon)
•   .NET Framework – 3.5 SP1 and 4.0
•   Native Code, PHP, Java, etc.
•   Supports Full Trust today
•   Fabric manages role lifecycle

         Worker Role                             Web Role
     Role is an executable                 Role is hosted on IIS
        Create your own web server, host   HTTP/HTTPS
        a database, background op., etc
                                           ASP.NET, MVC
     Inbound on
                                           Fast CGI + PHP
        Any TCP Port
        HTTP/HTTPS
Full IIS
• Web Roles previously using Hosted Web Core
   – Only supports a single HTTP or HTTPS endpoint
• Web Roles now supporting Full IIS 7.0/7.5
• Enables new scenarios
   –   Multiple IIS web sites
   –   Multiple virtual directories
   –   Configure IIS extensions
   –   Web Deploy for rapid development
Full IIS Scenario (best case ☺ )
Phase                             Key Steps
Local Development                 •   Use Visual Studio solution to code & deploy to
                                      Compute Emulator
                                  •   Edit local content files without redeploying to
                                      Compute Emulator
First-time Publish                •   Deploy service to Windows Azure
(~10 Min)                         •   Ensure Windows Azure service definition (csdef/cscfg) configures
                                      Web role:
                                        • To enable remote WMSVC, WebDeploy, PowerShell, etc.
                                        • As single instance
Iterative Development (seconds)   •   Continue coding in same Visual Studio solution
                                  •   Push intermittent changes (e.g. w/ Web Deploy)
Deployment of Final Version       • Deploy service to Windows Azure
(~10 Min)                         •   Note: If service is now multi-instance, Remote Desktop can be used, but other remote
                                      mgmt. tools will get load- balanced to arbitrary instances.
                                      Mitigation: Run mgmt. tools inside Remote Desktop session
VM Role
• Developers have full control over the
  OS image

• Ability to upload your own customized
  WS08R2 Enterprise images

• Operators can reboot, re-image and
  Remote Desktop
VM Role Lifecycle
  Build VM       • Convert product DVD to a VHD, or use existing VHD
   Image         • Prepare the VHD


Create Service   • Create a service model with the above image.


Upload Image     • Store VHD in Windows Azure blob storage

                 • Include in service model. Specify instance count.
Deploy Service   • Package as cspkg, upload cskpg.

  Maintain       • Remote Desktop
  Service        • Reboot / Reimage

  Upgrade        • Repeat above steps, with a new OS image.
  Service
VM Role Lifecycle
                                                                        Identical/similar deployment
                                                                               instances using
                                                                        common uploaded OS image
                                      Base.VHD                             (base.VHD + diff.VHD)



& Additional Software
& Windows Azure Integration Components
 - Agent                                                            Blob
 - Runtime Interface (topo, config, shutdown notification, …)     Storage
 - Remote Desktop configurator
 - Diagnostics                          Boot VHD
 - Windows Azure Drives driver
 - Windows Azure Connect
& Generalize (Recommended)


                             Customize                 Save
                               VHD                   Diff.VHD

                                           On-Premises          Cloud
VM Role – Service definition

<ServiceDefinition name="MyVMRoleService" xmlns="…">
  <VirtualMachineRole name="MachineRole" vmsize="Medium">
    <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
      <Import moduleName="Diagnostics" />
    </Imports>
  </VirtualMachineRole>
</ServiceDefinition>
VM Role – Service configuration
<ServiceConfiguration serviceName="MyVMRoleService" xmlns="…">
   <Role name="MachineRole">
     <OsImage href="20101020BaseVM.vhd" />
     <Instances count="2" />
     <ConfigurationSettings>
       <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
value="DefaultEndpointsProtocol=http;AccountName=mohittest;AccountKey=JEBzeqFeP1g==" />
       <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true"
/>
       <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername"
value="" />
       <Setting
name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="" />
       <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration"
value="2012-07-23T23:59:59.0000000-07:00" />
       <Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled"
value="true" />
     </ConfigurationSettings>
     <Certificates>
       <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"
thumbprint="195FD938F86D8785FF53C660BCBD283819E0271A" thumbprintAlgorithm="sha1" />
     </Certificates>
   </Role>
</ServiceConfiguration>
VM Role Q&A
• Will any WS08 R2-based application work?
  – No, VM Role inherits some Web/worker restrictions:
     • SLA requires at least two identical/similar instances
     • No durability of OS image on hardware failure
     • One public IP per service (unless using Windows Azure
       Virtual Network)

• Does Windows Azure take care of *everything*?
  – No
     • With VM Role, the customer creates & maintains the OS
     • Windows Azure does not automatically understand the
       health of the applications running in our VM
  – But, since you deploy services instead of individual
    VM’s, Windows Azure does automate many
    management tasks.
Remote desktop Config
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="RemoteAccess"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WorkerRole name="GatewayRole">
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" />
    </ConfigurationSettings>
    <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
  </WorkerRole>
  <WorkerRole name="TargetRole">
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" />
    </ConfigurationSettings>
    <Imports>
      <Import moduleName="RemoteAccess" />
    </Imports>
  </WorkerRole>
</ServiceDefinition>
Remote desktop Config
<Role name="WorkerRole1">
   <Instances count="1" />

    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled"
value="true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername"
value="myuser" />
      <Setting
name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword"
value="[base64]" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration"
value="2010-06-16T13:04:02.9666425-07:00" />
    </ConfigurationSettings>

    <Certificates>
      <Certificate
name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordCertificate"
thumbprint="c0c23e1cdd7bfb20c14dce97b37ea67bd9f24918" thumbprintAlgorithm="sha1" />
    </Certificates>

</Role>
And… you’re connected ☺
Windows Azure: VM Size
   • Windows Azure
        – Supports Various VM Sizes
        – Size set on Role in Service Definition
        – Service can have multiple roles
        – Balance of Performance per node vs. High Availability from
          multiple nodes
        – Set in Service Model definition
          All instances of role will be of equal size

Size            CPU Cores       RAM             Local Storage   Cost
Extra Small     Shared          768M            20GB            .05
Small           1               1.7GB           250GB           .12
Medium          2               3.5GB           500GB           .24
Large           4               7GB             1000GB          .48
Size            CPU Cores       RAM             Local Storage   Cost
How to choose VM size
• Don’t just throw big VMs at every problem
• Scale out architectures have natural
  parallelism
• Big VMs allow us to Scale UP on a single
  machine.
• Test various configurations under load
• More small instances == more redundancy
• Some scenarios will benefit from more cores
  (E.g. Video processing, …)
Windows Azure Networking
• 3 types of Endpoints in Windows Azure
  – Input (VIP)
  – Internal
  – Windows Azure Connect
• Specify Connectivity Rules in Service
  Definition
  – NetworkTrafficRules
• Port Ranges
• Local Ports
• TCP only
Local Storage != W.A. Storage
• Role instances have available disk storage
• Use LocalStorage element in service
  definition
  – Name
  – CleanOnRoleRecycle
  – Size
• Persistent but not guaranteed durable
  – Good for cached resources
• Windows Azure Storage Drives provide
  guaranteed durable storage
Local Storage How To
• Config




• Code
Windows Azure Storage
Windows Azure Storage
• Tables                         • Blobs
   – Table = group of entities      – Large binary storage
   – Entity = name/value pairs      – Stored in container
   – Partitioned by key                • Unlimited containers
      • Scale out to Bns of            • CDN Deliverable
        entities                       • Partitioned by Blob name
   – Not an RDBMS                • Drives
• Tables                            – NTFS VHD mounted into
   – Table = group of entities        Compute instance
   – Entity = name/value pairs         • Read/Write 1:1
   – Partitioned by key                • Read only 1:N
      • Scale out to Bns of         – Backed by Page Blob
        entities                    – Cannot remotely map
   – Not an RDBMS
Windows Azure Storage Recap
• Blobs – Simple named files along with
  metadata for the file
• Drives – Durable NTFS volumes for Windows
  Azure applications to use. Based on Blobs.
• Tables – Structured storage. A Table is a set
  of entities; an entity is a set of properties
• Queues – Reliable storage and delivery of
  messages for an application
Blob Storage
  http://<account>.blob.core.windows.net/<container>/<blobname>


                                                        Pages/
Account        Container               Blob
                                                        Blocks
                                    PIC01.JPG
                  images                                Block/Page
                                    PIC02.JPG
contoso                                                 Block/Page
                  videos             VID1.AVI
Blob Containers
• Multiple Containers per Account
  – Special $root container
• Blob Container
  –   A container holds a set of blobs
  –   Set access policies at the container level
  –   Associate Metadata with Container
  –   List the blobs in a container
       • Including Blob Metadata and MD5
       • NO search/query. i.e. no WHERE MetadataValue = ?
• Blobs Throughput
  – Effectively in Partition of 1
  – Target of 60MB/s per Blob
Blob Details
• Main Web Service Operations
   – PutBlob,GetBlob,DeleteBlob,CopyBlob,SnapshotBlob,LeaseBlob
• Associate Metadata with Blob
   – Standard HTTP metadata/headers (Cache-Control, Content-Type, etc)
   – Metadata is <name, value> pairs, up to 8KB per blob
   – Either as part of PutBlob or independently
• Blob always accessed by name
   – Can include ‘/‘ or other delimeter in name
• Large lists of blobs can be paginated

      http://adventureworks.blob.core.windows.net/
      Products/Bikes/FastBike.jpg
      Products/Canoes/Whitewater.jpg
      Products/Canoes/Hybrid.jpg
      Products/Tents/PalaceTent.jpg
Two types of Blob
• Block Blob
  – Targeted at streaming workloads
  – Each blob consists of a sequence of blocks
     • Each block is identified by a Block ID
  – Size limit 200GB per blob
  – Optimistic Concurrency via ETags
• Page Blob
  – Targeted at random read/write workloads
  – Each blob consists of an array of pages
     • Each page is identified by its offset from the start of the blob
  – Size limit 1TB per blob
  – Optimistic or Pessimistic (locking) concurrency via Leases
Windows Azure Drives
• Durable NTFS volume for Windows Azure Instances
  – Use existing NTFS APIs to access a network attached
    durable drive
  – Use System.IO from .NET
• Benefits
  – Move existing apps using NTFS more easily to the cloud
  – Durability and survival of data on instance recycle
• A Windows Azure Drive is a NTFS VHD Page Blob
  – Mounts Page Blob over the network as an NTFS drive
  – Local cache on instance for read operations
  – All flushed and unbuffered writes to drive are made durable
    to the Page Blob
Windows Azure Drives Details
• Operations performed via Drive API not REST
  Calls
• Operations on Drives
  – CreateDrive
     • Creates a new NTFS formatted VHD in Blob storage
  – MountDrive/UnmountDrive
    MountDrive/
     • Mounts a drive into Instance at new drive letter
     • Unmounts a drive freeing drive letter
  – Get Mounted Drives
     • List mounted drives; underlying blob and drive letter
  – Snapshot Drive
     • Create snapshot copy of the drive
Table Storage

Account         Table        Entity

                             Name =…
                             Email = …
                customers
                             Name =…
                            EMailAdd= …
 contoso
                            Photo ID =…
                              Date =…
                 photos
                            Photo ID =…
                              Date =…
Table Details
• Not an RDBMS!
  More on table modeling in Storage Strategies session
• Table
   – Create, Query, Delete
   – Tables can have metadata
• Entities
   – Insert
   – Update
      • Merge – Partial update
      • Replace – Update entire entity
   – Delete
   – Query
   – Entity Group Transactions
      • Multiple CUD Operations in a single atomic transaction
Table Storage Entities
• Entity can have up to 255 properties
     • Up to 1MB per entity
• Mandatory Properties for every entity
     •   PartitionKey & RowKey (only indexed properties)
     •   Uniquely identifies an entity
     •   Defines the sort order
     •   Timestamp
     •   Optimistic Concurrency. Exposed as an HTTP ETag
• No fixed schema for other properties
     •   Each property is stored as a <name, typed value> pair
     •   No schema stored for a table
     •   Properties can be the standard .NET types
     •   String, binary, bool, DateTime, GUID, int, int64, and double
PartitionKey How To
• Entity Locality
   – Entities in the same partition will be stored together
          – Efficient querying and cache locality
          – Endeavour to include partition key in all queries
• Entity Group Transactions
   – Atomic multiple Insert/Update/Delete in same partition in a
     single transaction
• Table Scalability
      • Target throughput – 500 tps/partition, several thousand
        tps/account
   – Windows Azure monitors the usage patterns of partitions
   – Automatically load balance partitions
          – Each partition can be served by a different storage node
          – Scale to meet the traffic needs of your table
Queue Storage
Account            Queue             Message


                                    customer ID
                                    order ID
                                    http://…
adventureworks   order processing

                                    customer ID
                                    order ID
                                    http://…
Lousely Coupled Workflow with Queues
•   Enables workflow between roles
     – Load work in a queue (Producer can forget about message once it is in queue)
     – Many workers consume the queue
     – For extreme throughput (>500 tps)
         • Use multiple queues
         • Read messages in batches
         • Multiple work items per message




                              Input Queue (Work Items)
                                         Queue
Queue’s Reliable Delivery
• Guarantee delivery/processing of messages
  (two-step consumption)

  – Worker Dequeues message and it is marked as
    Invisible for a specified “Invisibility Time”
  – Worker Deletes message when finished
    processing
  – If Worker role crashes, message becomes visible
    for another Worker to process

  – More on this pattern in the Async Workloads
    session
Windows Azure Connect
•   Secure network connectivity
    between on-premises and cloud
    – Supports standard IP protocols
                                        Windows Azure
•   Example use cases:
    – Enterprise app migrated to
      Windows Azure that requires
      access to on-premise SQL Server
    – Windows Azure app domain-joined
      to corporate Active Directory
    – Remote administration and
      trouble-shooting of Windows
      Azure Roles

•   Simple setup and management


                                             Enterprise
Windows Azure Service Deployment
•   To use Connect with a WA service, enable one or more
    of its Roles
    – For Web & Worker Role, include the Connect plug-in as part of
      Service Model (.csdef file)
    – For VM role, install the Connect agent in VHD image using the
      Connect VM install package
    – Connect agent will automatically be deployed for each new
      role instance that starts up

•   Connect agent configuration managed through the
    ServiceConfiguration (.cscfg) file
    – One required setting - “ActivationToken”
       • Unique per-subscription token, accessed from Admin UI
    – Optional settings for managing AD domain-join and service
      availability
On-Premise Deployment
•   Local computers are enabled for connectivity by installing &
    activating the Connect agent
    – Web-based installation link
         • Retrieved from admin UI
         • Contains per-subscription activation token embedded in URL
    – Standalone install package
         • Reads activation token from registry key
         • Enables installation using existing S/W distribution tools
•   Connect agent tray icon & client UI
    – View activation state & connectivity status
    – Refresh network policy
•   Connect agent automatically manages network connectivity
    –   Sets up virtual network adapter
    –   “Auto-connects” to Connect relay service as needed
    –   Configures IPSec policy based on network policy
    –   Enables DNS name resolution
    –   Automatically syncs latest network policies
Windows Azure Connect
                                Windows Azure
                    Role A                          Role B
               Instance3
                 Instance2                      Instance3
                                                  Instance2
                    Instance                         Instance




                             My Servers                          My Laptops


SERVER1

                                                DEV_LAPTOP1
          SERVER2              SERVER3                          DEV_LAPTOP2
SQL Azure Database
Architecture
• Shared infrastructure at SQL
  database and below
  – Request routing, security and isolation
• Scalable HA technology provides the
  glue
  – Automatic replication and failover
• Provisioning, metering and billing
  infrastructure
Database Replicas
           Replica
             1


           Replica
   DB        2


           Replica
             3


           Replica
             4
Behind the scenes…
                                         Applicatio            Apps use standard SQL client
                                             n                 libraries: ODBC, ADO.Net, PHP, …

                                          Internet


                                                             Load balancer forwards ‘sticky’
                                  TDS (tcp)   LB             sessions to TDS protocol tier


TDS (tcp)


        Gateway      Gateway       Gateway           Gateway      Gateway      Gateway

 Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to backend SQL
TDS (tcp)


SQL               SQL              SQL                 SQL              SQL              SQL

       Scalability and Availability: Fabric, Failover, Replication, and Load balancing
SQL Azure Compatibility
Currently supported            Not Currently Supported
• Tables, indexes and views    • Data Types
• Stored Procedures               – XML, Sparse Columns,
• Triggers                          Filestream
• Constraints                  • Partitions
• Table variables,             • Full-text indexes
  session temp tables (#t)     • SQL-CLR
• Spatial types, HierarchyId




           Tables require clustered indexes
SQL Azure: Performance & Scalability




Database Design        Capacity                   Latency                Concurrency              Scalability
• Table design         • Size limits              • Redundancy           • Replication            • Scale-up
• Index design           • Partitioning (shard)     • Replica overhead     • SQL Azure Data         • Not an option
• Query design                                    • Distance                 Sync                 • Scale-out
• Transaction design                                • Affinity Groups    • Partitioning (shard)     • Partitioning (shard)
                                                    • SQL Azure Data                                • SQL Azure Data
                                                      Sync                                            Sync
                                                    • Sync Fx
SQL Azure Database Editions
• Two SQL Azure Database SKUs: Web & Business
   – Web Edition: 1 GB @ $9.99/month | 5 GB @ $49.95/month
   – Business Edition: Up to 50 GB @ $99.99/10 GB/month
     10 GB @ $99.99 | 20 GB @ $199.98 | 30 GB @ $299.97 | 40 GB @ $399.96 | 50 GB @
     $499.95

• You specify Web or Business Edition
   – Web: EDITION = web
   – Business: EDITION = business
• You specify MAXSIZE
   – Web: MAXSIZE = 1GB | 5GB
   – Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB
      • This is the maximum size we will not let you grow beyond
      • You will only be charged for the actual peak size in any one day
         rounded up
       • For example, a 3.4 GB Web Edition will be charged 5GB rate.
      CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB);
      CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB);
      ALTER DATABASE foo2 MODIFY (EDITION='web', MAXSIZE=5GB);
SQL Azure Reporting V1
                              Reporting Services                 SQL Azure Reporting
Tooling                   -  Business Intelligence Design    -  Business Intelligence Design
                             Studio (BIDS)                      Studio (BIDS)
                          - Report Builder                   - Report Builder*
Supported data sources      Diverse data sources               SQL Azure databases
Report Management             Report Manager or SharePoint       Windows Azure Developer
                          -    display reports                   Portal
                          -    rendering to multiple             URL browsing
                               formats
                          -    subscriptions
                          -    scheduled delivery
Developer Extensibility       Custom data sources,               Extensibility is not yet enabled
                              assemblies, report items,
                              authentication, etc.

Security Model                Windows Authentication             SQL Azure
                                                                 Username/password
SQL Azure Data Sync
• 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
SQL Azure Data Sync
                                         On-Premises   Cloud   Offline
• Geo-replication of SQL Azure data                            Clients
  and spanning on-premises with cloud
   – CTP1 released in June with
     geo-replication
   – CTP2 to be released Q4CY10;
     adds sync between SQL Server and
     SQL Azure
• Builds on Sync Framework
   – Sync data between SQL Azure, SQL Compact and SQL Server
   – Sync Fx 2.1 RTW on August 18th
   – Next version enables sync for offline clients
Sync Framework
                                                    Sync smarts on
                       Easy to develop the
                                                     server, not on
                         sync endpoints
                                                         client


                                         SyncFx
                            Sync
         Client API       Endpoint
          support                       Auth /
                              s
                                       Mgmt / Bus
                                         Logic             SQL Azure


     Simple protocol
     (OData& Sync)         WindowsAzu
                               re
            Sync


                                         SyncFx
                            Sync
                          Endpoint
                                        Auth /
                              s
                                       Mgmt / Bus
                                         Logic            SQL Server

 Minimal client &
      store
  requirements
                           Windows Server
                                / IIS
Windows Azure AppFabric
Fabric Controller = Cloud OS Kernel
        My App                 My App

     Windows Server        Windows AZURE

         Security              Security

      Management             Management

         Kernel            Fabric Controller

      Task scheduler         Task scheduler

   HW abstraction layer   HW abstraction layer
Windows Azure AppFabric
• Comprehensive building block services for
  developing, deploying, and managing
  applications
• Higher level Platform-as-a-Service (PaaS)
  capabilities
• Increase developer productivity
• Bridge existing applications to the cloud
                          Windows Azure AppFabric
                                                             Composite App
  Caching   Service Bus       Access Control   Integration
                                                             (WF, WCF)
Caching Service
• A distributed, in-memory cache for
  applications running in Windows Azure
• Simple administration; end-user doesn’t
  bother with configuration, deployment, or
  management
• Highlight scalable solution with low
  latency and high throughput
• Based on Windows Server AppFabric
  Caching
Latency chart


   Memory



   Network



    Disk
Access Control
• Used to authenticate and authorize users
• Integration Single Sign On and
  centralized authorization into your web
  applications
• Standards-based identity providers
  – Enterprise directories (e.g. Active Directory
    Federation Server v2.0)
  – Web identities (e.g. Windows Live ID, Google,
    Yahoo!, and Facebook)
• V1 available in production; V2 available in
  AppFabric LABS
Access Control features
• Integrates with Windows Identity Foundation
  and tooling
• Claims-based access control
• Support for OAuth WRAP, WS-Trust, and WS-
  Federation protocols
• Support for the SAML 1.1, SAML 2.0, and
  Simple Web Token token formats
• Integrated and customizable Home Realm
  Discovery
• OData-based Management Service to ACS
  configuration
Service Bus
• Provides secure messaging and
  connectivity across different network
  topologies
• Enables hybrid applications that span
  on-premises and the cloud
• Enables various communication
  protocols and patterns for developers
  to engage in reliable messaging
Enabling hybrid applications
 Datacenter           Partner


 LOB app




 LOB web
  service
                     Mobile Device
Enabling hybrid applications
 Datacenter           Partner
              ACS
              SB
 LOB app




 LOB web
  service
                     Mobile Device
Enabling hybrid applications
 Datacenter           Partner
              ACS
              SB
 LOB app




 LOB web
  service
                     Mobile Device
Enabling hybrid applications
 Datacenter           Partner
              ACS
              SB
 LOB app




 LOB web
  service
                     Mobile Device
Enabling hybrid applications
 Datacenter           Partner
              ACS
              SB
 LOB app




 LOB web
  service
                     Mobile Device
WINDOWS AZURE
DEVELOPMENT
Moving apps to the Cloud
Compatible with    Designed for   Delivered as a
Windows Azure     Windows Azure     Service
Asp.Net in Azure
• Windows Azure Tools for Visual Studio pre-
  defined role templates
  – ASP.NET WebForms Role
  – ASP.NET MVC 2 Role
There are some differences…
Statelessness
– Load balancer round-robins requests
  in multi instance roles
– Follow web farm best practices
  • Do not store state on individual instances
  • Do not assume subsequent requests will
    hit the same instance
    – Don’t forget things like dynamically generated
      images loaded by a page
AJAX on Azure
• Client side calls may not return to the
  same instance the original page came
  from
• AJAX calls must be stateless
  – Don’t generate a page and leave state on the
    server to call via AJAX later
• All instances require the same
  MachineKey for ViewState hashing
  – Fabric uses same machine key for all
    instances in a role
Session State
Solutions to Session State
• Persist to Storage via Session State Provider
  –   Windows Azure AppFabric Caching
  –   SQL Azure
  –   Windows Azure Storage (only sample!)
  –   Custom (Memcached)
• Persist to Client
  – Use cookies
DNS
• All services get a *.cloudapp.net address
   – myservicename.cloudapp.net
   – TTL is 10 seconds
• Standard approach is to CNAME to *.cloudapp.net
   – Requires two DNS lookups
   – Limited caching due to low TTL
• IP Address for deployment is fixed for lifetime of that slot



              • Create service, deploy to staging slot
              • Resolve IP for yourapp.cloudapp.net
              • Create A Record for
                  • www.yourapp.com
                  • yourapp.com
Configuration Apps
• Store arbitrary configuration string values
  – Define in model
  – Populate in configuration
• RoleEnvironment
  – .GetConfigurationSettingValue()
• Don’t use web.config for values you wish
  to change at runtime
  – App/Web.config is packaged with deployment
    change requires re-deploy
  – *.cscfg supports change tracking and
    notification to running role instances
Handling Config changes
• RoleEnvironment.Changing
  – Occurs before configuration is changed
  – Can be cancelled – causes a recycle
• RoleEnvironment.Changed
  – Occurs after config change has been applied
• RoleEnvironmentConfigurationSettingCh
  ange
  – Provides config value that was changed
• RoleEnvironmentTopologyChange
  – When role count is changed
Monitoring Apps
• Monitoring is not Debugging
• Instrument your application using Trace, Debug
  – DiagnosticMonitorTraceListener
• Use Diagnostics API to Configure and Collect
  –   Event Logs
  –   Performance Counters
  –   Trace/Debug information (logging)
  –   IIS Logs, Failed Request Logs
  –   Crash Dumps or Arbitrary files
• Request data on demand or scheduled
  – Transferred into your table and/or blob storage
Monitoring is not free (             )
•   Monitoring vs Debugging/Troubleshooting
•   Volume of Data
•   Reaction Time
•   $ Cost
Troubleshooting
• Intellitrace – DVR for debugging
  – Requires VS Ultimate, .NET 4 today
• Remote Desktop
• Custom Trace Listener
Deployment Environments
• Two Environments to choose from
• Nearly Identical…
  – <servicename>.cloudapp.net
  – <deploymentID>.cloudapp.net
• VIP Swap between them
How to Upgrade App
• VIP Swap:
  – Uses Staging and Production environments.
  – Allows to quickly swap environments.
  – Production: v1    Staging: v2, after swap then
    Production: v2  Staging: v1.
• In-Place Upgrade
  –   Performs a rolling upgrade on live service.
  –   Entire service or a single role
  –   Manual or Automatic across update domains
  –   Cannot change Service Model
Deployment & Mgmt Tools
• Visual Studio
• CSManage.exe
• Windows Azure MMC
• Windows Azure Service Management
  (WASM) cmdlets
• 3rd Party tools
Web Deploy
• IIS Web Deployment Tool
• Simplifies the migration, management, and
  deployment of IIS Web servers, Web
  applications, and Web sites
• You’ll be able to do web deploy using
  standard IIS7 publishing from Visual Studio
• Will not require you to deploy an entire
  package
• Warning: use for development purposes
  only (!!!)
Windows Azure Service Management Cmdlets

• Set of PowerShell cmdlets
• Wraps Management REST
  API and Diagnostics API
• Enables building of
  sophisticated deployment
  scripts
• Works with rest of .NET
  CLR
Windows Azure MMC
• MMC Snapin providing
  graphical view of services,
  diagnostics, and storage
• Built on top of WASM
  Cmdlets
• Plugin-based, extensible
• Remotely configure
  diagnostics
• Download and view
  diagnostics
Windows Azure Overview

Más contenido relacionado

La actualidad más candente

Windows Azure UK Universities Bradford Uni
Windows Azure UK Universities Bradford UniWindows Azure UK Universities Bradford Uni
Windows Azure UK Universities Bradford UniLee Stott
 
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012Eric D. Boyd
 
Cloud Computing 101
Cloud Computing 101Cloud Computing 101
Cloud Computing 101Kamal Arora
 
Build the foundation for Private Cloud
Build the foundation for Private CloudBuild the foundation for Private Cloud
Build the foundation for Private CloudAppZero
 
Be Prepared for Tomorrow's IT Forecast Great Chance of Hybrid Clouds
Be Prepared for Tomorrow's IT Forecast Great Chance of Hybrid CloudsBe Prepared for Tomorrow's IT Forecast Great Chance of Hybrid Clouds
Be Prepared for Tomorrow's IT Forecast Great Chance of Hybrid CloudsEucalyptus Systems, Inc.
 
Private cloud infrastructure configure and deploy 24 hiapc fabrizio volpe
Private cloud infrastructure configure and deploy 24 hiapc fabrizio volpePrivate cloud infrastructure configure and deploy 24 hiapc fabrizio volpe
Private cloud infrastructure configure and deploy 24 hiapc fabrizio volpeFabrizio Volpe
 
Private cloud, the Good, the Bad and the Ugly
Private cloud, the Good, the Bad and the UglyPrivate cloud, the Good, the Bad and the Ugly
Private cloud, the Good, the Bad and the UglyTudor Damian
 
Nlgug grails in the cloud
Nlgug grails in the cloudNlgug grails in the cloud
Nlgug grails in the cloudmalderhout
 
Transcending Computing Environment Boundaries: Seamless Computing Environmen...
Transcending  Computing Environment Boundaries: Seamless Computing Environmen...Transcending  Computing Environment Boundaries: Seamless Computing Environmen...
Transcending Computing Environment Boundaries: Seamless Computing Environmen...HCL Infosystems
 
SmartCloud Provisioning - servere i skyen på et splitsekund. Steen Eriksen &...
SmartCloud Provisioning - servere i skyen på et splitsekund.  Steen Eriksen &...SmartCloud Provisioning - servere i skyen på et splitsekund.  Steen Eriksen &...
SmartCloud Provisioning - servere i skyen på et splitsekund. Steen Eriksen &...IBM Danmark
 
2011 State of the Cloud: A Year's Worth of Innovation in 30 Minutes - Jinesh...
2011 State of the Cloud:  A Year's Worth of Innovation in 30 Minutes - Jinesh...2011 State of the Cloud:  A Year's Worth of Innovation in 30 Minutes - Jinesh...
2011 State of the Cloud: A Year's Worth of Innovation in 30 Minutes - Jinesh...Amazon Web Services
 
[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012
[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012
[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012Dubravko Marak
 
Scale Your App for the Holidays with Amazon DynamoDB
Scale Your App for the Holidays with Amazon DynamoDBScale Your App for the Holidays with Amazon DynamoDB
Scale Your App for the Holidays with Amazon DynamoDBAmazon Web Services
 
CCitDG Presenation
CCitDG PresenationCCitDG Presenation
CCitDG PresenationDatabarracks
 
Raindance - Tooling for the Clouds
Raindance - Tooling for the CloudsRaindance - Tooling for the Clouds
Raindance - Tooling for the CloudsMarkus Knauer
 
Cloud computing with AWS
Cloud computing with AWS Cloud computing with AWS
Cloud computing with AWS ikanow
 

La actualidad más candente (20)

Windows Azure UK Universities Bradford Uni
Windows Azure UK Universities Bradford UniWindows Azure UK Universities Bradford Uni
Windows Azure UK Universities Bradford Uni
 
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
 
Cloud Computing 101
Cloud Computing 101Cloud Computing 101
Cloud Computing 101
 
Build the foundation for Private Cloud
Build the foundation for Private CloudBuild the foundation for Private Cloud
Build the foundation for Private Cloud
 
Be Prepared for Tomorrow's IT Forecast Great Chance of Hybrid Clouds
Be Prepared for Tomorrow's IT Forecast Great Chance of Hybrid CloudsBe Prepared for Tomorrow's IT Forecast Great Chance of Hybrid Clouds
Be Prepared for Tomorrow's IT Forecast Great Chance of Hybrid Clouds
 
Private cloud infrastructure configure and deploy 24 hiapc fabrizio volpe
Private cloud infrastructure configure and deploy 24 hiapc fabrizio volpePrivate cloud infrastructure configure and deploy 24 hiapc fabrizio volpe
Private cloud infrastructure configure and deploy 24 hiapc fabrizio volpe
 
Private cloud, the Good, the Bad and the Ugly
Private cloud, the Good, the Bad and the UglyPrivate cloud, the Good, the Bad and the Ugly
Private cloud, the Good, the Bad and the Ugly
 
Nlgug grails in the cloud
Nlgug grails in the cloudNlgug grails in the cloud
Nlgug grails in the cloud
 
Transcending Computing Environment Boundaries: Seamless Computing Environmen...
Transcending  Computing Environment Boundaries: Seamless Computing Environmen...Transcending  Computing Environment Boundaries: Seamless Computing Environmen...
Transcending Computing Environment Boundaries: Seamless Computing Environmen...
 
Chris millercloud
Chris millercloudChris millercloud
Chris millercloud
 
SmartCloud Provisioning - servere i skyen på et splitsekund. Steen Eriksen &...
SmartCloud Provisioning - servere i skyen på et splitsekund.  Steen Eriksen &...SmartCloud Provisioning - servere i skyen på et splitsekund.  Steen Eriksen &...
SmartCloud Provisioning - servere i skyen på et splitsekund. Steen Eriksen &...
 
2011 State of the Cloud: A Year's Worth of Innovation in 30 Minutes - Jinesh...
2011 State of the Cloud:  A Year's Worth of Innovation in 30 Minutes - Jinesh...2011 State of the Cloud:  A Year's Worth of Innovation in 30 Minutes - Jinesh...
2011 State of the Cloud: A Year's Worth of Innovation in 30 Minutes - Jinesh...
 
[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012
[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012
[Dubravko marak] Kako kreirati private cloud koristeći sistem centar 2012
 
Keynote - Werner Vogels
Keynote - Werner Vogels Keynote - Werner Vogels
Keynote - Werner Vogels
 
Cloud computing overview
Cloud computing overviewCloud computing overview
Cloud computing overview
 
Scale Your App for the Holidays with Amazon DynamoDB
Scale Your App for the Holidays with Amazon DynamoDBScale Your App for the Holidays with Amazon DynamoDB
Scale Your App for the Holidays with Amazon DynamoDB
 
Cloud Computing in Organization
Cloud Computing in OrganizationCloud Computing in Organization
Cloud Computing in Organization
 
CCitDG Presenation
CCitDG PresenationCCitDG Presenation
CCitDG Presenation
 
Raindance - Tooling for the Clouds
Raindance - Tooling for the CloudsRaindance - Tooling for the Clouds
Raindance - Tooling for the Clouds
 
Cloud computing with AWS
Cloud computing with AWS Cloud computing with AWS
Cloud computing with AWS
 

Similar a Windows Azure Overview

Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azureManish Corriea
 
Windows Azure Platform - The Color of Cloud Computing
Windows Azure Platform - The Color of Cloud ComputingWindows Azure Platform - The Color of Cloud Computing
Windows Azure Platform - The Color of Cloud ComputingGeorge Kanellopoulos
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform K.Mohamed Faizal
 
BOI 2011 - Be what's next
BOI 2011 - Be what's nextBOI 2011 - Be what's next
BOI 2011 - Be what's nextTudor Damian
 
FewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuumFewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuumTom Crombez
 
Drupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows AzureDrupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows AzureFord AntiTrust
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformSpiffy
 
20120614 innovation days - Windows Azure
20120614   innovation days - Windows Azure20120614   innovation days - Windows Azure
20120614 innovation days - Windows AzureRicardo González
 
Windows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerWindows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerMustafa
 
Windows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerWindows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerMSHOWTO Bilisim Toplulugu
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformDavid Chou
 
Arquitectura dos Serviços da plataforma Windows Azure
Arquitectura dos Serviços da plataforma Windows AzureArquitectura dos Serviços da plataforma Windows Azure
Arquitectura dos Serviços da plataforma Windows AzureComunidade NetPonto
 
[NetPonto] Arquitectura dos Serviços da plataforma Windows Azure
[NetPonto] Arquitectura dos Serviços da plataforma Windows Azure[NetPonto] Arquitectura dos Serviços da plataforma Windows Azure
[NetPonto] Arquitectura dos Serviços da plataforma Windows AzureVitor Tomaz
 
Microsoft Techready -21 aprilie 2011
Microsoft Techready -21 aprilie 2011Microsoft Techready -21 aprilie 2011
Microsoft Techready -21 aprilie 2011Agora Group
 
Cloud Computing in a Nutshell
Cloud Computing in a NutshellCloud Computing in a Nutshell
Cloud Computing in a NutshellVictor Haydin
 
Open Cloud Interop Public
Open Cloud Interop PublicOpen Cloud Interop Public
Open Cloud Interop Publicrvanhoe
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategydrmarcustillett
 
Cloud Computing by Dindo Fernando
Cloud Computing by Dindo FernandoCloud Computing by Dindo Fernando
Cloud Computing by Dindo Fernandokristine1018
 

Similar a Windows Azure Overview (20)

Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azure
 
Windows Azure Platform - The Color of Cloud Computing
Windows Azure Platform - The Color of Cloud ComputingWindows Azure Platform - The Color of Cloud Computing
Windows Azure Platform - The Color of Cloud Computing
 
PHP in the Cloud
PHP in the CloudPHP in the Cloud
PHP in the Cloud
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform
 
BOI 2011 - Be what's next
BOI 2011 - Be what's nextBOI 2011 - Be what's next
BOI 2011 - Be what's next
 
FewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuumFewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuum
 
Drupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows AzureDrupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows Azure
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
 
Cloud taxonomy yong kigkeat
Cloud taxonomy yong kigkeatCloud taxonomy yong kigkeat
Cloud taxonomy yong kigkeat
 
20120614 innovation days - Windows Azure
20120614   innovation days - Windows Azure20120614   innovation days - Windows Azure
20120614 innovation days - Windows Azure
 
Windows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerWindows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen Hizmetler
 
Windows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerWindows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek Hizmetler
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services Platform
 
Arquitectura dos Serviços da plataforma Windows Azure
Arquitectura dos Serviços da plataforma Windows AzureArquitectura dos Serviços da plataforma Windows Azure
Arquitectura dos Serviços da plataforma Windows Azure
 
[NetPonto] Arquitectura dos Serviços da plataforma Windows Azure
[NetPonto] Arquitectura dos Serviços da plataforma Windows Azure[NetPonto] Arquitectura dos Serviços da plataforma Windows Azure
[NetPonto] Arquitectura dos Serviços da plataforma Windows Azure
 
Microsoft Techready -21 aprilie 2011
Microsoft Techready -21 aprilie 2011Microsoft Techready -21 aprilie 2011
Microsoft Techready -21 aprilie 2011
 
Cloud Computing in a Nutshell
Cloud Computing in a NutshellCloud Computing in a Nutshell
Cloud Computing in a Nutshell
 
Open Cloud Interop Public
Open Cloud Interop PublicOpen Cloud Interop Public
Open Cloud Interop Public
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
 
Cloud Computing by Dindo Fernando
Cloud Computing by Dindo FernandoCloud Computing by Dindo Fernando
Cloud Computing by Dindo Fernando
 

Más de Stefano Paluello

Real scenario: moving a legacy app to the Cloud
Real scenario: moving a legacy app to the CloudReal scenario: moving a legacy app to the Cloud
Real scenario: moving a legacy app to the CloudStefano Paluello
 
A gentle introduction to the world of BigData and Hadoop
A gentle introduction to the world of BigData and HadoopA gentle introduction to the world of BigData and Hadoop
A gentle introduction to the world of BigData and HadoopStefano Paluello
 
Using MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkUsing MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkStefano Paluello
 
TDD with Visual Studio 2010
TDD with Visual Studio 2010TDD with Visual Studio 2010
TDD with Visual Studio 2010Stefano Paluello
 
Teamwork and agile methodologies
Teamwork and agile methodologiesTeamwork and agile methodologies
Teamwork and agile methodologiesStefano Paluello
 

Más de Stefano Paluello (10)

Clinical Data and AI
Clinical Data and AIClinical Data and AI
Clinical Data and AI
 
Real scenario: moving a legacy app to the Cloud
Real scenario: moving a legacy app to the CloudReal scenario: moving a legacy app to the Cloud
Real scenario: moving a legacy app to the Cloud
 
A gentle introduction to the world of BigData and Hadoop
A gentle introduction to the world of BigData and HadoopA gentle introduction to the world of BigData and Hadoop
A gentle introduction to the world of BigData and Hadoop
 
Grandata
GrandataGrandata
Grandata
 
How to use asana
How to use asanaHow to use asana
How to use asana
 
Using MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkUsing MongoDB with the .Net Framework
Using MongoDB with the .Net Framework
 
TDD with Visual Studio 2010
TDD with Visual Studio 2010TDD with Visual Studio 2010
TDD with Visual Studio 2010
 
Asp.Net MVC Intro
Asp.Net MVC IntroAsp.Net MVC Intro
Asp.Net MVC Intro
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 
Teamwork and agile methodologies
Teamwork and agile methodologiesTeamwork and agile methodologies
Teamwork and agile methodologies
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Windows Azure Overview

  • 1. A lap around the Seattle’s Clouds (and there are a lot of them ☺ ) Stefano Paluello stefano.paluello@pastesoft.com http://stefanopaluello.wordpress.com Twitter: @palutz
  • 2. Agenda • Cloud Computing Overview • Welcome “Windows Azure Platform” • Windows Azure Computing – Role Programming Model – Windows Azure Storage – Windows Azure Connect • SQL Azure • Azure App Fabric • Windows Azure Development
  • 3. What is the “Cloud Computing”? • Cloud Computing represents a pattern of IT operation, from infrastructure to applications, using services. • Microsoft thinks of the cloud as simply an approach to computing that enables applications to be delivered at scale for a variety of workloads and client devices.
  • 4. Why do we need the Cloud? Allocated Load IT-capacities Forecast Not Enough Power IT CAPACITY Too Much Power Actual Load TIME
  • 5. Load No screaming Capacity on Forecast customers Demand IT CAPACITY No capital Knob goes laying idle up... And... down Lower Capex Actual Load TIME
  • 6. Cloud Services “IaaS” “PaaS” “SaaS” Infrastructure-as-a-Service Platform-as-a-Service Software-as-a-Service host build consume
  • 7. Cloud services Packaged Infrastructure Platform Software Software (as a Service) (as a Service) (as a Service) Applications Applications Applications Applications You manage Data Data Data Data You manage Runtime Runtime Runtime Runtime Managed by vendor Middleware Middleware Middleware Middleware Managed by vendor You manage O/S O/S Managed by vendor O/S O/S Virtualization Virtualization Virtualization Virtualization Servers Servers Servers Servers Storage Storage Storage Storage Networking Networking Networking Networking
  • 8. Who are the “players”? Cloud Services Players IaaS Vmware vCloud (ESX,Vcenter), AmazonWebServices, Microsoft (Dynamic Data Center Toolkit for Hosters), GoGrid, Rackspace,… PaaS Microsoft Windows Azure, Google AppEngine, Force.com,… SaaS Microsoft BPOS, Salesforce.com,Google Docs,LotusLive,… • Common services: – Resource pooling, Elasticity, Pay-per-use, On-demand self-service, Measured service, Broad network access
  • 9. What are the differences? On-Premise Hosting Cloud • Manage all on your own • Rent HW, SW & network • Shared multi-tenant server farm (electricity, • Less control and infrastructure network, hw, sw..) responsibility than On- • Resource pooling • Full control & Premise • On-demand self-service responsibility • More flexible • Elasticity, network • Fixed capacity • Less investment than independent • High initial investment On-Premise • Measured services • Fixed cost with fixed • Pay-per-use capacity also when the server aren’t working
  • 12. Windows Azure Data Centers 6 Datacenters across 3 continents Windows Azure Platform available in 41 countries
  • 13. Windows Azure Compute • O.S. for the Cloud: – Run apps in the Cloud, Provide Storage, App Management, Developer SDK • Windows Azure best fits for app needing: – Scalability, Availability, Fault Tolerance & Load Balancing
  • 14.
  • 15. Windows Azure “internals” Business Portal Developer Portal User Code REST Service Management Service Runtime API Storage Cluster Compute Cluster … … VM Setup VS Tools … Cloud VM WA SDK REST Desktop MSFT Datacenters
  • 16. Hierarchy in Windows Azure • Subscription – contains a collection of Services (up to 6), determines the billing model (with standard, discounted or bundled charges) • Services – Isolation boundary with a public URL, composed by Roles (up to 5), defined in the Service Model • Roles – Defined in the Service Model (VM size, Communications endpoints, Storage Resources, etc.), at run-time a Role can execute up to 20 Instances per Subscription • Instances – Set of code and data deployed in a VM
  • 17. Windows Azure Roles Windows Azure supported roles : • Web role – is a role that is customized for web application programming as supported by IIS 7 and ASP.NET. • Worker role – is a role that is useful for generalized development, and may perform background processing for a web role. • VM role – is a special type of role that enables you to define the configuration & updates of the OS for the VM. Features available: • Remote desktop connection • Communication between role instances • The role instances in a hosted service communicate through internal and external connections • Warm-up tasks
  • 19. Windows Azure Architecture The Internet The Internet via TCP or HTTP L L B L B B Queues Web Site Worker Worker Worker Web Site WebASMX, WCF) Role (ASPX, (ASPX, ASMX, WCF) Role Service Service IIS as Host Managed Interface Call Blobs Tables Storage Windows Azure Data Center
  • 20. Packaging and Config • Windows Azure Services are described by two important files: – Service Definition (*.csdef) – Service Configuration (*.cscfg) • Your code is zipped and packaged with definition (*.cspkg) – Encrypted(Zipped(Code + *.csdef)) == *.cspkg • Windows Azure consumes just *.cspkg + *.cscfg
  • 22. Role Programming Model • Inherits RoleEntryPoint • OnStart() Method – Called by Fabric on startup, allows you to perform initialization tasks. – Reports Busy status to load balancer until you return true. • Run() Method – Main logic is here – can do anything, typically infinite loop. Should never exit. • OnStop() Method – Called when role is to be shutdown, graceful exit. – 30 Seconds to tidy up
  • 23. Role Lifecycle • All Roles MAY extend RoleEntryPoint • Role instances raise events when their status is changed (managed by the RoleEnvironment class)
  • 24. Windows Azure Web & Worker Roles • Windows Server 2008 x64 (R2 coming soon) • .NET Framework – 3.5 SP1 and 4.0 • Native Code, PHP, Java, etc. • Supports Full Trust today • Fabric manages role lifecycle Worker Role Web Role Role is an executable Role is hosted on IIS Create your own web server, host HTTP/HTTPS a database, background op., etc ASP.NET, MVC Inbound on Fast CGI + PHP Any TCP Port HTTP/HTTPS
  • 25. Full IIS • Web Roles previously using Hosted Web Core – Only supports a single HTTP or HTTPS endpoint • Web Roles now supporting Full IIS 7.0/7.5 • Enables new scenarios – Multiple IIS web sites – Multiple virtual directories – Configure IIS extensions – Web Deploy for rapid development
  • 26. Full IIS Scenario (best case ☺ ) Phase Key Steps Local Development • Use Visual Studio solution to code & deploy to Compute Emulator • Edit local content files without redeploying to Compute Emulator First-time Publish • Deploy service to Windows Azure (~10 Min) • Ensure Windows Azure service definition (csdef/cscfg) configures Web role: • To enable remote WMSVC, WebDeploy, PowerShell, etc. • As single instance Iterative Development (seconds) • Continue coding in same Visual Studio solution • Push intermittent changes (e.g. w/ Web Deploy) Deployment of Final Version • Deploy service to Windows Azure (~10 Min) • Note: If service is now multi-instance, Remote Desktop can be used, but other remote mgmt. tools will get load- balanced to arbitrary instances. Mitigation: Run mgmt. tools inside Remote Desktop session
  • 27. VM Role • Developers have full control over the OS image • Ability to upload your own customized WS08R2 Enterprise images • Operators can reboot, re-image and Remote Desktop
  • 28. VM Role Lifecycle Build VM • Convert product DVD to a VHD, or use existing VHD Image • Prepare the VHD Create Service • Create a service model with the above image. Upload Image • Store VHD in Windows Azure blob storage • Include in service model. Specify instance count. Deploy Service • Package as cspkg, upload cskpg. Maintain • Remote Desktop Service • Reboot / Reimage Upgrade • Repeat above steps, with a new OS image. Service
  • 29. VM Role Lifecycle Identical/similar deployment instances using common uploaded OS image Base.VHD (base.VHD + diff.VHD) & Additional Software & Windows Azure Integration Components - Agent Blob - Runtime Interface (topo, config, shutdown notification, …) Storage - Remote Desktop configurator - Diagnostics Boot VHD - Windows Azure Drives driver - Windows Azure Connect & Generalize (Recommended) Customize Save VHD Diff.VHD On-Premises Cloud
  • 30. VM Role – Service definition <ServiceDefinition name="MyVMRoleService" xmlns="…"> <VirtualMachineRole name="MachineRole" vmsize="Medium"> <Imports> <Import moduleName="RemoteAccess" /> <Import moduleName="RemoteForwarder" /> <Import moduleName="Diagnostics" /> </Imports> </VirtualMachineRole> </ServiceDefinition>
  • 31. VM Role – Service configuration <ServiceConfiguration serviceName="MyVMRoleService" xmlns="…"> <Role name="MachineRole"> <OsImage href="20101020BaseVM.vhd" /> <Instances count="2" /> <ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=http;AccountName=mohittest;AccountKey=JEBzeqFeP1g==" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2012-07-23T23:59:59.0000000-07:00" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" /> </ConfigurationSettings> <Certificates> <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="195FD938F86D8785FF53C660BCBD283819E0271A" thumbprintAlgorithm="sha1" /> </Certificates> </Role> </ServiceConfiguration>
  • 32. VM Role Q&A • Will any WS08 R2-based application work? – No, VM Role inherits some Web/worker restrictions: • SLA requires at least two identical/similar instances • No durability of OS image on hardware failure • One public IP per service (unless using Windows Azure Virtual Network) • Does Windows Azure take care of *everything*? – No • With VM Role, the customer creates & maintains the OS • Windows Azure does not automatically understand the health of the applications running in our VM – But, since you deploy services instead of individual VM’s, Windows Azure does automate many management tasks.
  • 33. Remote desktop Config <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="RemoteAccess" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WorkerRole name="GatewayRole"> <ConfigurationSettings> <Setting name="DiagnosticsConnectionString" /> </ConfigurationSettings> <Imports> <Import moduleName="RemoteAccess" /> <Import moduleName="RemoteForwarder" /> </Imports> </WorkerRole> <WorkerRole name="TargetRole"> <ConfigurationSettings> <Setting name="DiagnosticsConnectionString" /> </ConfigurationSettings> <Imports> <Import moduleName="RemoteAccess" /> </Imports> </WorkerRole> </ServiceDefinition>
  • 34. Remote desktop Config <Role name="WorkerRole1"> <Instances count="1" /> <ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="myuser" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="[base64]" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2010-06-16T13:04:02.9666425-07:00" /> </ConfigurationSettings> <Certificates> <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordCertificate" thumbprint="c0c23e1cdd7bfb20c14dce97b37ea67bd9f24918" thumbprintAlgorithm="sha1" /> </Certificates> </Role>
  • 36. Windows Azure: VM Size • Windows Azure – Supports Various VM Sizes – Size set on Role in Service Definition – Service can have multiple roles – Balance of Performance per node vs. High Availability from multiple nodes – Set in Service Model definition All instances of role will be of equal size Size CPU Cores RAM Local Storage Cost Extra Small Shared 768M 20GB .05 Small 1 1.7GB 250GB .12 Medium 2 3.5GB 500GB .24 Large 4 7GB 1000GB .48 Size CPU Cores RAM Local Storage Cost
  • 37. How to choose VM size • Don’t just throw big VMs at every problem • Scale out architectures have natural parallelism • Big VMs allow us to Scale UP on a single machine. • Test various configurations under load • More small instances == more redundancy • Some scenarios will benefit from more cores (E.g. Video processing, …)
  • 38. Windows Azure Networking • 3 types of Endpoints in Windows Azure – Input (VIP) – Internal – Windows Azure Connect • Specify Connectivity Rules in Service Definition – NetworkTrafficRules • Port Ranges • Local Ports • TCP only
  • 39. Local Storage != W.A. Storage • Role instances have available disk storage • Use LocalStorage element in service definition – Name – CleanOnRoleRecycle – Size • Persistent but not guaranteed durable – Good for cached resources • Windows Azure Storage Drives provide guaranteed durable storage
  • 40. Local Storage How To • Config • Code
  • 42. Windows Azure Storage • Tables • Blobs – Table = group of entities – Large binary storage – Entity = name/value pairs – Stored in container – Partitioned by key • Unlimited containers • Scale out to Bns of • CDN Deliverable entities • Partitioned by Blob name – Not an RDBMS • Drives • Tables – NTFS VHD mounted into – Table = group of entities Compute instance – Entity = name/value pairs • Read/Write 1:1 – Partitioned by key • Read only 1:N • Scale out to Bns of – Backed by Page Blob entities – Cannot remotely map – Not an RDBMS
  • 43. Windows Azure Storage Recap • Blobs – Simple named files along with metadata for the file • Drives – Durable NTFS volumes for Windows Azure applications to use. Based on Blobs. • Tables – Structured storage. A Table is a set of entities; an entity is a set of properties • Queues – Reliable storage and delivery of messages for an application
  • 44. Blob Storage http://<account>.blob.core.windows.net/<container>/<blobname> Pages/ Account Container Blob Blocks PIC01.JPG images Block/Page PIC02.JPG contoso Block/Page videos VID1.AVI
  • 45. Blob Containers • Multiple Containers per Account – Special $root container • Blob Container – A container holds a set of blobs – Set access policies at the container level – Associate Metadata with Container – List the blobs in a container • Including Blob Metadata and MD5 • NO search/query. i.e. no WHERE MetadataValue = ? • Blobs Throughput – Effectively in Partition of 1 – Target of 60MB/s per Blob
  • 46. Blob Details • Main Web Service Operations – PutBlob,GetBlob,DeleteBlob,CopyBlob,SnapshotBlob,LeaseBlob • Associate Metadata with Blob – Standard HTTP metadata/headers (Cache-Control, Content-Type, etc) – Metadata is <name, value> pairs, up to 8KB per blob – Either as part of PutBlob or independently • Blob always accessed by name – Can include ‘/‘ or other delimeter in name • Large lists of blobs can be paginated http://adventureworks.blob.core.windows.net/ Products/Bikes/FastBike.jpg Products/Canoes/Whitewater.jpg Products/Canoes/Hybrid.jpg Products/Tents/PalaceTent.jpg
  • 47. Two types of Blob • Block Blob – Targeted at streaming workloads – Each blob consists of a sequence of blocks • Each block is identified by a Block ID – Size limit 200GB per blob – Optimistic Concurrency via ETags • Page Blob – Targeted at random read/write workloads – Each blob consists of an array of pages • Each page is identified by its offset from the start of the blob – Size limit 1TB per blob – Optimistic or Pessimistic (locking) concurrency via Leases
  • 48. Windows Azure Drives • Durable NTFS volume for Windows Azure Instances – Use existing NTFS APIs to access a network attached durable drive – Use System.IO from .NET • Benefits – Move existing apps using NTFS more easily to the cloud – Durability and survival of data on instance recycle • A Windows Azure Drive is a NTFS VHD Page Blob – Mounts Page Blob over the network as an NTFS drive – Local cache on instance for read operations – All flushed and unbuffered writes to drive are made durable to the Page Blob
  • 49. Windows Azure Drives Details • Operations performed via Drive API not REST Calls • Operations on Drives – CreateDrive • Creates a new NTFS formatted VHD in Blob storage – MountDrive/UnmountDrive MountDrive/ • Mounts a drive into Instance at new drive letter • Unmounts a drive freeing drive letter – Get Mounted Drives • List mounted drives; underlying blob and drive letter – Snapshot Drive • Create snapshot copy of the drive
  • 50. Table Storage Account Table Entity Name =… Email = … customers Name =… EMailAdd= … contoso Photo ID =… Date =… photos Photo ID =… Date =…
  • 51. Table Details • Not an RDBMS! More on table modeling in Storage Strategies session • Table – Create, Query, Delete – Tables can have metadata • Entities – Insert – Update • Merge – Partial update • Replace – Update entire entity – Delete – Query – Entity Group Transactions • Multiple CUD Operations in a single atomic transaction
  • 52. Table Storage Entities • Entity can have up to 255 properties • Up to 1MB per entity • Mandatory Properties for every entity • PartitionKey & RowKey (only indexed properties) • Uniquely identifies an entity • Defines the sort order • Timestamp • Optimistic Concurrency. Exposed as an HTTP ETag • No fixed schema for other properties • Each property is stored as a <name, typed value> pair • No schema stored for a table • Properties can be the standard .NET types • String, binary, bool, DateTime, GUID, int, int64, and double
  • 53. PartitionKey How To • Entity Locality – Entities in the same partition will be stored together – Efficient querying and cache locality – Endeavour to include partition key in all queries • Entity Group Transactions – Atomic multiple Insert/Update/Delete in same partition in a single transaction • Table Scalability • Target throughput – 500 tps/partition, several thousand tps/account – Windows Azure monitors the usage patterns of partitions – Automatically load balance partitions – Each partition can be served by a different storage node – Scale to meet the traffic needs of your table
  • 54. Queue Storage Account Queue Message customer ID order ID http://… adventureworks order processing customer ID order ID http://…
  • 55. Lousely Coupled Workflow with Queues • Enables workflow between roles – Load work in a queue (Producer can forget about message once it is in queue) – Many workers consume the queue – For extreme throughput (>500 tps) • Use multiple queues • Read messages in batches • Multiple work items per message Input Queue (Work Items) Queue
  • 56. Queue’s Reliable Delivery • Guarantee delivery/processing of messages (two-step consumption) – Worker Dequeues message and it is marked as Invisible for a specified “Invisibility Time” – Worker Deletes message when finished processing – If Worker role crashes, message becomes visible for another Worker to process – More on this pattern in the Async Workloads session
  • 57. Windows Azure Connect • Secure network connectivity between on-premises and cloud – Supports standard IP protocols Windows Azure • Example use cases: – Enterprise app migrated to Windows Azure that requires access to on-premise SQL Server – Windows Azure app domain-joined to corporate Active Directory – Remote administration and trouble-shooting of Windows Azure Roles • Simple setup and management Enterprise
  • 58. Windows Azure Service Deployment • To use Connect with a WA service, enable one or more of its Roles – For Web & Worker Role, include the Connect plug-in as part of Service Model (.csdef file) – For VM role, install the Connect agent in VHD image using the Connect VM install package – Connect agent will automatically be deployed for each new role instance that starts up • Connect agent configuration managed through the ServiceConfiguration (.cscfg) file – One required setting - “ActivationToken” • Unique per-subscription token, accessed from Admin UI – Optional settings for managing AD domain-join and service availability
  • 59. On-Premise Deployment • Local computers are enabled for connectivity by installing & activating the Connect agent – Web-based installation link • Retrieved from admin UI • Contains per-subscription activation token embedded in URL – Standalone install package • Reads activation token from registry key • Enables installation using existing S/W distribution tools • Connect agent tray icon & client UI – View activation state & connectivity status – Refresh network policy • Connect agent automatically manages network connectivity – Sets up virtual network adapter – “Auto-connects” to Connect relay service as needed – Configures IPSec policy based on network policy – Enables DNS name resolution – Automatically syncs latest network policies
  • 60. Windows Azure Connect Windows Azure Role A Role B Instance3 Instance2 Instance3 Instance2 Instance Instance My Servers My Laptops SERVER1 DEV_LAPTOP1 SERVER2 SERVER3 DEV_LAPTOP2
  • 61.
  • 63.
  • 64. Architecture • Shared infrastructure at SQL database and below – Request routing, security and isolation • Scalable HA technology provides the glue – Automatic replication and failover • Provisioning, metering and billing infrastructure
  • 65. Database Replicas Replica 1 Replica DB 2 Replica 3 Replica 4
  • 66. Behind the scenes… Applicatio Apps use standard SQL client n libraries: ODBC, ADO.Net, PHP, … Internet Load balancer forwards ‘sticky’ TDS (tcp) LB sessions to TDS protocol tier TDS (tcp) Gateway Gateway Gateway Gateway Gateway Gateway Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to backend SQL TDS (tcp) SQL SQL SQL SQL SQL SQL Scalability and Availability: Fabric, Failover, Replication, and Load balancing
  • 67. SQL Azure Compatibility Currently supported Not Currently Supported • Tables, indexes and views • Data Types • Stored Procedures – XML, Sparse Columns, • Triggers Filestream • Constraints • Partitions • Table variables, • Full-text indexes session temp tables (#t) • SQL-CLR • Spatial types, HierarchyId Tables require clustered indexes
  • 68. SQL Azure: Performance & Scalability Database Design Capacity Latency Concurrency Scalability • Table design • Size limits • Redundancy • Replication • Scale-up • Index design • Partitioning (shard) • Replica overhead • SQL Azure Data • Not an option • Query design • Distance Sync • Scale-out • Transaction design • Affinity Groups • Partitioning (shard) • Partitioning (shard) • SQL Azure Data • SQL Azure Data Sync Sync • Sync Fx
  • 69. SQL Azure Database Editions • Two SQL Azure Database SKUs: Web & Business – Web Edition: 1 GB @ $9.99/month | 5 GB @ $49.95/month – Business Edition: Up to 50 GB @ $99.99/10 GB/month 10 GB @ $99.99 | 20 GB @ $199.98 | 30 GB @ $299.97 | 40 GB @ $399.96 | 50 GB @ $499.95 • You specify Web or Business Edition – Web: EDITION = web – Business: EDITION = business • You specify MAXSIZE – Web: MAXSIZE = 1GB | 5GB – Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB • This is the maximum size we will not let you grow beyond • You will only be charged for the actual peak size in any one day rounded up • For example, a 3.4 GB Web Edition will be charged 5GB rate. CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB); CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB); ALTER DATABASE foo2 MODIFY (EDITION='web', MAXSIZE=5GB);
  • 70. SQL Azure Reporting V1 Reporting Services SQL Azure Reporting Tooling - Business Intelligence Design - Business Intelligence Design Studio (BIDS) Studio (BIDS) - Report Builder - Report Builder* Supported data sources Diverse data sources SQL Azure databases Report Management Report Manager or SharePoint Windows Azure Developer - display reports Portal - rendering to multiple URL browsing formats - subscriptions - scheduled delivery Developer Extensibility Custom data sources, Extensibility is not yet enabled assemblies, report items, authentication, etc. Security Model Windows Authentication SQL Azure Username/password
  • 71. SQL Azure Data Sync • 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
  • 72. SQL Azure Data Sync On-Premises Cloud Offline • Geo-replication of SQL Azure data Clients and spanning on-premises with cloud – CTP1 released in June with geo-replication – CTP2 to be released Q4CY10; adds sync between SQL Server and SQL Azure • Builds on Sync Framework – Sync data between SQL Azure, SQL Compact and SQL Server – Sync Fx 2.1 RTW on August 18th – Next version enables sync for offline clients
  • 73. Sync Framework Sync smarts on Easy to develop the server, not on sync endpoints client SyncFx Sync Client API Endpoint support Auth / s Mgmt / Bus Logic SQL Azure Simple protocol (OData& Sync) WindowsAzu re Sync SyncFx Sync Endpoint Auth / s Mgmt / Bus Logic SQL Server Minimal client & store requirements Windows Server / IIS
  • 74.
  • 76. Fabric Controller = Cloud OS Kernel My App My App Windows Server Windows AZURE Security Security Management Management Kernel Fabric Controller Task scheduler Task scheduler HW abstraction layer HW abstraction layer
  • 77. Windows Azure AppFabric • Comprehensive building block services for developing, deploying, and managing applications • Higher level Platform-as-a-Service (PaaS) capabilities • Increase developer productivity • Bridge existing applications to the cloud Windows Azure AppFabric Composite App Caching Service Bus Access Control Integration (WF, WCF)
  • 78. Caching Service • A distributed, in-memory cache for applications running in Windows Azure • Simple administration; end-user doesn’t bother with configuration, deployment, or management • Highlight scalable solution with low latency and high throughput • Based on Windows Server AppFabric Caching
  • 79. Latency chart Memory Network Disk
  • 80. Access Control • Used to authenticate and authorize users • Integration Single Sign On and centralized authorization into your web applications • Standards-based identity providers – Enterprise directories (e.g. Active Directory Federation Server v2.0) – Web identities (e.g. Windows Live ID, Google, Yahoo!, and Facebook) • V1 available in production; V2 available in AppFabric LABS
  • 81. Access Control features • Integrates with Windows Identity Foundation and tooling • Claims-based access control • Support for OAuth WRAP, WS-Trust, and WS- Federation protocols • Support for the SAML 1.1, SAML 2.0, and Simple Web Token token formats • Integrated and customizable Home Realm Discovery • OData-based Management Service to ACS configuration
  • 82. Service Bus • Provides secure messaging and connectivity across different network topologies • Enables hybrid applications that span on-premises and the cloud • Enables various communication protocols and patterns for developers to engage in reliable messaging
  • 83. Enabling hybrid applications Datacenter Partner LOB app LOB web service Mobile Device
  • 84. Enabling hybrid applications Datacenter Partner ACS SB LOB app LOB web service Mobile Device
  • 85. Enabling hybrid applications Datacenter Partner ACS SB LOB app LOB web service Mobile Device
  • 86. Enabling hybrid applications Datacenter Partner ACS SB LOB app LOB web service Mobile Device
  • 87. Enabling hybrid applications Datacenter Partner ACS SB LOB app LOB web service Mobile Device
  • 89. Moving apps to the Cloud Compatible with Designed for Delivered as a Windows Azure Windows Azure Service
  • 90. Asp.Net in Azure • Windows Azure Tools for Visual Studio pre- defined role templates – ASP.NET WebForms Role – ASP.NET MVC 2 Role
  • 91. There are some differences…
  • 92. Statelessness – Load balancer round-robins requests in multi instance roles – Follow web farm best practices • Do not store state on individual instances • Do not assume subsequent requests will hit the same instance – Don’t forget things like dynamically generated images loaded by a page
  • 93. AJAX on Azure • Client side calls may not return to the same instance the original page came from • AJAX calls must be stateless – Don’t generate a page and leave state on the server to call via AJAX later • All instances require the same MachineKey for ViewState hashing – Fabric uses same machine key for all instances in a role
  • 95. Solutions to Session State • Persist to Storage via Session State Provider – Windows Azure AppFabric Caching – SQL Azure – Windows Azure Storage (only sample!) – Custom (Memcached) • Persist to Client – Use cookies
  • 96. DNS • All services get a *.cloudapp.net address – myservicename.cloudapp.net – TTL is 10 seconds • Standard approach is to CNAME to *.cloudapp.net – Requires two DNS lookups – Limited caching due to low TTL • IP Address for deployment is fixed for lifetime of that slot • Create service, deploy to staging slot • Resolve IP for yourapp.cloudapp.net • Create A Record for • www.yourapp.com • yourapp.com
  • 97. Configuration Apps • Store arbitrary configuration string values – Define in model – Populate in configuration • RoleEnvironment – .GetConfigurationSettingValue() • Don’t use web.config for values you wish to change at runtime – App/Web.config is packaged with deployment change requires re-deploy – *.cscfg supports change tracking and notification to running role instances
  • 98. Handling Config changes • RoleEnvironment.Changing – Occurs before configuration is changed – Can be cancelled – causes a recycle • RoleEnvironment.Changed – Occurs after config change has been applied • RoleEnvironmentConfigurationSettingCh ange – Provides config value that was changed • RoleEnvironmentTopologyChange – When role count is changed
  • 99. Monitoring Apps • Monitoring is not Debugging • Instrument your application using Trace, Debug – DiagnosticMonitorTraceListener • Use Diagnostics API to Configure and Collect – Event Logs – Performance Counters – Trace/Debug information (logging) – IIS Logs, Failed Request Logs – Crash Dumps or Arbitrary files • Request data on demand or scheduled – Transferred into your table and/or blob storage
  • 100. Monitoring is not free ( ) • Monitoring vs Debugging/Troubleshooting • Volume of Data • Reaction Time • $ Cost
  • 101. Troubleshooting • Intellitrace – DVR for debugging – Requires VS Ultimate, .NET 4 today • Remote Desktop • Custom Trace Listener
  • 102. Deployment Environments • Two Environments to choose from • Nearly Identical… – <servicename>.cloudapp.net – <deploymentID>.cloudapp.net • VIP Swap between them
  • 103. How to Upgrade App • VIP Swap: – Uses Staging and Production environments. – Allows to quickly swap environments. – Production: v1 Staging: v2, after swap then Production: v2  Staging: v1. • In-Place Upgrade – Performs a rolling upgrade on live service. – Entire service or a single role – Manual or Automatic across update domains – Cannot change Service Model
  • 104. Deployment & Mgmt Tools • Visual Studio • CSManage.exe • Windows Azure MMC • Windows Azure Service Management (WASM) cmdlets • 3rd Party tools
  • 105. Web Deploy • IIS Web Deployment Tool • Simplifies the migration, management, and deployment of IIS Web servers, Web applications, and Web sites • You’ll be able to do web deploy using standard IIS7 publishing from Visual Studio • Will not require you to deploy an entire package • Warning: use for development purposes only (!!!)
  • 106. Windows Azure Service Management Cmdlets • Set of PowerShell cmdlets • Wraps Management REST API and Diagnostics API • Enables building of sophisticated deployment scripts • Works with rest of .NET CLR
  • 107. Windows Azure MMC • MMC Snapin providing graphical view of services, diagnostics, and storage • Built on top of WASM Cmdlets • Plugin-based, extensible • Remotely configure diagnostics • Download and view diagnostics