SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Design Patterns and Plan for
developing High Available Azure
Applications
Himanshu Sahu
Mindfire Solutions
himanshus@mindfiresolutions.com
Availability
Availability
Availability defines the proportion of time that the system is
functional and working. It will be affected by system errors,
infrastructure problems, malicious attacks, and system load. It is
usually measured as a percentage of uptime. Cloud applications
typically provide users with a service level agreement (SLA), which
means that applications must be designed and implemented in a
way that maximizes availability.
Why Design Patterns
Design patterns can help to solve a specific and commonly
occurring problems that may be encountered when building
applications that run in the cloud.
Problem Areas in the Cloud
Availability , Data management, Design and Implementation,
Messaging, Management and Monitoring, Performance and
Scalability, Resiliency, Security
Design Patterns and Plan for developing
High Available Azure Applications
Different Patterns for High Availability
3.1 Health Endpoint Monitoring Pattern
3.2 Queue-based Load Leveling Pattern
3.2 Throttling Pattern
3.3 Retry Pattern
3.4 Multiple Datacenter Deployment Guidance
Health Endpoint Monitoring Pattern
Implement functional checks within an application that external
tools can access through exposed endpoints at regular intervals.
This pattern helps to verify that applications and services are
performing correctly.
Many factors that affect cloud-hosted applications are network
latency, the performance and availability of the underlying
compute and storage systems, and the network bandwidth
between them. The service may fail entirely or partially due to any
of these factors. Therefore, you must verify at regular intervals that
the service is performing correctly to ensure the required level of
availability—which might be part of your Service Level Agreement
(SLA).
Health Endpoint Monitoring Pattern
Solutions
Implement health monitoring by sending requests to an endpoint
on the application.
A health monitoring check typically combines two factors: the
checks (if any) performed by the application or service in response
to the request to the health verification endpoint, and analysis of
the result by the tool or framework that is performing the health
verification check.
Health Endpoint Monitoring Pattern
Health Endpoint Monitoring Pattern
When to Use this Pattern
•
Monitoring websites and web applications to verify availability.
•
Monitoring websites and web applications to check for correct
operation.
•
Monitoring middle-tier or shared services to detect and isolate a
failure that could disrupt other applications.
•
To complement existing instrumentation within the application,
such as performance counters and error handlers. Health
verification checking does not replace the requirement for logging
and auditing in the application. Instrumentation can provide
valuable information for an existing framework that monitors
counters and error logs to detect failures or other issues. However,
it cannot provide information if the application is unavailable.
Health Endpoint Monitoring Pattern
How to do in Azure
•
Use the built-in features of Microsoft Azure, such as the
Management Services or Traffic Manager.
•
Use a third party service (NewRelic, and Statuscake)
•
Create a custom utility or a service that runs on your own or on a
hosted server.
Queue-Based Load Leveling Pattern
Use a queue that acts as a buffer between a task and a service that
it invokes in order to smooth intermittent heavy loads that may
otherwise cause the service to fail or the task to time out. This
pattern can help to minimize the impact of peaks in demand on
availability and responsiveness for both the task and the service.
Temporal decoupling
Load leveling
Load balancing
Loose coupling
Queue-Based Load Leveling Pattern
Queue-Based Load Leveling Pattern
When to Use this Pattern
•
This pattern is ideally suited to any type of application that uses
services that may be subject to overloading.
•
This pattern might not be suitable if the application expects a
response from the service with minimal latency.
Queue-Based Load Leveling Pattern
Queue-Based Load Leveling Pattern
Queue-Based Load Leveling Pattern
How to do in Azure
•
Using Windows Azure Storage Queue or Windows Azure Service
Bus
Throttling Pattern
Control the consumption of resources used by an instance of an
application, an individual tenant, or an entire service.
This pattern can allow the system to continue to function and meet
service level agreements, even when an increase in demand places
an extreme load on resources.
Many factors that affect cloud-hosted applications are network
latency, the performance and availability of the underlying
compute and storage systems, and the network bandwidth
between them. The service may fail entirely or partially due to any
of these factors. Therefore, you must verify at regular intervals that
the service is performing correctly to ensure the required level of
availability—which might be part of your Service Level Agreement
(SLA).
Throttling Pattern
Solutions
Auto Scaling
Queue-Based Load Leveling Pattern
Priority Queue Pattern
Rejecting requests from an individual user who has already
accessed system APIs more than n times per second over a given
period of time.
Disabling or degrading the functionality of selected nonessential
services so that essential services can run unimpeded with
sufficient resources.
Throttling Pattern
Throttling Pattern
When to Use this Pattern

To ensure that a system continues to meet service level
agreements.

To prevent a single tenant from monopolizing the resources
provided by an application.

To handle bursts in activity.

To help cost-optimize a system by limiting the maximum resource
levels needed to keep it functioning.
Retry Pattern
Enable an application to handle anticipated, temporary failures
when it attempts to connect to a service or network resource by
transparently retrying an operation that has previously failed in the
expectation that the cause of the failure is transient.
An application that communicates with elements running in the
cloud must be sensitive to the transient faults (that means Faults
which are self-correcting such as Network failure, temporarry
serivice available or time-out error due to busy server ) that can
occur in this environment.
Retry Pattern
Solutions
Implement retry logic when trying to connect any service in cloud.
Implement retry logic when trying to connect
SQL Azure
Azure Service Bus
Azure Storage
Azure Caching Service
Retry Pattern
Solutions
The Transient Fault Handling Application Block
The Transient Fault Handling Application Block includes the
following retry strategies
FixedInterval
Incremental
ExponentialBackoff
The FixedInterval retry strategy retries an operation a fixed
number of times at fixed intervals.
Retry Pattern
Solutions
The Incremental retry strategy retries an operation a fixed number
of times at intervals that increase by the same amount each time.
For example, at two-second, four-second, six-second, and eight-
second intervals.
The ExponentialBackoff retry strategy retries an operation a fixed
number of times at intervals that increase by a greater number
each time. For example, at two-second, four-second, eight-second,
and sixteen-second intervals. This retry strategy also introduces a
small amount of random variation into the intervals.
Retry Pattern
Solutions
Connection Resiliency / Retry Logic (EF6 onwards)
Connection Resiliency refers to the ability for EF to automatically
retry any commands that fail due to connection throttling, or to
instability in the network causing intermittent timeouts and other
transient errors.
Multiple Datacenter Deployment
Guidance
Growing capacity over time.
Providing global reach with minimum latency for users
Maintaining performance and availability
Providing additional instances for resiliency
Providing a facility for disaster recovery
Multiple Datacenter Deployment
Guidance
Solutions
Manual Re-Routing On Application Failure
Automated Re-Routing On Application Failure
Re-Routing with Azure Traffic Manager( Built-In Azure Service)
Resources
https://msdn.microsoft.com/en-us/library/dn600219.aspx
https://msdn.microsoft.com/enus/library/hh680906(v=pandp.50).asp
https://msdn.microsoft.com/en-us/library/dn589783.aspx
https://msdn.microsoft.com/en-us/library/dn589788.aspx
http://blogs.msdn.com/b/appfabric/archive/2011/05/17/an-introduct
Questions?
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Software Testing in Cloud Platform A Survey_final
Software Testing in Cloud Platform A Survey_finalSoftware Testing in Cloud Platform A Survey_final
Software Testing in Cloud Platform A Survey_final
www.pixelsolutionbd.com
 
An Introduction to Designing Reliable Cloud Services January 2014
An Introduction to Designing Reliable Cloud Services January 2014An Introduction to Designing Reliable Cloud Services January 2014
An Introduction to Designing Reliable Cloud Services January 2014
David J Rosenthal
 
Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...
Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...
Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...
Ericsson
 
The emergence of cloud computing and software testing
The emergence of cloud computing and software testingThe emergence of cloud computing and software testing
The emergence of cloud computing and software testing
RIA RUI Society
 
BTD testing with the cloud v2.0
BTD testing with the cloud v2.0BTD testing with the cloud v2.0
BTD testing with the cloud v2.0
geertvanhovesogeti
 

Was ist angesagt? (20)

Software Testing in Cloud Platform A Survey_final
Software Testing in Cloud Platform A Survey_finalSoftware Testing in Cloud Platform A Survey_final
Software Testing in Cloud Platform A Survey_final
 
CloverDX for IBM Infosphere MDM (for 11.4 and later)
CloverDX for IBM Infosphere MDM (for 11.4 and later)CloverDX for IBM Infosphere MDM (for 11.4 and later)
CloverDX for IBM Infosphere MDM (for 11.4 and later)
 
Taking Testing to the Cloud
Taking Testing to the CloudTaking Testing to the Cloud
Taking Testing to the Cloud
 
An Introduction to Designing Reliable Cloud Services January 2014
An Introduction to Designing Reliable Cloud Services January 2014An Introduction to Designing Reliable Cloud Services January 2014
An Introduction to Designing Reliable Cloud Services January 2014
 
Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...
Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...
Conference Paper: CHASE: Component High-Availability Scheduler in Cloud Compu...
 
Cloud Testing - A New Age Approach to Testing
Cloud Testing - A New Age Approach to TestingCloud Testing - A New Age Approach to Testing
Cloud Testing - A New Age Approach to Testing
 
Introducing testing cloud services - Transformation to SaaS
Introducing testing cloud services - Transformation to SaaSIntroducing testing cloud services - Transformation to SaaS
Introducing testing cloud services - Transformation to SaaS
 
ticle_poster
ticle_posterticle_poster
ticle_poster
 
Harnessing the Cloud for Performance Testing- Impetus White Paper
Harnessing the Cloud for Performance Testing- Impetus White PaperHarnessing the Cloud for Performance Testing- Impetus White Paper
Harnessing the Cloud for Performance Testing- Impetus White Paper
 
Mmckeown hadr that_conf
Mmckeown hadr that_confMmckeown hadr that_conf
Mmckeown hadr that_conf
 
Virtualization impact in software testing
Virtualization impact in software testingVirtualization impact in software testing
Virtualization impact in software testing
 
Operations: Security
Operations: SecurityOperations: Security
Operations: Security
 
Kks sre book_ch1,2
Kks sre book_ch1,2Kks sre book_ch1,2
Kks sre book_ch1,2
 
The emergence of cloud computing and software testing
The emergence of cloud computing and software testingThe emergence of cloud computing and software testing
The emergence of cloud computing and software testing
 
Best practice adoption (and lack there of)
Best practice adoption (and lack there of)Best practice adoption (and lack there of)
Best practice adoption (and lack there of)
 
BTD testing with the cloud v2.0
BTD testing with the cloud v2.0BTD testing with the cloud v2.0
BTD testing with the cloud v2.0
 
How to Build Scalable Websites in the Cloud
How to Build Scalable Websites in the CloudHow to Build Scalable Websites in the Cloud
How to Build Scalable Websites in the Cloud
 
Harness the Power of the Cloud for Grid Computing and Batch Processing Applic...
Harness the Power of the Cloud for Grid Computing and Batch Processing Applic...Harness the Power of the Cloud for Grid Computing and Batch Processing Applic...
Harness the Power of the Cloud for Grid Computing and Batch Processing Applic...
 
Kks sre book_ch10
Kks sre book_ch10Kks sre book_ch10
Kks sre book_ch10
 
Automatic scaling of web applications for cloud computing services
Automatic scaling of web applications for cloud computing servicesAutomatic scaling of web applications for cloud computing services
Automatic scaling of web applications for cloud computing services
 

Ähnlich wie Design patterns and plan for developing high available azure applications

VCS_QAPerformanceSlides
VCS_QAPerformanceSlidesVCS_QAPerformanceSlides
VCS_QAPerformanceSlides
Michael Cowan
 

Ähnlich wie Design patterns and plan for developing high available azure applications (20)

Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015
 
Cloud architecture
Cloud architectureCloud architecture
Cloud architecture
 
Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻
 
Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.com
 
Azure SQL Database
Azure SQL DatabaseAzure SQL Database
Azure SQL Database
 
Ncerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmNcerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssm
 
M017258892
M017258892M017258892
M017258892
 
Continuous Testing of Service-Oriented Applications Using Service Virtualization
Continuous Testing of Service-Oriented Applications Using Service VirtualizationContinuous Testing of Service-Oriented Applications Using Service Virtualization
Continuous Testing of Service-Oriented Applications Using Service Virtualization
 
Performance Testing Strategy for Cloud-Based System using Open Source Testing...
Performance Testing Strategy for Cloud-Based System using Open Source Testing...Performance Testing Strategy for Cloud-Based System using Open Source Testing...
Performance Testing Strategy for Cloud-Based System using Open Source Testing...
 
Deploying Models
Deploying ModelsDeploying Models
Deploying Models
 
Applying a Comprehensive, Automated Assurance Framework to Validate Cloud Rea...
Applying a Comprehensive, Automated Assurance Framework to Validate Cloud Rea...Applying a Comprehensive, Automated Assurance Framework to Validate Cloud Rea...
Applying a Comprehensive, Automated Assurance Framework to Validate Cloud Rea...
 
Less11 3 e_loadmodule_1
Less11 3 e_loadmodule_1Less11 3 e_loadmodule_1
Less11 3 e_loadmodule_1
 
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGESCLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
 
Leveraging Cloud for Product Testing- Impetus White Paper
Leveraging Cloud for Product Testing- Impetus White PaperLeveraging Cloud for Product Testing- Impetus White Paper
Leveraging Cloud for Product Testing- Impetus White Paper
 
Performance testing : An Overview
Performance testing : An OverviewPerformance testing : An Overview
Performance testing : An Overview
 
G216063
G216063G216063
G216063
 
VCS_QAPerformanceSlides
VCS_QAPerformanceSlidesVCS_QAPerformanceSlides
VCS_QAPerformanceSlides
 
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
 
Scale your cloud native application.
Scale your cloud native application.Scale your cloud native application.
Scale your cloud native application.
 
QSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load RunnerQSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load Runner
 

Kürzlich hochgeladen

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
 

Kürzlich hochgeladen (20)

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 

Design patterns and plan for developing high available azure applications

  • 1. Design Patterns and Plan for developing High Available Azure Applications Himanshu Sahu Mindfire Solutions himanshus@mindfiresolutions.com
  • 2. Availability Availability Availability defines the proportion of time that the system is functional and working. It will be affected by system errors, infrastructure problems, malicious attacks, and system load. It is usually measured as a percentage of uptime. Cloud applications typically provide users with a service level agreement (SLA), which means that applications must be designed and implemented in a way that maximizes availability.
  • 3. Why Design Patterns Design patterns can help to solve a specific and commonly occurring problems that may be encountered when building applications that run in the cloud. Problem Areas in the Cloud Availability , Data management, Design and Implementation, Messaging, Management and Monitoring, Performance and Scalability, Resiliency, Security
  • 4. Design Patterns and Plan for developing High Available Azure Applications Different Patterns for High Availability 3.1 Health Endpoint Monitoring Pattern 3.2 Queue-based Load Leveling Pattern 3.2 Throttling Pattern 3.3 Retry Pattern 3.4 Multiple Datacenter Deployment Guidance
  • 5. Health Endpoint Monitoring Pattern Implement functional checks within an application that external tools can access through exposed endpoints at regular intervals. This pattern helps to verify that applications and services are performing correctly. Many factors that affect cloud-hosted applications are network latency, the performance and availability of the underlying compute and storage systems, and the network bandwidth between them. The service may fail entirely or partially due to any of these factors. Therefore, you must verify at regular intervals that the service is performing correctly to ensure the required level of availability—which might be part of your Service Level Agreement (SLA).
  • 6. Health Endpoint Monitoring Pattern Solutions Implement health monitoring by sending requests to an endpoint on the application. A health monitoring check typically combines two factors: the checks (if any) performed by the application or service in response to the request to the health verification endpoint, and analysis of the result by the tool or framework that is performing the health verification check.
  • 8. Health Endpoint Monitoring Pattern When to Use this Pattern • Monitoring websites and web applications to verify availability. • Monitoring websites and web applications to check for correct operation. • Monitoring middle-tier or shared services to detect and isolate a failure that could disrupt other applications. • To complement existing instrumentation within the application, such as performance counters and error handlers. Health verification checking does not replace the requirement for logging and auditing in the application. Instrumentation can provide valuable information for an existing framework that monitors counters and error logs to detect failures or other issues. However, it cannot provide information if the application is unavailable.
  • 9. Health Endpoint Monitoring Pattern How to do in Azure • Use the built-in features of Microsoft Azure, such as the Management Services or Traffic Manager. • Use a third party service (NewRelic, and Statuscake) • Create a custom utility or a service that runs on your own or on a hosted server.
  • 10. Queue-Based Load Leveling Pattern Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads that may otherwise cause the service to fail or the task to time out. This pattern can help to minimize the impact of peaks in demand on availability and responsiveness for both the task and the service. Temporal decoupling Load leveling Load balancing Loose coupling
  • 12. Queue-Based Load Leveling Pattern When to Use this Pattern • This pattern is ideally suited to any type of application that uses services that may be subject to overloading. • This pattern might not be suitable if the application expects a response from the service with minimal latency.
  • 15. Queue-Based Load Leveling Pattern How to do in Azure • Using Windows Azure Storage Queue or Windows Azure Service Bus
  • 16. Throttling Pattern Control the consumption of resources used by an instance of an application, an individual tenant, or an entire service. This pattern can allow the system to continue to function and meet service level agreements, even when an increase in demand places an extreme load on resources. Many factors that affect cloud-hosted applications are network latency, the performance and availability of the underlying compute and storage systems, and the network bandwidth between them. The service may fail entirely or partially due to any of these factors. Therefore, you must verify at regular intervals that the service is performing correctly to ensure the required level of availability—which might be part of your Service Level Agreement (SLA).
  • 17. Throttling Pattern Solutions Auto Scaling Queue-Based Load Leveling Pattern Priority Queue Pattern Rejecting requests from an individual user who has already accessed system APIs more than n times per second over a given period of time. Disabling or degrading the functionality of selected nonessential services so that essential services can run unimpeded with sufficient resources.
  • 19. Throttling Pattern When to Use this Pattern  To ensure that a system continues to meet service level agreements.  To prevent a single tenant from monopolizing the resources provided by an application.  To handle bursts in activity.  To help cost-optimize a system by limiting the maximum resource levels needed to keep it functioning.
  • 20. Retry Pattern Enable an application to handle anticipated, temporary failures when it attempts to connect to a service or network resource by transparently retrying an operation that has previously failed in the expectation that the cause of the failure is transient. An application that communicates with elements running in the cloud must be sensitive to the transient faults (that means Faults which are self-correcting such as Network failure, temporarry serivice available or time-out error due to busy server ) that can occur in this environment.
  • 21. Retry Pattern Solutions Implement retry logic when trying to connect any service in cloud. Implement retry logic when trying to connect SQL Azure Azure Service Bus Azure Storage Azure Caching Service
  • 22. Retry Pattern Solutions The Transient Fault Handling Application Block The Transient Fault Handling Application Block includes the following retry strategies FixedInterval Incremental ExponentialBackoff The FixedInterval retry strategy retries an operation a fixed number of times at fixed intervals.
  • 23. Retry Pattern Solutions The Incremental retry strategy retries an operation a fixed number of times at intervals that increase by the same amount each time. For example, at two-second, four-second, six-second, and eight- second intervals. The ExponentialBackoff retry strategy retries an operation a fixed number of times at intervals that increase by a greater number each time. For example, at two-second, four-second, eight-second, and sixteen-second intervals. This retry strategy also introduces a small amount of random variation into the intervals.
  • 24. Retry Pattern Solutions Connection Resiliency / Retry Logic (EF6 onwards) Connection Resiliency refers to the ability for EF to automatically retry any commands that fail due to connection throttling, or to instability in the network causing intermittent timeouts and other transient errors.
  • 25. Multiple Datacenter Deployment Guidance Growing capacity over time. Providing global reach with minimum latency for users Maintaining performance and availability Providing additional instances for resiliency Providing a facility for disaster recovery
  • 26. Multiple Datacenter Deployment Guidance Solutions Manual Re-Routing On Application Failure Automated Re-Routing On Application Failure Re-Routing with Azure Traffic Manager( Built-In Azure Service)