SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Windows Azure Platform
 Best Practices




Eric Nelson | ISV Application Architect | Microsoft UK
eric.nelson@microsoft.com | http://bit.ly/ericnelson | http://twitter.com/ericnel



                                                                                    Page 1
Assumption
• You already have familiarity with the Windows
  Azure Platform
• If you don’t then you will still learn stuff
  – But you will be missing some context. Sorry




                                                  Page 2
Agenda   Overview
         •   Role Instances
         •   Latency & timeouts
         •   Transactions & bandwidth
         •   Data/state
         •   Data sensitivity
         Summary




                                        Page 3
Overview




           Page 4
Windows Azure Platform

     makes it easy and cost effective
        to run your applications
           and store your data
      inside Microsoft Data Centres

          using existing skills

            and integrate with
  your existing on-premise applications

                                          Page 5
Vs traditional Windows development


             It’s not really   It’s not really
             different.        different.
             There is just     There is just
             more of it        less of it




       Therefore many Windows Web development
                  best practices apply




                                                 Page 6
Agenda   Overview
         •   Role Instances
         •   Latency & timeouts
         •   Transactions & bandwidth
         •   Data/state
         •   Data sensitivity
         Summary




                                        Page 7
Role Instances




                 Page 8
Instances of Role Types
          “Typical Application”                           But…


                   Finance
                     Web
                   Message                     Finance
                                                 Web             Web
                     Role A
                                               Message           Role A
                                                Role A




                    Queue
                                                         Queue
                          10
                          Sec                             10
                                                          Sec
                       Worker
                       Role A                    Worker          Worker
                                                 Role A          Role A


TIP: Queue writes are approx 20/s per writer
                                                                          Page 9
Consolidation of Role Types
       Scalable Message Passing                         Meta-Message Passing


     HR           Finance           Sales            HR            Finance       Sales
  Message         Message          Message         Message        Message       Message




                                                               Meta-queue
                                                                     HR
   HR              Finance          Sales
                                                                  Finance
  Queue            Queue            Queue
                                                                   Sales
          10             10                5                      Finance
          Sec            Sec              Sec                            10
                                                                         Sec
     Worker           Worker           Worker                Meta-worker Role
     Role             Role             Role
                                                               Message Type?

TIP: Web Roles can communicate direct to Workers

TIP: Maximum time to process a Q Item is 2 hours
                                                                                     Page 10
Remember that SLA? Your instances will stop


    Patching




                                               React
                Notification of   • When an instance goes away, it’s
     Moving        instance         gone, including its state!
               lifecycle events




     Failure




                                                                       Page 11
Role instance management example




                                   Page 12
Elasticity and Roles

            From this
                                                             To this


  Finance
    Web                 Web                 Finance
                                                Web                Web               Web
  Message               Role A
   Role A                                   Message                Role A            Role A
                                               Role A




                                 10 to 15
            Queue
                                 minutes                    Queue

             10
             Sec                                                 10
                                                                 Sec

    Worker              Worker
                                                        Worker              Worker
    Role A              Role A
                                                        Role A              Role A



                                                                                      Page 13
Latency and Timeouts




                       Page 14
Latency

          On premises application
                                                    App
                                                    Data
               Service                  App
               Request

             Consistent and accepted latencies




          Cloud based application
                                                    App
            Service                                 Data
                                      App
            Request

          Increases in quantity and
          variability of latencies




                        TIP: Expect Web Role to SQL Azure to take about twice as long

                                                                                    Page 15
Timeout

On premises application
                                                             Try to connect
      Service
                               App               App
      Request
                                                 Data

   Consistent, reliable
   connectivity and access
                                                              Connection      Yes   Continue doing
                                                              Successful?                work

Cloud based application

                                     Timeouts?                       No
  Service
                             App                 App
  Request
                                                 Data
                                                        No
                                                                Tried 5       Yes
Increased likelihood
of timeouts
                                                                times?                 Fail




                                                                                              Page 16
SQL Azure – you must use retries!
• Transient network issues
  – Loss of connection
• The Fabric may auto-magically reconnect your
  session to a replica of your data
  – Some result in termination of client session
• Throttling
  – Excessive resource usage, long running transactions
  – Can lead to
     • Termination of client session
     • Temporary inability to establish a new connection




                                                           Page 17
Timeout Retry Code Example




                             Page 18
Timeout Retry Code Example




TIP: There is a new code library for all this!

                                                 Page 19
Transactions & bandwidth




                           Page 20
Transactions & bandwidth

•Bandwidth
  • Charged for usage
  • Functionality that was not bandwidth         Access Control
    based may now be effected.               Per AC transactions/month
     • E.g. using Windows Azure Blobs
        instead of writing to disk              Bandwidth
                                             Per GB transfer to/from datacenter
•Transactions
  • Charged by quantity                         Storage
  • Access types that were not               Per GB stored & transactions
    traditionally on a transaction count
    may now be effected.
                                                 Service Bus
      • E.g. using Access Control Services   Per connection/month
         and Storage




                                                                         Page 21
Data center usage costing comparison


          Web Role                           Web Role




          Transaction                        Transaction
Browser    Image Download   Blob   Browser     Image Download   Blob
          Bandwidth                          Bandwidth
            Egress                             Egress




                                                                  Page 22
Batch Payloads
 Frequent message                     Option 1:
 passing with a small                 Serialized
 amount of data can                   Message
                                      Passing




                                                                                     # of ops
                                                                 Header
 effect performance and                                 Header
                                                       Header
 cost.                                               Header
                                                   Header




                                                                           Content
                         Content                   Content
   Header                                                        Total Bytes
     or                  Content
  Overhead               Content
   Content               Content                    Header
  Message




                                                                           Content
  Structure                                         Content




                                                                  Header
                                      Option 2;
                                                    Content




                                                                                       # of ops
TIP: Q items 8KB limit                Packaged
                                      Message       Content
TIP: Watch out for data formats!      Passing       Content      Total Bytes
TIP: Use storage APIs to group transactions
                                                                                     Page 23
Batch Queries

     Single Query Use               Batch Query Use

  Query                 Worker   Query
                        Role A
                                 Query
                                                      Worker
                        Worker   Query
  Query                                               Role
                        Role B   Query

                        Worker
                                 Query
  Query                                  Reduction of bandwidth
                        Role C
                                            and transactions!
                                 Query
                        Worker
  Query                          Query
                        Role D
                                 Query                Worker
                                                      Role
                        Worker   Query
  Query                 Role E
                                 Query


                                                          Page 24
Be aware of “new costs” e.g. polling
   •   Consider introducing polling a queue every 100ms
   •   25,920,000 polls/month
   •   £0.0061 per 10,000 storage transactions
   •   Therefore it will cost
         – £15.81/month
   • To get an SLA, need two worker roles polling
         – £31.62/month
   • Cost of two workers
         – £0.0728 per hour x 720 x 2
         – £104.83/month
   • Total cost £136.45/month
TIP: Yet a 1GB SQL Azure will cost you £6/month 




                                                          Page 25
Be aware of cost


                             140 million                                  $140
    Transactions per Month



                             120 million                                  $120




                                                                                 Cost per Month
                             100 million                                  $100

                              80 million                                  $80

                              60 million                                  $60

                              40 million                                  $40

                              20 million                                  $20

                                      0
                                           1 instance       5 instances
                                            100 ms            100 ms
                                           Instances polling storage

                                                                                                  Page 26
Be aware of cost


                             140 million                                  $140
    Transactions per Month



                             120 million                                  $120




                                                                                 Cost per Month
                             100 million                                  $100

                              80 million                                  $80

                              60 million                                  $60

                              40 million                                  $40

                              20 million                                  $20

                                      0
                                           5 instances      5 instances
                                             100 ms          1 second
                                           Instances polling storage

                                                                                                  Page 27
Be aware of cost

Be wary of frequent transactions with little work being done

                                  140 million                                           $140
         Transactions per Month



                                  120 million                                           $120




                                                                                               Cost per Month
                                                                     Unnecessary Cost
                                  100 million                                           $100

                                   80 million                                           $80

                                   60 million                                           $60

                                   40 million                                           $40

                                   20 million                                           $20

                                           0
                                                5 instances      Polls which
                                                  100 ms         found work
                                                 Instances polling storage

                                                                                                                Page 28
Polling best practices

• Poll less often
• Synchronize polling with
  business needs               8am to       12am til 4am
                               12pm –         – every 1
                             every 100ms       minute




                                 4am til 8am – every
                                    10 seconds




                                                           Page 29
Polling best practices cont.
    Scalable Message Passing                 Meta-Message Passing


  HR         Finance      Sales           HR            Finance       Sales
Message      Message     Message        Message        Message       Message




                                                    Meta-queue
                                                          HR
 HR          Finance      Sales
                                                       Finance
Queue        Queue        Queue
                                                        Sales
       10         10              5                    Finance
       Sec        Sec            Sec                          10
                                                              Sec
  Worker       Worker          Worker             Meta-worker Role
  Role         Role            Role
                                                    Message Type?




                                                                          Page 30
Data/State




             Page 31
Data/State

• Windows Azure instances are highly dynamic
  – Role instance local data is volatile
• Instances are independent
  – State changes are not reflected in other instances
• Therefore
  – Local instance storage is only useful for temporary
    data or as a cache
  – All other data needs to be moved to durable storage




                                                          Page 32
Durable forms of storage in Windows Azure
• Windows Azure Storage
  – Blobs
     • Page – random read/writes
     • Block – streaming
     • Drive – legacy
  – Queues
  – Tables
• SQL Azure Database
  – Tables
                  TIP: SQL Azure has concurrency limits

                  TIP: You need SQL Server 2008 R2 Management Studio

                  TIP: Use Blob snapshots when you only need read access

                  TIP: For heavy read systems, distribute Blob reads across many workers

                                                                                     Page 33
Example: Registry/Configuration/User
Settings
Commonly this is stored in the registry, xml or ini files.




                  Options                     Best Case Usage

       Blob storage                    Configuration file that is read
                                       only once during app load
       SQL database                    Used in environments where a
                                       SQL database already exists
       Windows Azure table             User settings that may be
                                       changed externally from the
                                       environment




                                                                         Page 34
Tables are funky


     Entity: Shiny red Car
     PK, RK, TS, att1, att2, att8



    Entity: Blue Bird
    PK, RK, TS, att1, att4



     Entity: 2008 Tax Return
     PK, RK, TS, att1, att2, att8, att9, att23, att46, att40




                                                               Page 35
Tables for storing Data

Why do this?
Partition     Row Key       Data         Data                  Data          Data
Key
Customer ID   Description   Name         Credit Card #         Order Total   Tracking ID
1             Customer      John Smith   xxxx-xxxx-xxxx-xxxx




                                                                                              Partition A
1             Order – 1                                        £35.12        Z783lhs
1             Order – 2                                        £75.00        Z829bhb
2             Customer      Bill Johnson xxxx-xxxx-xxxx-xxxx




                                                                                             Partition B
2             Order – 3                                        £10.00        Z778asd
2             Order – 4                                        £42.00        Z239uhy
3             Customer      Travis Jones xxxx-xxxx-xxxx-xxxx




                                                                                             Partition C
3             Order – 5                                        £25.93        Z329nps
3             Order – 6                                        £80.94        Z440ydd

                                                                                           Page 36
Selecting keys is … key
Consider searching an address book



       Search By         Partition Key                    Row Key
     Name            Last name + First initial First name + Middle initial
     Phone number Area code                    Number
     Address         County + city             House number + Street
                                               name




                           TIP: Table deletes take time
                           TIP: Replicate data to avoid joins and increase indexes
                                                                              Page 37
Data Sensitivity




                   Page 38
Segmentation


          Online Shop                                Online Shop




                                                        Product
                                                       catalogue


 Purchasing          Product
  Database          catalogue




                                Secure Transaction
                                   (Service Bus)



                                                                   Page 39
Sharding



       Contact ID
                               Contact ID
      First Name              First Name
                                                     Cloud
                               Last Name
       Last Name
                          Shipping Information
  Shipping Information

 Customer Credit Card #

    Social Security #
                                Contact ID
      Billing Data
                          Customer Credit Card #   On Premise
   Other Information
                             Social Security #
      On Premise
                             Other Information


                                                                Page 40
Encryption



       Contact ID
                               Contact ID
      First Name              First Name
                                                   Cloud
                               Last Name
       Last Name
                          Shipping Information
  Shipping Information       £!”$&$%!&£%

 Customer Credit Card #      !£$&!%£&%*

    Social Security #         £”$&!%*^(&

      Billing Data            ^$”$&%$”&
                                                 On Premises
   Other Information

      On Premises



                                                               Page 41
Agenda   Overview
         •   Role Instances
         •   Latency & timeouts
         •   Transactions & bandwidth
         •   Data/state
         •   Data sensitivity
         Summary




                                        Page 42
Summary
• Windows Web Development best practices apply
• But
• Cost becomes surprisingly significant in shaping
  architectures
• Plenty of early adopters, therefore
  – Good best practice are now appearing
  – Plenty of detail to dig into




                                                 Page 43
NEXT STEPS
  For latest slides and all the links http://bit.ly/ericnelson
  For more resources and information http://bit.ly/startazure

  As an ISV intending to explore/adopt azure, sign up to http://bit.ly/ukmpr
  and come along and meet with us http://blogs.msdn.com/b/ukisvdev




      Eric Nelson | ISV Application Architect | Microsoft UK
      eric.nelson@microsoft.com | http://bit.ly/ericnelson | http://twitter.com/ericnel


                                                                                          Page 44

Contenu connexe

En vedette

Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesSriram Krishnan
 
Microsoft Azure Rights Management
Microsoft Azure Rights ManagementMicrosoft Azure Rights Management
Microsoft Azure Rights ManagementDavid J Rosenthal
 
フロントエンドの設計に関する考察
フロントエンドの設計に関する考察フロントエンドの設計に関する考察
フロントエンドの設計に関する考察暁 三宅
 
Azure Active Directory
Azure Active DirectoryAzure Active Directory
Azure Active DirectorySovelto
 
Using Azure Functions for Integration
Using Azure Functions for IntegrationUsing Azure Functions for Integration
Using Azure Functions for IntegrationBizTalk360
 
Cloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMSCloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMSMorgan Simonsen
 
Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...
Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...
Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...Microsoft Private Cloud
 
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...Morgan Simonsen
 
Enterprise Mobility Suite-Microsoft Intune
Enterprise Mobility Suite-Microsoft IntuneEnterprise Mobility Suite-Microsoft Intune
Enterprise Mobility Suite-Microsoft IntuneLai Yoong Seng
 
Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.LAP1aW
 
Diplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben InlineskaterDiplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben InlineskaterDaniel Reichl
 
NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014Design Powers, Inc.
 

En vedette (15)

Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
 
Microsoft Azure Rights Management
Microsoft Azure Rights ManagementMicrosoft Azure Rights Management
Microsoft Azure Rights Management
 
フロントエンドの設計に関する考察
フロントエンドの設計に関する考察フロントエンドの設計に関する考察
フロントエンドの設計に関する考察
 
Azure Active Directory
Azure Active DirectoryAzure Active Directory
Azure Active Directory
 
Using Azure Functions for Integration
Using Azure Functions for IntegrationUsing Azure Functions for Integration
Using Azure Functions for Integration
 
Cloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMSCloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMS
 
Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...
Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...
Microsoft Windows Azure - Security Best Practices for Developing Windows Azur...
 
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
 
Enterprise Mobility Suite-Microsoft Intune
Enterprise Mobility Suite-Microsoft IntuneEnterprise Mobility Suite-Microsoft Intune
Enterprise Mobility Suite-Microsoft Intune
 
Galapagos Big 15
Galapagos Big 15Galapagos Big 15
Galapagos Big 15
 
Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.
 
Diplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben InlineskaterDiplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben Inlineskater
 
NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014
 
MSc Individual Project
MSc Individual ProjectMSc Individual Project
MSc Individual Project
 
Bertram Gugel "Social TV"
Bertram Gugel "Social TV"Bertram Gugel "Social TV"
Bertram Gugel "Social TV"
 

Similaire à Windows Azure Platform Best Practices Overview

Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)Chris Richardson
 
10 things ever architect should know about the Windows Azure Platform - ericnel
10 things ever architect should know about the Windows Azure Platform -  ericnel10 things ever architect should know about the Windows Azure Platform -  ericnel
10 things ever architect should know about the Windows Azure Platform - ericnelEric Nelson
 
Flex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIGFlex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIGChris Richardson
 
Decomposing applications for deployability and scalability #springone2gx #s12gx
Decomposing applications for deployability and scalability #springone2gx #s12gxDecomposing applications for deployability and scalability #springone2gx #s12gx
Decomposing applications for deployability and scalability #springone2gx #s12gxChris Richardson
 
Kuldeep presentation ppt
Kuldeep presentation pptKuldeep presentation ppt
Kuldeep presentation pptkuldeep khichar
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry BootcampJoshua Long
 
Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Chris Richardson
 
Decomposing applications for deployability and scalability (cfopentour india)
Decomposing applications for deployability and scalability (cfopentour india)Decomposing applications for deployability and scalability (cfopentour india)
Decomposing applications for deployability and scalability (cfopentour india)Chris Richardson
 
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...Shreeraj Shah
 
An Execution Engine For Semantic Business Processes
An Execution Engine For Semantic Business ProcessesAn Execution Engine For Semantic Business Processes
An Execution Engine For Semantic Business ProcessesTammo van Lessen
 
Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1Microsoft TechNet - Belgium and Luxembourg
 
Integrated Campus Management System on Axpert™
Integrated Campus Management System on Axpert™ Integrated Campus Management System on Axpert™
Integrated Campus Management System on Axpert™ AGILE LABS,INDIA
 
Oracle - Programatica2010
Oracle - Programatica2010Oracle - Programatica2010
Oracle - Programatica2010Agora Group
 
First Operational Technology (OT) High Performance Messaging Patterns for Ent...
First Operational Technology (OT) High Performance Messaging Patterns for Ent...First Operational Technology (OT) High Performance Messaging Patterns for Ent...
First Operational Technology (OT) High Performance Messaging Patterns for Ent...Real-Time Innovations (RTI)
 
Netflix Cloud Platform Building Blocks
Netflix Cloud Platform Building BlocksNetflix Cloud Platform Building Blocks
Netflix Cloud Platform Building BlocksSudhir Tonse
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EEDmitri Shiryaev
 
Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...
Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...
Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...Rafael Osório
 
Testing Rich Domain Models
Testing Rich Domain ModelsTesting Rich Domain Models
Testing Rich Domain ModelsChris Richardson
 
Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications Common Sense
 
vert.x - asynchronous event-driven web applications on the JVM
vert.x - asynchronous event-driven web applications on the JVMvert.x - asynchronous event-driven web applications on the JVM
vert.x - asynchronous event-driven web applications on the JVMjbandi
 

Similaire à Windows Azure Platform Best Practices Overview (20)

Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)
 
10 things ever architect should know about the Windows Azure Platform - ericnel
10 things ever architect should know about the Windows Azure Platform -  ericnel10 things ever architect should know about the Windows Azure Platform -  ericnel
10 things ever architect should know about the Windows Azure Platform - ericnel
 
Flex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIGFlex For Java Developers - SDForum Java SIG
Flex For Java Developers - SDForum Java SIG
 
Decomposing applications for deployability and scalability #springone2gx #s12gx
Decomposing applications for deployability and scalability #springone2gx #s12gxDecomposing applications for deployability and scalability #springone2gx #s12gx
Decomposing applications for deployability and scalability #springone2gx #s12gx
 
Kuldeep presentation ppt
Kuldeep presentation pptKuldeep presentation ppt
Kuldeep presentation ppt
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)
 
Decomposing applications for deployability and scalability (cfopentour india)
Decomposing applications for deployability and scalability (cfopentour india)Decomposing applications for deployability and scalability (cfopentour india)
Decomposing applications for deployability and scalability (cfopentour india)
 
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...
 
An Execution Engine For Semantic Business Processes
An Execution Engine For Semantic Business ProcessesAn Execution Engine For Semantic Business Processes
An Execution Engine For Semantic Business Processes
 
Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1
 
Integrated Campus Management System on Axpert™
Integrated Campus Management System on Axpert™ Integrated Campus Management System on Axpert™
Integrated Campus Management System on Axpert™
 
Oracle - Programatica2010
Oracle - Programatica2010Oracle - Programatica2010
Oracle - Programatica2010
 
First Operational Technology (OT) High Performance Messaging Patterns for Ent...
First Operational Technology (OT) High Performance Messaging Patterns for Ent...First Operational Technology (OT) High Performance Messaging Patterns for Ent...
First Operational Technology (OT) High Performance Messaging Patterns for Ent...
 
Netflix Cloud Platform Building Blocks
Netflix Cloud Platform Building BlocksNetflix Cloud Platform Building Blocks
Netflix Cloud Platform Building Blocks
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EE
 
Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...
Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...
Welcome to the Jungle: Implementing BPM in Amazon Rain Forest - Government of...
 
Testing Rich Domain Models
Testing Rich Domain ModelsTesting Rich Domain Models
Testing Rich Domain Models
 
Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications
 
vert.x - asynchronous event-driven web applications on the JVM
vert.x - asynchronous event-driven web applications on the JVMvert.x - asynchronous event-driven web applications on the JVM
vert.x - asynchronous event-driven web applications on the JVM
 

Plus de Eric Nelson

SQL Azure Dec 2010 Update
SQL Azure Dec 2010 UpdateSQL Azure Dec 2010 Update
SQL Azure Dec 2010 UpdateEric Nelson
 
SQL Azure Dec Update
SQL Azure Dec UpdateSQL Azure Dec Update
SQL Azure Dec UpdateEric Nelson
 
Windows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelWindows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelEric Nelson
 
Technology Roadmap by ericnel
Technology Roadmap by ericnelTechnology Roadmap by ericnel
Technology Roadmap by ericnelEric Nelson
 
Windows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelWindows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelEric Nelson
 
Lap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnelLap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnelEric Nelson
 
Windows Azure Platform: Articles from the Trenches, Volume One
Windows Azure Platform: Articles from the Trenches, Volume OneWindows Azure Platform: Articles from the Trenches, Volume One
Windows Azure Platform: Articles from the Trenches, Volume OneEric Nelson
 
Looking at the clouds through dirty windows
Looking at the clouds through dirty windows Looking at the clouds through dirty windows
Looking at the clouds through dirty windows Eric Nelson
 
SQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark daySQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark dayEric Nelson
 
Building An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql AzureBuilding An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql AzureEric Nelson
 
Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010Eric Nelson
 
Windows Azure In 30mins for none technical audience
Windows Azure In 30mins for none technical audienceWindows Azure In 30mins for none technical audience
Windows Azure In 30mins for none technical audienceEric Nelson
 
Dev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency SlidesDev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency SlidesEric Nelson
 
Design Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows AzureDesign Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows AzureEric Nelson
 
What Impact Will Entity Framework Have On Architecture
What Impact Will Entity Framework Have On ArchitectureWhat Impact Will Entity Framework Have On Architecture
What Impact Will Entity Framework Have On ArchitectureEric Nelson
 
Windows Azure Overview
Windows Azure OverviewWindows Azure Overview
Windows Azure OverviewEric Nelson
 
SQL Data Service Overview
SQL Data Service OverviewSQL Data Service Overview
SQL Data Service OverviewEric Nelson
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2Eric Nelson
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework OverviewEric Nelson
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 OverviewEric Nelson
 

Plus de Eric Nelson (20)

SQL Azure Dec 2010 Update
SQL Azure Dec 2010 UpdateSQL Azure Dec 2010 Update
SQL Azure Dec 2010 Update
 
SQL Azure Dec Update
SQL Azure Dec UpdateSQL Azure Dec Update
SQL Azure Dec Update
 
Windows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelWindows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnel
 
Technology Roadmap by ericnel
Technology Roadmap by ericnelTechnology Roadmap by ericnel
Technology Roadmap by ericnel
 
Windows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelWindows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnel
 
Lap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnelLap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnel
 
Windows Azure Platform: Articles from the Trenches, Volume One
Windows Azure Platform: Articles from the Trenches, Volume OneWindows Azure Platform: Articles from the Trenches, Volume One
Windows Azure Platform: Articles from the Trenches, Volume One
 
Looking at the clouds through dirty windows
Looking at the clouds through dirty windows Looking at the clouds through dirty windows
Looking at the clouds through dirty windows
 
SQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark daySQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark day
 
Building An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql AzureBuilding An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql Azure
 
Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010
 
Windows Azure In 30mins for none technical audience
Windows Azure In 30mins for none technical audienceWindows Azure In 30mins for none technical audience
Windows Azure In 30mins for none technical audience
 
Dev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency SlidesDev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency Slides
 
Design Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows AzureDesign Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows Azure
 
What Impact Will Entity Framework Have On Architecture
What Impact Will Entity Framework Have On ArchitectureWhat Impact Will Entity Framework Have On Architecture
What Impact Will Entity Framework Have On Architecture
 
Windows Azure Overview
Windows Azure OverviewWindows Azure Overview
Windows Azure Overview
 
SQL Data Service Overview
SQL Data Service OverviewSQL Data Service Overview
SQL Data Service Overview
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework Overview
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 Overview
 

Dernier

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Dernier (20)

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Windows Azure Platform Best Practices Overview

  • 1. Windows Azure Platform Best Practices Eric Nelson | ISV Application Architect | Microsoft UK eric.nelson@microsoft.com | http://bit.ly/ericnelson | http://twitter.com/ericnel Page 1
  • 2. Assumption • You already have familiarity with the Windows Azure Platform • If you don’t then you will still learn stuff – But you will be missing some context. Sorry Page 2
  • 3. Agenda Overview • Role Instances • Latency & timeouts • Transactions & bandwidth • Data/state • Data sensitivity Summary Page 3
  • 4. Overview Page 4
  • 5. Windows Azure Platform makes it easy and cost effective to run your applications and store your data inside Microsoft Data Centres using existing skills and integrate with your existing on-premise applications Page 5
  • 6. Vs traditional Windows development It’s not really It’s not really different. different. There is just There is just more of it less of it Therefore many Windows Web development best practices apply Page 6
  • 7. Agenda Overview • Role Instances • Latency & timeouts • Transactions & bandwidth • Data/state • Data sensitivity Summary Page 7
  • 8. Role Instances Page 8
  • 9. Instances of Role Types “Typical Application” But… Finance Web Message Finance Web Web Role A Message Role A Role A Queue Queue 10 Sec 10 Sec Worker Role A Worker Worker Role A Role A TIP: Queue writes are approx 20/s per writer Page 9
  • 10. Consolidation of Role Types Scalable Message Passing Meta-Message Passing HR Finance Sales HR Finance Sales Message Message Message Message Message Message Meta-queue HR HR Finance Sales Finance Queue Queue Queue Sales 10 10 5 Finance Sec Sec Sec 10 Sec Worker Worker Worker Meta-worker Role Role Role Role Message Type? TIP: Web Roles can communicate direct to Workers TIP: Maximum time to process a Q Item is 2 hours Page 10
  • 11. Remember that SLA? Your instances will stop Patching React Notification of • When an instance goes away, it’s Moving instance gone, including its state! lifecycle events Failure Page 11
  • 12. Role instance management example Page 12
  • 13. Elasticity and Roles From this To this Finance Web Web Finance Web Web Web Message Role A Role A Message Role A Role A Role A 10 to 15 Queue minutes Queue 10 Sec 10 Sec Worker Worker Worker Worker Role A Role A Role A Role A Page 13
  • 15. Latency On premises application App Data Service App Request Consistent and accepted latencies Cloud based application App Service Data App Request Increases in quantity and variability of latencies TIP: Expect Web Role to SQL Azure to take about twice as long Page 15
  • 16. Timeout On premises application Try to connect Service App App Request Data Consistent, reliable connectivity and access Connection Yes Continue doing Successful? work Cloud based application Timeouts? No Service App App Request Data No Tried 5 Yes Increased likelihood of timeouts times? Fail Page 16
  • 17. SQL Azure – you must use retries! • Transient network issues – Loss of connection • The Fabric may auto-magically reconnect your session to a replica of your data – Some result in termination of client session • Throttling – Excessive resource usage, long running transactions – Can lead to • Termination of client session • Temporary inability to establish a new connection Page 17
  • 18. Timeout Retry Code Example Page 18
  • 19. Timeout Retry Code Example TIP: There is a new code library for all this! Page 19
  • 21. Transactions & bandwidth •Bandwidth • Charged for usage • Functionality that was not bandwidth Access Control based may now be effected. Per AC transactions/month • E.g. using Windows Azure Blobs instead of writing to disk Bandwidth Per GB transfer to/from datacenter •Transactions • Charged by quantity Storage • Access types that were not Per GB stored & transactions traditionally on a transaction count may now be effected. Service Bus • E.g. using Access Control Services Per connection/month and Storage Page 21
  • 22. Data center usage costing comparison Web Role Web Role Transaction Transaction Browser Image Download Blob Browser Image Download Blob Bandwidth Bandwidth Egress Egress Page 22
  • 23. Batch Payloads Frequent message Option 1: passing with a small Serialized amount of data can Message Passing # of ops Header effect performance and Header Header cost. Header Header Content Content Content Header Total Bytes or Content Overhead Content Content Content Header Message Content Structure Content Header Option 2; Content # of ops TIP: Q items 8KB limit Packaged Message Content TIP: Watch out for data formats! Passing Content Total Bytes TIP: Use storage APIs to group transactions Page 23
  • 24. Batch Queries Single Query Use Batch Query Use Query Worker Query Role A Query Worker Worker Query Query Role Role B Query Worker Query Query Reduction of bandwidth Role C and transactions! Query Worker Query Query Role D Query Worker Role Worker Query Query Role E Query Page 24
  • 25. Be aware of “new costs” e.g. polling • Consider introducing polling a queue every 100ms • 25,920,000 polls/month • £0.0061 per 10,000 storage transactions • Therefore it will cost – £15.81/month • To get an SLA, need two worker roles polling – £31.62/month • Cost of two workers – £0.0728 per hour x 720 x 2 – £104.83/month • Total cost £136.45/month TIP: Yet a 1GB SQL Azure will cost you £6/month  Page 25
  • 26. Be aware of cost 140 million $140 Transactions per Month 120 million $120 Cost per Month 100 million $100 80 million $80 60 million $60 40 million $40 20 million $20 0 1 instance 5 instances 100 ms 100 ms Instances polling storage Page 26
  • 27. Be aware of cost 140 million $140 Transactions per Month 120 million $120 Cost per Month 100 million $100 80 million $80 60 million $60 40 million $40 20 million $20 0 5 instances 5 instances 100 ms 1 second Instances polling storage Page 27
  • 28. Be aware of cost Be wary of frequent transactions with little work being done 140 million $140 Transactions per Month 120 million $120 Cost per Month Unnecessary Cost 100 million $100 80 million $80 60 million $60 40 million $40 20 million $20 0 5 instances Polls which 100 ms found work Instances polling storage Page 28
  • 29. Polling best practices • Poll less often • Synchronize polling with business needs 8am to 12am til 4am 12pm – – every 1 every 100ms minute 4am til 8am – every 10 seconds Page 29
  • 30. Polling best practices cont. Scalable Message Passing Meta-Message Passing HR Finance Sales HR Finance Sales Message Message Message Message Message Message Meta-queue HR HR Finance Sales Finance Queue Queue Queue Sales 10 10 5 Finance Sec Sec Sec 10 Sec Worker Worker Worker Meta-worker Role Role Role Role Message Type? Page 30
  • 31. Data/State Page 31
  • 32. Data/State • Windows Azure instances are highly dynamic – Role instance local data is volatile • Instances are independent – State changes are not reflected in other instances • Therefore – Local instance storage is only useful for temporary data or as a cache – All other data needs to be moved to durable storage Page 32
  • 33. Durable forms of storage in Windows Azure • Windows Azure Storage – Blobs • Page – random read/writes • Block – streaming • Drive – legacy – Queues – Tables • SQL Azure Database – Tables TIP: SQL Azure has concurrency limits TIP: You need SQL Server 2008 R2 Management Studio TIP: Use Blob snapshots when you only need read access TIP: For heavy read systems, distribute Blob reads across many workers Page 33
  • 34. Example: Registry/Configuration/User Settings Commonly this is stored in the registry, xml or ini files. Options Best Case Usage Blob storage Configuration file that is read only once during app load SQL database Used in environments where a SQL database already exists Windows Azure table User settings that may be changed externally from the environment Page 34
  • 35. Tables are funky Entity: Shiny red Car PK, RK, TS, att1, att2, att8 Entity: Blue Bird PK, RK, TS, att1, att4 Entity: 2008 Tax Return PK, RK, TS, att1, att2, att8, att9, att23, att46, att40 Page 35
  • 36. Tables for storing Data Why do this? Partition Row Key Data Data Data Data Key Customer ID Description Name Credit Card # Order Total Tracking ID 1 Customer John Smith xxxx-xxxx-xxxx-xxxx Partition A 1 Order – 1 £35.12 Z783lhs 1 Order – 2 £75.00 Z829bhb 2 Customer Bill Johnson xxxx-xxxx-xxxx-xxxx Partition B 2 Order – 3 £10.00 Z778asd 2 Order – 4 £42.00 Z239uhy 3 Customer Travis Jones xxxx-xxxx-xxxx-xxxx Partition C 3 Order – 5 £25.93 Z329nps 3 Order – 6 £80.94 Z440ydd Page 36
  • 37. Selecting keys is … key Consider searching an address book Search By Partition Key Row Key Name Last name + First initial First name + Middle initial Phone number Area code Number Address County + city House number + Street name TIP: Table deletes take time TIP: Replicate data to avoid joins and increase indexes Page 37
  • 38. Data Sensitivity Page 38
  • 39. Segmentation Online Shop Online Shop Product catalogue Purchasing Product Database catalogue Secure Transaction (Service Bus) Page 39
  • 40. Sharding Contact ID Contact ID First Name First Name Cloud Last Name Last Name Shipping Information Shipping Information Customer Credit Card # Social Security # Contact ID Billing Data Customer Credit Card # On Premise Other Information Social Security # On Premise Other Information Page 40
  • 41. Encryption Contact ID Contact ID First Name First Name Cloud Last Name Last Name Shipping Information Shipping Information £!”$&$%!&£% Customer Credit Card # !£$&!%£&%* Social Security # £”$&!%*^(& Billing Data ^$”$&%$”& On Premises Other Information On Premises Page 41
  • 42. Agenda Overview • Role Instances • Latency & timeouts • Transactions & bandwidth • Data/state • Data sensitivity Summary Page 42
  • 43. Summary • Windows Web Development best practices apply • But • Cost becomes surprisingly significant in shaping architectures • Plenty of early adopters, therefore – Good best practice are now appearing – Plenty of detail to dig into Page 43
  • 44. NEXT STEPS For latest slides and all the links http://bit.ly/ericnelson For more resources and information http://bit.ly/startazure As an ISV intending to explore/adopt azure, sign up to http://bit.ly/ukmpr and come along and meet with us http://blogs.msdn.com/b/ukisvdev Eric Nelson | ISV Application Architect | Microsoft UK eric.nelson@microsoft.com | http://bit.ly/ericnelson | http://twitter.com/ericnel Page 44