SlideShare una empresa de Scribd logo
1 de 46
Scalable Windows Azure Patterns
Presented by Nikolai Blackie @ Auckland Connected Systems User Group
Principal Architect
Adaptiv Integration
20th of October 2011
Agenda

 Overview the patterns of scalability
 Overview the scale targets on Windows Azure and how to
 scale past these
 Introduce Windows Azure CAT team cloud scalability
 framework – CloudFx
 Demonstrate Adaptiv’s scaled out distributed architecture
 Show how you can save money when scaling on Windows
 Azure
Traditional Scalability
Traditional Scalability
Traditional Scalability Issues
  Synchronous sequential units of work
  Large units of work
  Tight coupling between components
  Stateful applications
  Clustering for HA
  Expensive
  Scaling limits
  Inefficient use of resources

  How should you approach this in the cloud?
Logical Unit Of Work
Parallel Units Of Work




   Single Threaded       Multi Threaded
Event Driven Processing
  Storage Queues
  ► Enable event driven architectures
  ► Allow load levelling

  ► Scale target of 500 messages per

    second
  Service Bus V1
  ► Low latency relay
  ► Non durable direct eventing

  Service Bus V2
  ►   Durable asynchronous pub-sub and
      queues
Load Distribution
Load Balancing / Load Sharing

          Stateless Round Robin Network Load Balancer



          Web Role             Web Role                 Web Role



        Queue



        Worker Role          Worker Role              Worker Role

            Legend Azure Instance
                                       Unit of Work
Vertical Partitioning
Vertical Partitioning
Horizontal Partitioning



                               Partitioned Cloud Queue
                      http://partitioncloudqueue.codeplex.com/
Storage Services Scalability Targets
 Maximum scale per account
     Capacity – Up to 100 TBs
     Transactions – Up to 5,000 entities/messages/blobs per second
     Bandwidth – Up to 3 gigabits per second
 Per storage abstraction
 ► Single Queue - 500 messages per second
 ► Single Table Partition - 500 entities per second

 ► Single Blob - 60 MBytes/sec

 When targets reached?
 ► 503 Server busy – transient not fatal
 ► Use Upsert on batch operations
Storage Services Scalability Targets

 Front-End (FE)
 layer
 Partition Layer
 Distributed and
 replicated File
 System (DFS)
Service Bus Scalability Targets
 Quotas per service namespace
  Concurrent connections – 100
  Number of topics/queues - 10,000
  Number of subscriptions per topic - 2,000
  Maximum Queue size – 1gb – 5gb
 Throughput Targets
  Queues depending on message size much faster than storage
  queues
  Topics throughput dependent on subscription counts
  Official guidance is coming soon
Sql Azure Scalability Targets
 No official guidance on I/O performance
 Sql Azure is a multi tenant database platform
 Runs on commodity hardware
 Throttled when connection overloads Sql Azure
Sharding Techniques
Cloud Scalability – Scale Up

 Azure Role   Cost (NZD)          CPU            Bandwidth   Memory
   XSmall       $0.06      Shared Core 1.0 GHz     5 Mbps    0.768 GB
    Small       $0.14        1 Core 1.6 GHz       100 Mbps   1.750 GB
  Medium        $0.28        2 Cores 1.6 GHz      200 Mbps    3.50 GB
   Large        $0.55        4 Cores 1.6 GHz      400 Mbps    7.00 GB
   XLarge       $1.10        8 Cores 1.6 GHz      800 Mbps    14.0 GB
Cloud Scalability – Scale Up

             Edition   Database   Cost (NZD)
              Web        1GB       $ 11.48
              Web        5GB       $ 57.41
            Business    10GB       $ 114.93
            Business    20GB       $ 229.86
            Business    30GB       $ 344.79
            Business    40GB       $ 459.72
            Business    50GB       $ 574.66
Cloud Scalability Key Features
  Small logical units of work
  Parallel units of work
  Event driven processing
  Load distribution
  ► Load balancing
  ► Vertical partitioning

  ► Horizontal partitioning

  Low cost scale out
  Dynamic scale up
Scalable Frameworks
  Windows Azure CAT Team Azure CloudFx Reference
  Library & Implementation
CloudFx Framework Features

►   CloudFx is a cloud solution framework and extensions
    library
►   A Swiss army knife for building scalable systems
    ► Service agnostic retries
    ► Large message queue

    ► Payload compression

    ► And much more….
Cost-Efficient Queue Listener

  Anti-Pattern continuous
  queue polling when idle
  Notify of new work
  Provision parallel dequeue
  threads & increase poll rate
  When no work reduce
  threads & polling rate
  Very efficient event based
  processing
Reliable Retry Framework
  Anti-Pattern failing catastrophically
  or rerunning entire processes due
  to service call failure
  Call to resource fails
  Retry based on configured pattern
  ►   Fixed, Incremental, Exponential
  Ensure Idempotent operations
Reliable Retry Framework
  Anti-Pattern failing catastrophically
  or rerunning entire processes due
  to service call failure
  Call to resource fails
  Retry based on configured pattern
  ►   Fixed, Incremental, Exponential
  Ensure Idempotent operations
  Expect failure, design for fault
  tolerance
  ► Netflix Simian Army
  ► CloudFx unit tests
Service Aggregation
  Anti-Pattern tightly coupled
  service deployments
  Enable flexible service
  aggregation
  Implemented using
  System.ServiceModel
  Extensions
  ► IExtensible<T>
  ► IExtensibleObject<T>

  Consolidate services or
  partition vertically
Large Message Queue Support
  Anti-Pattern writing custom code
  to handle queue storage limits of
  64kb message size
  Abstracted support for messages
  of any size
  Built in compression when writing
  to all services
  Utilises DeflateStream
  Compress on write, decompress
  on read
Scalable Reconciliation Implementation
Scalable Reconciliation Implementation
Scalable Reconciliation Implementation
Reconciliation Scale Out Demo
Cost Capacity Planning
  Storage Transactions
  ►   Queues 1 transaction to put, 2 transactions to get and delete
        Can batch up to 32 get message operations in 1 transaction
  ►   Table storage 1 transaction for read/write
        Can batch 100 entity transactions is into 1 group transaction
  ►   Blobs 1 transaction for read/write
  Bandwidth
  ► Measured from outside and between data centers
  ► Free inbound data
Cost Capacity Planning
  Storage
  ►   Cumulative total through month, charged on average usage
  Compute Instances
  ► Charged as soon as virtual instance allocated regardless of
    running state
  ► Billed to the nearest hour

  Measurement
  ► Instrument Azure service access
  ► Use billing manager with A & B testing approach
Cost-Efficient Queue Listener
                                                                    Idle Polling *
     Polling Algorithm                            Transactions Per Day Service Bus Cost Per Day
     Standard
     One Dequeue Thread                                       79,200   $         -     $      0.09
     10 Compute Instances - 150 Dequeue Threads           11,880,000   $         -     $     13.66
     Back off
     One Dequeue Thread                                          -     $        4.59   $      0.15
     10 Compute Instances - 150 Dequeue Threads                  -     $       22.87   $      0.76
     * 22 hours per day
                                                                Running Polling **
     Polling Algorithm                                  Transactions Per Day       Cost Per Day
     One Dequeue Thread                                        72,000              $      0.08
     10 Compute Instances - 150 Dequeue Threads              10,800,000            $     12.41
     ** 2 hours per day, 5 msgs per sec, 2 trans per message

                                                                     Savings
     Polling Algorithm                                 Transactions Per Day          Cost Per Day
     One Dequeue Thread                                       79,200                 $     (0.06)
     10 Compute Instances - 150 Dequeue Threads             11880000                 $      12.89
Cost-Efficient Queue Listener




   * Terms and conditions apply, your mileage may vary, these
            calculations are based on simple models
Batching Units of Work

    Parsing a 10000 line file
     ► 10000 messages a day
     ► Table storage batch transactions

     ► Using scatter scale out pattern

 Batch Size   Queue Transactions    Table Transactions    Total Transactions Cost Per Day

10 Lines               30,000,000            10,000,000           40,000,000       $45.98

200 Lines               1,500,000               500,000             2,00,000       $ 2.30

2000 Lines                150,000                50,000              200,000        $0.23
Batching Units of Work




   * Terms and conditions apply, your mileage may vary, these
            calculations are based on simple models
Parallel Processing & Mixing Roles

                                             Per Day                                         Per Day
Utilisation                                   Cost      Utilisation                           Cost

5 Threads Dequeuing across 5 instances   $      16.55   One Service over 3 instances     $       9.93

25 Threads Dequeuing across 1 Instance   $       3.31   Three Services on one instance   $       3.31




          * Terms and conditions apply, your mileage may vary, these
                   calculations are based on simple models
Object Compression

  Compression Ratios
  ► Compressing a text based CSV 5:1 ratio
  ► Compressing a Xml file 10:1 ratio

  Based on 10000 CSV messages a day

  10000 Line CSV File   Blob Storage Space (GB) Cost Per Day
  Uncompressed 2064KB                      19.68           $3.39
  Compressed 390KB                           3.72          $0.64
  Savings                                  15.96           $2.75
Object Compression




   * Terms and conditions apply, your mileage may vary, these
            calculations are based on simple models
To Summarise
  You can scale with any combination of up and out using
  horizontal and vertical partitioning
  On the cloud make the most of the ability to scale out using
  small units of work
  Distribute load to reduce resource contention
  Make the best use of the resources you have paid for
  Use frameworks like CloudFx and                             to
  help you scale using best practices
  Use techniques like back off polling, batching, parallel
  processing and compression to reduce costs
Links
   Windows Azure Capacity Assessment


   Building Highly Scalable Java Applications on Windows Azure


   Cost Architecting for Windows Azure


   Understanding Windows Azure Storage Billing – Bandwidth, Transactions,
   and Capacity


   Operational costs of an Azure Message Queue
Links
   Windows Azure Storage Abstractions and their Scalability Targets

   Understanding the Scalability, Availability, Durability, and Billing of Windows
   Azure Storage

   Windows Azure Storage Architecture Overview

   Windows Azure AppFabric Service Bus Quotas

   Inside SQL Azure

   The Netflix Simian Army
Windows Azure CAT Links
   How to Simplify & Scale Inter-Role Communication Using Windows Azure
   AppFabric Service Bus


   Implementing Storage Abstraction Layer to Support Very Large Messages in
   Windows Azure Queues


   Transient Fault Handling Framework for SQL Azure, Windows Azure Storage,
   AppFabric Service Bus


   Best Practices for Maximizing Scalability and Cost Effectiveness of Queue-
   Based Messaging Solutions on Windows Azure
We would like to thank the sponsors. . .
      Premier Partners




      Associated Partners




      Supporting Partners:

Más contenido relacionado

La actualidad más candente

Cnam cours azure web sites
Cnam cours azure web sitesCnam cours azure web sites
Cnam cours azure web sitesAymeric Weinbach
 
Build a Cloud Day - CloudStack
Build a Cloud Day - CloudStackBuild a Cloud Day - CloudStack
Build a Cloud Day - CloudStackke4qqq
 
Apache Cassandra Management
Apache Cassandra ManagementApache Cassandra Management
Apache Cassandra ManagementInstaclustr
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud  resource managerCnam azure ze cloud  resource manager
Cnam azure ze cloud resource managerAymeric Weinbach
 
Successfully deploy build manage your cloud with cloud stack2
Successfully deploy build manage your cloud with cloud stack2Successfully deploy build manage your cloud with cloud stack2
Successfully deploy build manage your cloud with cloud stack2ke4qqq
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-SideASIMYILDIZ
 
OpenStack Database as a Service - Juno Updates
OpenStack Database as a Service - Juno UpdatesOpenStack Database as a Service - Juno Updates
OpenStack Database as a Service - Juno UpdatesOpenStack Foundation
 
MOOC Piattaforme digitali per la gestione del territorio - 4.3
MOOC Piattaforme digitali per la gestione del territorio - 4.3MOOC Piattaforme digitali per la gestione del territorio - 4.3
MOOC Piattaforme digitali per la gestione del territorio - 4.3Alessandro Bogliolo
 
Building a Service Mesh with Envoy (Kubecon May 2018)
Building a Service Mesh with Envoy (Kubecon May 2018)Building a Service Mesh with Envoy (Kubecon May 2018)
Building a Service Mesh with Envoy (Kubecon May 2018)Douglas Jones
 
Microservices using .Net core
Microservices using .Net coreMicroservices using .Net core
Microservices using .Net coregirish goudar
 
A practical approach to provisioning resources in azure
A practical approach to provisioning resources in azureA practical approach to provisioning resources in azure
A practical approach to provisioning resources in azureMorten Christensen
 
Connecting Kafka Across Multiple AWS VPCs
Connecting Kafka Across Multiple AWS VPCs Connecting Kafka Across Multiple AWS VPCs
Connecting Kafka Across Multiple AWS VPCs confluent
 
Azure service fabric
Azure service fabricAzure service fabric
Azure service fabric명신 김
 
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETESZalando adtech lab
 

La actualidad más candente (20)

Windows Azure Caching
Windows Azure CachingWindows Azure Caching
Windows Azure Caching
 
Cnam cours azure web sites
Cnam cours azure web sitesCnam cours azure web sites
Cnam cours azure web sites
 
Build a Cloud Day - CloudStack
Build a Cloud Day - CloudStackBuild a Cloud Day - CloudStack
Build a Cloud Day - CloudStack
 
Cnam azure 2015 storage
Cnam azure 2015  storageCnam azure 2015  storage
Cnam azure 2015 storage
 
Apache Cassandra Management
Apache Cassandra ManagementApache Cassandra Management
Apache Cassandra Management
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud  resource managerCnam azure ze cloud  resource manager
Cnam azure ze cloud resource manager
 
Successfully deploy build manage your cloud with cloud stack2
Successfully deploy build manage your cloud with cloud stack2Successfully deploy build manage your cloud with cloud stack2
Successfully deploy build manage your cloud with cloud stack2
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-Side
 
OpenStack Database as a Service - Juno Updates
OpenStack Database as a Service - Juno UpdatesOpenStack Database as a Service - Juno Updates
OpenStack Database as a Service - Juno Updates
 
MOOC Piattaforme digitali per la gestione del territorio - 4.3
MOOC Piattaforme digitali per la gestione del territorio - 4.3MOOC Piattaforme digitali per la gestione del territorio - 4.3
MOOC Piattaforme digitali per la gestione del territorio - 4.3
 
Building a Service Mesh with Envoy (Kubecon May 2018)
Building a Service Mesh with Envoy (Kubecon May 2018)Building a Service Mesh with Envoy (Kubecon May 2018)
Building a Service Mesh with Envoy (Kubecon May 2018)
 
SQL Azure
SQL AzureSQL Azure
SQL Azure
 
Microservices using .Net core
Microservices using .Net coreMicroservices using .Net core
Microservices using .Net core
 
A practical approach to provisioning resources in azure
A practical approach to provisioning resources in azureA practical approach to provisioning resources in azure
A practical approach to provisioning resources in azure
 
Connecting Kafka Across Multiple AWS VPCs
Connecting Kafka Across Multiple AWS VPCs Connecting Kafka Across Multiple AWS VPCs
Connecting Kafka Across Multiple AWS VPCs
 
EVCache at Netflix
EVCache at NetflixEVCache at Netflix
EVCache at Netflix
 
Windows Azure Storage – Architecture View
Windows Azure Storage – Architecture ViewWindows Azure Storage – Architecture View
Windows Azure Storage – Architecture View
 
Azure service fabric
Azure service fabricAzure service fabric
Azure service fabric
 
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
 
MicroServices on Azure
MicroServices on AzureMicroServices on Azure
MicroServices on Azure
 

Destacado

Network and Order project
Network and Order projectNetwork and Order project
Network and Order projectThomas Haymes
 
T&I Consultancy - General Presentation
T&I Consultancy - General PresentationT&I Consultancy - General Presentation
T&I Consultancy - General PresentationIlham Hajiyev
 
(296)long una coalicion progresista
(296)long una coalicion progresista(296)long una coalicion progresista
(296)long una coalicion progresistaManfredNolte
 
Vacature Junior / Medior Developer
Vacature Junior / Medior DeveloperVacature Junior / Medior Developer
Vacature Junior / Medior Developersilvion
 
Feel great Every day - No more aches and pains
Feel great Every day - No more aches and painsFeel great Every day - No more aches and pains
Feel great Every day - No more aches and painsDr Gary Tho
 
Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...
Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...
Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...Alexandra Tran
 
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
 
Ucl introduction to azure
Ucl   introduction to azureUcl   introduction to azure
Ucl introduction to azureLee Stott
 
Introduction to Windows Azure Platform
Introduction to Windows Azure PlatformIntroduction to Windows Azure Platform
Introduction to Windows Azure PlatformSergejus Barinovas
 
Tablas y almacenamiento en windows azure
Tablas y almacenamiento en windows azureTablas y almacenamiento en windows azure
Tablas y almacenamiento en windows azureEduardo Castro
 
Cloud Identity and Access Management
Cloud Identity and Access ManagementCloud Identity and Access Management
Cloud Identity and Access ManagementJarek Sokolnicki
 
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...David J Rosenthal
 
Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)ITCamp
 
Windows Azure Queues and Windows Azure Service Bus Queues
Windows Azure Queues and Windows Azure Service Bus QueuesWindows Azure Queues and Windows Azure Service Bus Queues
Windows Azure Queues and Windows Azure Service Bus QueuesJuan Pablo
 
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
 

Destacado (20)

Network and Order project
Network and Order projectNetwork and Order project
Network and Order project
 
T&I Consultancy - General Presentation
T&I Consultancy - General PresentationT&I Consultancy - General Presentation
T&I Consultancy - General Presentation
 
(296)long una coalicion progresista
(296)long una coalicion progresista(296)long una coalicion progresista
(296)long una coalicion progresista
 
Vacature Junior / Medior Developer
Vacature Junior / Medior DeveloperVacature Junior / Medior Developer
Vacature Junior / Medior Developer
 
Feel great Every day - No more aches and pains
Feel great Every day - No more aches and painsFeel great Every day - No more aches and pains
Feel great Every day - No more aches and pains
 
Landscaping
LandscapingLandscaping
Landscaping
 
Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...
Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...
Working With an Executive Search Firm: How to Maximize the Benefits as an Emp...
 
Filosofia en f
Filosofia en fFilosofia en f
Filosofia en f
 
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
 
Ucl introduction to azure
Ucl   introduction to azureUcl   introduction to azure
Ucl introduction to azure
 
Introduction to Windows Azure Platform
Introduction to Windows Azure PlatformIntroduction to Windows Azure Platform
Introduction to Windows Azure Platform
 
Introduction to Windows Azure
Introduction to Windows AzureIntroduction to Windows Azure
Introduction to Windows Azure
 
Introduction to windows azure
Introduction to windows azureIntroduction to windows azure
Introduction to windows azure
 
Introduction to Windows Azure
Introduction to Windows AzureIntroduction to Windows Azure
Introduction to Windows Azure
 
Tablas y almacenamiento en windows azure
Tablas y almacenamiento en windows azureTablas y almacenamiento en windows azure
Tablas y almacenamiento en windows azure
 
Cloud Identity and Access Management
Cloud Identity and Access ManagementCloud Identity and Access Management
Cloud Identity and Access Management
 
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
 
Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)
 
Windows Azure Queues and Windows Azure Service Bus Queues
Windows Azure Queues and Windows Azure Service Bus QueuesWindows Azure Queues and Windows Azure Service Bus Queues
Windows Azure Queues and Windows Azure Service Bus Queues
 
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
 

Similar a Acsug scalable windows azure patterns

Aws meetup (sep 2015) exprimir cada centavo
Aws meetup (sep 2015)   exprimir cada centavoAws meetup (sep 2015)   exprimir cada centavo
Aws meetup (sep 2015) exprimir cada centavoSebastian Montini
 
Desktop Private Cloud
Desktop Private CloudDesktop Private Cloud
Desktop Private CloudPaul Morse
 
AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...
AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...
AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...Amazon Web Services
 
Tips & Tricks On Architecting Windows Azure For Costs
Tips & Tricks On Architecting Windows Azure For CostsTips & Tricks On Architecting Windows Azure For Costs
Tips & Tricks On Architecting Windows Azure For CostsNuno Godinho
 
Improve your TCO and Optimise your Cloud Spend
Improve your TCO and Optimise your Cloud SpendImprove your TCO and Optimise your Cloud Spend
Improve your TCO and Optimise your Cloud SpendAmazon Web Services
 
High Performance Cloud Computing
High Performance Cloud ComputingHigh Performance Cloud Computing
High Performance Cloud ComputingAmazon Web Services
 
High Performance Cloud Computing
High Performance Cloud ComputingHigh Performance Cloud Computing
High Performance Cloud ComputingAmazon Web Services
 
AWS Webcast - An Introduction to High Performance Computing on AWS
AWS Webcast - An Introduction to High Performance Computing on AWSAWS Webcast - An Introduction to High Performance Computing on AWS
AWS Webcast - An Introduction to High Performance Computing on AWSAmazon Web Services
 
M6d cassandrapresentation
M6d cassandrapresentationM6d cassandrapresentation
M6d cassandrapresentationEdward Capriolo
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
Kubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & ComplexityKubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & ComplexityDevOps.com
 
Cost architecting for Windows Azure - NDC2011
Cost architecting for Windows Azure - NDC2011Cost architecting for Windows Azure - NDC2011
Cost architecting for Windows Azure - NDC2011Maarten Balliauw
 
AWS Cost Optimization
AWS Cost OptimizationAWS Cost Optimization
AWS Cost OptimizationMiles Ward
 
RedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach Shoolman
RedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach ShoolmanRedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach Shoolman
RedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach ShoolmanRedis Labs
 
Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...
Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...
Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...Estêvão Bissoli Saleme
 
Amazon Web Services (cloud: is it good for anything?)
Amazon Web Services (cloud: is it good for anything?)Amazon Web Services (cloud: is it good for anything?)
Amazon Web Services (cloud: is it good for anything?)Maciej Pasternacki
 

Similar a Acsug scalable windows azure patterns (20)

Architecture et coût
Architecture et coûtArchitecture et coût
Architecture et coût
 
Aws meetup (sep 2015) exprimir cada centavo
Aws meetup (sep 2015)   exprimir cada centavoAws meetup (sep 2015)   exprimir cada centavo
Aws meetup (sep 2015) exprimir cada centavo
 
Desktop Private Cloud
Desktop Private CloudDesktop Private Cloud
Desktop Private Cloud
 
AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...
AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...
AWS Summit Sydney | 50GB Mailboxes for 50,000 Users on AWS? Easy - Session Sp...
 
Tips & Tricks On Architecting Windows Azure For Costs
Tips & Tricks On Architecting Windows Azure For CostsTips & Tricks On Architecting Windows Azure For Costs
Tips & Tricks On Architecting Windows Azure For Costs
 
Improve your TCO and Optimise your Cloud Spend
Improve your TCO and Optimise your Cloud SpendImprove your TCO and Optimise your Cloud Spend
Improve your TCO and Optimise your Cloud Spend
 
High Performance Cloud Computing
High Performance Cloud ComputingHigh Performance Cloud Computing
High Performance Cloud Computing
 
High Performance Cloud Computing
High Performance Cloud ComputingHigh Performance Cloud Computing
High Performance Cloud Computing
 
AWS Webcast - An Introduction to High Performance Computing on AWS
AWS Webcast - An Introduction to High Performance Computing on AWSAWS Webcast - An Introduction to High Performance Computing on AWS
AWS Webcast - An Introduction to High Performance Computing on AWS
 
Kafka vs kinesis
Kafka vs kinesisKafka vs kinesis
Kafka vs kinesis
 
M6d cassandrapresentation
M6d cassandrapresentationM6d cassandrapresentation
M6d cassandrapresentation
 
Analytics on AWS - IP Expo 2013
Analytics on AWS - IP Expo 2013Analytics on AWS - IP Expo 2013
Analytics on AWS - IP Expo 2013
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Kubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & ComplexityKubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & Complexity
 
Cost architecting for Windows Azure - NDC2011
Cost architecting for Windows Azure - NDC2011Cost architecting for Windows Azure - NDC2011
Cost architecting for Windows Azure - NDC2011
 
AWS Cost Optimization
AWS Cost OptimizationAWS Cost Optimization
AWS Cost Optimization
 
RedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach Shoolman
RedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach ShoolmanRedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach Shoolman
RedisConf17 - Doing More With Redis - Ofer Bengal and Yiftach Shoolman
 
Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...
Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...
Efficient Cloud Resource Management - Unleashing FinOps for Azure Cost Optimi...
 
Amazon Web Services (cloud: is it good for anything?)
Amazon Web Services (cloud: is it good for anything?)Amazon Web Services (cloud: is it good for anything?)
Amazon Web Services (cloud: is it good for anything?)
 

Más de Nikolai Blackie

Event driven architectures for eCommerce Integration
Event driven architectures for eCommerce IntegrationEvent driven architectures for eCommerce Integration
Event driven architectures for eCommerce IntegrationNikolai Blackie
 
Hybrid integration with self hosted azure api gateways - published v1.0
Hybrid integration with self hosted azure api gateways - published v1.0Hybrid integration with self hosted azure api gateways - published v1.0
Hybrid integration with self hosted azure api gateways - published v1.0Nikolai Blackie
 
Building Event Driven Cloud Solutions with Microsoft Azure Event
Building Event Driven Cloud Solutions with Microsoft Azure EventBuilding Event Driven Cloud Solutions with Microsoft Azure Event
Building Event Driven Cloud Solutions with Microsoft Azure EventNikolai Blackie
 
ACSUG Feb 2018 iPaaS Royal Rumble
ACSUG Feb 2018 iPaaS Royal RumbleACSUG Feb 2018 iPaaS Royal Rumble
ACSUG Feb 2018 iPaaS Royal RumbleNikolai Blackie
 
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101Nikolai Blackie
 
Top ten integration productivity tools and frameworks - Integration Saturday ...
Top ten integration productivity tools and frameworks - Integration Saturday ...Top ten integration productivity tools and frameworks - Integration Saturday ...
Top ten integration productivity tools and frameworks - Integration Saturday ...Nikolai Blackie
 
Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Nikolai Blackie
 

Más de Nikolai Blackie (7)

Event driven architectures for eCommerce Integration
Event driven architectures for eCommerce IntegrationEvent driven architectures for eCommerce Integration
Event driven architectures for eCommerce Integration
 
Hybrid integration with self hosted azure api gateways - published v1.0
Hybrid integration with self hosted azure api gateways - published v1.0Hybrid integration with self hosted azure api gateways - published v1.0
Hybrid integration with self hosted azure api gateways - published v1.0
 
Building Event Driven Cloud Solutions with Microsoft Azure Event
Building Event Driven Cloud Solutions with Microsoft Azure EventBuilding Event Driven Cloud Solutions with Microsoft Azure Event
Building Event Driven Cloud Solutions with Microsoft Azure Event
 
ACSUG Feb 2018 iPaaS Royal Rumble
ACSUG Feb 2018 iPaaS Royal RumbleACSUG Feb 2018 iPaaS Royal Rumble
ACSUG Feb 2018 iPaaS Royal Rumble
 
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
 
Top ten integration productivity tools and frameworks - Integration Saturday ...
Top ten integration productivity tools and frameworks - Integration Saturday ...Top ten integration productivity tools and frameworks - Integration Saturday ...
Top ten integration productivity tools and frameworks - Integration Saturday ...
 
Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...
 

Último

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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: 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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Último (20)

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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: 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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Acsug scalable windows azure patterns

  • 1. Scalable Windows Azure Patterns Presented by Nikolai Blackie @ Auckland Connected Systems User Group Principal Architect Adaptiv Integration 20th of October 2011
  • 2. Agenda Overview the patterns of scalability Overview the scale targets on Windows Azure and how to scale past these Introduce Windows Azure CAT team cloud scalability framework – CloudFx Demonstrate Adaptiv’s scaled out distributed architecture Show how you can save money when scaling on Windows Azure
  • 5. Traditional Scalability Issues Synchronous sequential units of work Large units of work Tight coupling between components Stateful applications Clustering for HA Expensive Scaling limits Inefficient use of resources How should you approach this in the cloud?
  • 7. Parallel Units Of Work Single Threaded Multi Threaded
  • 8. Event Driven Processing Storage Queues ► Enable event driven architectures ► Allow load levelling ► Scale target of 500 messages per second Service Bus V1 ► Low latency relay ► Non durable direct eventing Service Bus V2 ► Durable asynchronous pub-sub and queues
  • 10. Load Balancing / Load Sharing Stateless Round Robin Network Load Balancer Web Role Web Role Web Role Queue Worker Role Worker Role Worker Role Legend Azure Instance Unit of Work
  • 13. Horizontal Partitioning Partitioned Cloud Queue http://partitioncloudqueue.codeplex.com/
  • 14. Storage Services Scalability Targets Maximum scale per account Capacity – Up to 100 TBs Transactions – Up to 5,000 entities/messages/blobs per second Bandwidth – Up to 3 gigabits per second Per storage abstraction ► Single Queue - 500 messages per second ► Single Table Partition - 500 entities per second ► Single Blob - 60 MBytes/sec When targets reached? ► 503 Server busy – transient not fatal ► Use Upsert on batch operations
  • 15. Storage Services Scalability Targets Front-End (FE) layer Partition Layer Distributed and replicated File System (DFS)
  • 16. Service Bus Scalability Targets Quotas per service namespace Concurrent connections – 100 Number of topics/queues - 10,000 Number of subscriptions per topic - 2,000 Maximum Queue size – 1gb – 5gb Throughput Targets Queues depending on message size much faster than storage queues Topics throughput dependent on subscription counts Official guidance is coming soon
  • 17. Sql Azure Scalability Targets No official guidance on I/O performance Sql Azure is a multi tenant database platform Runs on commodity hardware Throttled when connection overloads Sql Azure
  • 19. Cloud Scalability – Scale Up Azure Role Cost (NZD) CPU Bandwidth Memory XSmall $0.06 Shared Core 1.0 GHz 5 Mbps 0.768 GB Small $0.14 1 Core 1.6 GHz 100 Mbps 1.750 GB Medium $0.28 2 Cores 1.6 GHz 200 Mbps 3.50 GB Large $0.55 4 Cores 1.6 GHz 400 Mbps 7.00 GB XLarge $1.10 8 Cores 1.6 GHz 800 Mbps 14.0 GB
  • 20. Cloud Scalability – Scale Up Edition Database Cost (NZD) Web 1GB $ 11.48 Web 5GB $ 57.41 Business 10GB $ 114.93 Business 20GB $ 229.86 Business 30GB $ 344.79 Business 40GB $ 459.72 Business 50GB $ 574.66
  • 21. Cloud Scalability Key Features Small logical units of work Parallel units of work Event driven processing Load distribution ► Load balancing ► Vertical partitioning ► Horizontal partitioning Low cost scale out Dynamic scale up
  • 22. Scalable Frameworks Windows Azure CAT Team Azure CloudFx Reference Library & Implementation
  • 23. CloudFx Framework Features ► CloudFx is a cloud solution framework and extensions library ► A Swiss army knife for building scalable systems ► Service agnostic retries ► Large message queue ► Payload compression ► And much more….
  • 24. Cost-Efficient Queue Listener Anti-Pattern continuous queue polling when idle Notify of new work Provision parallel dequeue threads & increase poll rate When no work reduce threads & polling rate Very efficient event based processing
  • 25. Reliable Retry Framework Anti-Pattern failing catastrophically or rerunning entire processes due to service call failure Call to resource fails Retry based on configured pattern ► Fixed, Incremental, Exponential Ensure Idempotent operations
  • 26. Reliable Retry Framework Anti-Pattern failing catastrophically or rerunning entire processes due to service call failure Call to resource fails Retry based on configured pattern ► Fixed, Incremental, Exponential Ensure Idempotent operations Expect failure, design for fault tolerance ► Netflix Simian Army ► CloudFx unit tests
  • 27. Service Aggregation Anti-Pattern tightly coupled service deployments Enable flexible service aggregation Implemented using System.ServiceModel Extensions ► IExtensible<T> ► IExtensibleObject<T> Consolidate services or partition vertically
  • 28. Large Message Queue Support Anti-Pattern writing custom code to handle queue storage limits of 64kb message size Abstracted support for messages of any size Built in compression when writing to all services Utilises DeflateStream Compress on write, decompress on read
  • 33. Cost Capacity Planning Storage Transactions ► Queues 1 transaction to put, 2 transactions to get and delete Can batch up to 32 get message operations in 1 transaction ► Table storage 1 transaction for read/write Can batch 100 entity transactions is into 1 group transaction ► Blobs 1 transaction for read/write Bandwidth ► Measured from outside and between data centers ► Free inbound data
  • 34. Cost Capacity Planning Storage ► Cumulative total through month, charged on average usage Compute Instances ► Charged as soon as virtual instance allocated regardless of running state ► Billed to the nearest hour Measurement ► Instrument Azure service access ► Use billing manager with A & B testing approach
  • 35. Cost-Efficient Queue Listener Idle Polling * Polling Algorithm Transactions Per Day Service Bus Cost Per Day Standard One Dequeue Thread 79,200 $ - $ 0.09 10 Compute Instances - 150 Dequeue Threads 11,880,000 $ - $ 13.66 Back off One Dequeue Thread - $ 4.59 $ 0.15 10 Compute Instances - 150 Dequeue Threads - $ 22.87 $ 0.76 * 22 hours per day Running Polling ** Polling Algorithm Transactions Per Day Cost Per Day One Dequeue Thread 72,000 $ 0.08 10 Compute Instances - 150 Dequeue Threads 10,800,000 $ 12.41 ** 2 hours per day, 5 msgs per sec, 2 trans per message Savings Polling Algorithm Transactions Per Day Cost Per Day One Dequeue Thread 79,200 $ (0.06) 10 Compute Instances - 150 Dequeue Threads 11880000 $ 12.89
  • 36. Cost-Efficient Queue Listener * Terms and conditions apply, your mileage may vary, these calculations are based on simple models
  • 37. Batching Units of Work Parsing a 10000 line file ► 10000 messages a day ► Table storage batch transactions ► Using scatter scale out pattern Batch Size Queue Transactions Table Transactions Total Transactions Cost Per Day 10 Lines 30,000,000 10,000,000 40,000,000 $45.98 200 Lines 1,500,000 500,000 2,00,000 $ 2.30 2000 Lines 150,000 50,000 200,000 $0.23
  • 38. Batching Units of Work * Terms and conditions apply, your mileage may vary, these calculations are based on simple models
  • 39. Parallel Processing & Mixing Roles Per Day Per Day Utilisation Cost Utilisation Cost 5 Threads Dequeuing across 5 instances $ 16.55 One Service over 3 instances $ 9.93 25 Threads Dequeuing across 1 Instance $ 3.31 Three Services on one instance $ 3.31 * Terms and conditions apply, your mileage may vary, these calculations are based on simple models
  • 40. Object Compression Compression Ratios ► Compressing a text based CSV 5:1 ratio ► Compressing a Xml file 10:1 ratio Based on 10000 CSV messages a day 10000 Line CSV File Blob Storage Space (GB) Cost Per Day Uncompressed 2064KB 19.68 $3.39 Compressed 390KB 3.72 $0.64 Savings 15.96 $2.75
  • 41. Object Compression * Terms and conditions apply, your mileage may vary, these calculations are based on simple models
  • 42. To Summarise You can scale with any combination of up and out using horizontal and vertical partitioning On the cloud make the most of the ability to scale out using small units of work Distribute load to reduce resource contention Make the best use of the resources you have paid for Use frameworks like CloudFx and to help you scale using best practices Use techniques like back off polling, batching, parallel processing and compression to reduce costs
  • 43. Links Windows Azure Capacity Assessment Building Highly Scalable Java Applications on Windows Azure Cost Architecting for Windows Azure Understanding Windows Azure Storage Billing – Bandwidth, Transactions, and Capacity Operational costs of an Azure Message Queue
  • 44. Links Windows Azure Storage Abstractions and their Scalability Targets Understanding the Scalability, Availability, Durability, and Billing of Windows Azure Storage Windows Azure Storage Architecture Overview Windows Azure AppFabric Service Bus Quotas Inside SQL Azure The Netflix Simian Army
  • 45. Windows Azure CAT Links How to Simplify & Scale Inter-Role Communication Using Windows Azure AppFabric Service Bus Implementing Storage Abstraction Layer to Support Very Large Messages in Windows Azure Queues Transient Fault Handling Framework for SQL Azure, Windows Azure Storage, AppFabric Service Bus Best Practices for Maximizing Scalability and Cost Effectiveness of Queue- Based Messaging Solutions on Windows Azure
  • 46. We would like to thank the sponsors. . . Premier Partners Associated Partners Supporting Partners:

Notas del editor

  1. You probably have one of these guys working in your organisation or for your clientsit is important for your career and your project that you keep this guy happyThis may not be a fair interpretation in your organisation, his axe may actually be bigger
  2. He doesn&apos;t want you costing the business lots of this in designing architectures with a poor cost profileIn this presentation I will explain some of the patterns of scalability available on the Azure platform and the cost benefits of specific approaches that will help you achieve scale while maximising costs
  3. What are the Patterns of Scalability on the Azure Platform?I will demonstrate from examples of Scalable ImplementationsAnd outline the Costs Savings Associated with the correct design approach
  4. Traditional n tiered applicationWeb tierX number of application tiersYour data tier
  5. Animate this slide, start with three, scale up, highlight contention
  6. synchronous processessequential units of worktight coupling betweenstatefulpessimistic concurrencyclustering for HAvertical scaling To scale, get bigger serversexpensivehas scaling limitsinefficient use of resources
  7. Large sequentialunits of work take a lot longer to processSmall units of work can be executed in parallel and take less to reprocess if there is a failureAchieve efficiencies of scale by processing batches of data, usually because the overhead of an operation is amortized across multiple requestA balance between reliability against cost. With smaller units of work if they fail can be retried quickly but have cost overhead, large batches cost less but if fail will take longer to process. Ensure that you create configuration settings for this and tune appropriately Entity Group Transactions – the ability to perform an atomic transaction across up to 100 entities with any combination of Insert, Update, or Delete for Azure Tables. The requirement is that all of the entities have to be in the same table and have the same PartitionKey value and the total request size must be under 4Mbytes.  Used appropriately this enables:small logical units of workre-try-based recoverability
  8. Work on the same task in parallel on multiple processing unitsUsing scaled out compute instances you can spread the load across these instances Obviously single threaded applications will end up with huge queues of work and under utilised compute resource Parallel processing will make better use of available resources and increase throughput, but ensure you test appropriately and watch performance like utilisation and contention counters
  9. As systems scale the worst enemy is resource contentionSpread the system load across multiple processing units to reduce resource contention This applies to queues, table/blob stores, relational databases and compute instances
  10. Spreading the load across many components with out regard to the data inside of the request according to some load balancing algorithm Azure web &amp; worker role endpoints, stateless round robin distribution
  11. Spreading the load across many components by routing an individual request to a component that owns that data specific to the request Partitioning is more intelligent and requires data to be routed to a service/resource that knows how to deal with that Comes in two flavours 4 Vertical partitioning - This is typically the first stage of scaling systems out, simple to execute as you just split your application and services functionally across nodes to reduce contention Spreading the load across the functional boundaries of a problem space, separate functions being handled by different processing units Split databases and processing across functional spaces, membership in one database, accounts in another, eventually moving each system module into its own database Vertical partitioning only works for so long, eventually you run out of functional boundaries to spread your load across and you will begin to get contention in these functionally scaled components There are scalability targets for each Azure component Storage queues are 500 messages per secondStorage tables and blobs are 5000 messages per second (per partition/account)SQL Azure not published but will start behaving very badly under excessive load
  12. Spreading a single type of data element across many instances, according to some partitioning key, e.g. hashing the player id and doing a modulus operation, etc.  Quite often referred to as sharding or data partitioningYou have to relax referential integrity constraints for this to workThis is a complex approach and should only be attempted through the use of a good framework An example of this is the Federations Database library (see Chris Aulds presentation)Partitioned Cloud Queue (http://partitioncloudqueue.codeplex.com/ )
  13. Here we can see that the Front-End layer takes incoming requests, and a given front-end server can talk to all of the partition servers it needs to in order to process the incoming requests. The partition layer consists of all of the partition servers, with a master system to perform the automatic load balancing (described below) and assignments of partitions. As shown in the figure, each partition server is assigned a set of object partitions (Blobs, Entities, Queues). The Partition Master constantly monitors the overall load on each partition sever as well the individual partitions, and uses this for load balancing. Then the lowest layer of the storage architecture is the Distributed File System layer, which stores and replicates the data, and all partition servers can access any of the DFS severs.
  14. To keep a data center server’s resources from being overloaded and jeopardizing the health of the entire machine, the load on each machine is monitored by the Engine Throttling component. In addition, each database replica is monitored to make sure that statistics such as log size, log write duration, CPU usage, the actual physical database size limit, and the SQL Azure user database size are all below target limits. If the limits are exceeded, the result can be that a SQL Azure database rejects reads or writes for 10 seconds at a time. Occasionally, violation of resource limits may result in the SQL Azure database permanently rejecting reads and writes (depending on the resource type in question).
  15. Show the files to be reconciledRun one processShow task allocation and timingShow resultsRun 1000 processes across scale frameworkShow results, tah dah
  16. Scaling out to many small serversRequests return as soon as possible from the application serversLong running processes
  17. Add database costs
  18. Add database costs
  19. Inter-role communication utilizing Service Bus event relay and topic-based messaging
  20. Chaos Monkey, a tool that randomly disables our production instances to make sure we can survive this common type of failure without any customer impact. Conformity Monkey finds instances that don’t adhere to best-practices and shuts them down. For example, we know that if we find instances that don’t belong to an auto-scaling group, that’s trouble waiting to happen. We shut them down to give the service owner the opportunity to re-launch them properly.Doctor Monkey taps into health checks that run on each instance as well as monitors other external signs of health (e.g. CPU load) to detect unhealthy instances. Once unhealthy instances are detected, they are removed from service and after giving the service owners time to root-cause the problem, are eventually terminated.Janitor Monkey ensures that our cloud environment is running free of clutter and waste. It searches for unused resources and disposes of them.Security Monkey is an extension of Conformity Monkey. It finds security violations or vulnerabilities, such as improperly configured AWS security groups, and terminates the offending instances. It also ensures that all our SSL and DRM certificates are valid and are not coming up for renewal.10-18 Monkey (short for Localization-Internationalization, or l10n-i18n) detects configuration and run time problems in instances serving customers in multiple geographic regions, using different languages and character sets.Chaos Gorilla is similar to Chaos Monkey, but simulates an outage of an entire Amazon availability zone. We want to verify that our services automatically re-balance to the functional availability zones without user-visible impact or manual intervention.
  21. The Service Component Compositional Binding Model is founded on a specialized design paradigm comprising of the interface-based programming model and associated framework artifacts such as: Lightweight programming API that includes standard interface definitions, classes and methods.Compositional binding model that provides the means of registering, discovering, instantiating and managing lifetime of service components. Such a model enables the participating components to discover and consume other components at run-time. The components can be reused, extended or superseded by other components allowing composable services to become highly agile and customizable. The model provides the means of abstracting the way how components resolve each other and interoperate without having to express and lock inter-component bindings at design time.
  22. Anti pattern Consider every as a blob, always send to blobs and use as a pointer on the queueThere is a potential that compressed messages go to the queue under 8kb
  23. Adaptiv has built a scalable reconciliation service on top of the CAT team framework using Pipes and Filters and Scatter gather More emphasis on the business context
  24. Uses a scatter approach to split up work and distribute to your processing nodesThe framework was critical as it abstracted away all the complexity of dealing with queues and other resources in simple and efficient manner Pipes and FiltersThe output of one process becomes the input of the next, allowing us to break up a complex process and chain togetherScatter GatherEach process splits its work into 1 or more tasks that are processed across a pool of compute instances
  25. Show the files to be reconciledRun one processShow task allocation and timingShow resultsRun 1000 processes across scale frameworkShow results, tah dah
  26. Batching - cost advantages of batching requests together versus lower levels of granularityCheck entity group transactions
  27. cost benefits of utilising parallel threads versus scaling up
  28. Mixing Functional Roles - cost advantages of having fully utilised compute instances The use of extensiblility model &amp; multithreading do compose and discoverCan change at runtime
  29. Compressing objects will reduce storage costsCompression occurs when writing to queue, blobs stores too