SlideShare a Scribd company logo
1 of 13
Managing high availability with low cost

      Experiences from the kitchen
Some definitions
 • Scalability is how big you can get.
 • Reliability is how consistent you are (in the short term).
 • Availability is being reliable and scalable (in the long
   run).

 • Scalability and reliability are not related (one does not
   cause the other or impacts the other).
 • Can’t have availability without scalability or reliability.
Without further ado
 • The requirement:
    – Emergency responder system requires notifications from
      emergency workers for availability.
 • Results in:
    – System that is available 24x7 to respond to notifications.
 • Constrained by budget.
 • Currently at ~1,200 users/sec
Without further ado
 • The requirement:
    – Call routing system that must respond to every single request
      as fast as possible.
 • Results in:
    – System that is available 24x7 to respond to calls (marketing
      and others).
 • Constrained by time.
Results
 • Switch to Word doc
What we tried first
 • What the blogs say
    – Be redundant in every part of the system (this gets very
      expensive!)
 • What the teachers say (by the book)
    – Formal engineering (this is very expensive too!)


 • What our gut told us
    – Test test test!
What we learned
 • Scalability is a process not a destination.
 • Reliability is not a matter of QA.

 • The tools matter – but not in the traditional sense.
    – SQL Server (from 2005 to 2008 R2)
    – Windows (from 2003 to 2008 R2)
Some statistics
                         System availability 2010
           14 minutes of failures from at least 2 of 3 monitoring
                                 locations


            1%
                                                                 IIS 7
          8%                                                     Network
                                        32%                      Framework Bugs
                      52%                                        App Bugs
    37%                                             16%
                                                                 SQL Server - 100% CPU
                                                                 SQL Server - Mirroring
                                               4%                SQL Server - No reason
            2%



          * Only outages at the core router are displayed here as network problems.
Specific Lessons
 • Design code for failure (not for 100% reliability or 0
   bugs).
    – Redundancy in code is critical.
 • Fail fast and fail often.
    – Don’t wait until the system fails completely.
 • Monitor and validate.
    – Monitor as frequently as it is affordable.
Design for failure


  • Why once if you can   • Use all available tools
    twice?
                             – Bidirectional replication
                               for regional duplication
                               of traffic.
                             – Cheap load balancers.
                             – Cheap RAID 10 SATA.

                             – Don’t trust your
                               database.
Fail fast and fail often
 • Specific configuration settings for IIS.
    – Yes! App pool recycling increases availability.


 • Specific configuration for queuing.
    – Use a messaging system that always responds and stores
      safely in case the database is not available.


 • Make a lot of noise.
Monitor and validate
 • Monitis
    – Cheap, but support is not there.
 • Other tools
    – Gomez.com – expensive, but if you can afford it, great.
 • Inside tools
    – Open source and MS tools.
The bottom line
                     Design for failure                Traditional Route
 Database approach   -   Expect the system to          Database Clustering
                         operate without a DB for
                         brief periods of time.
                     -   Do mirroring locally.
                     -   Do replication remotely.
 Hardware approach   -   Configure for redundancy at   Redundancy everywhere
                         the telecom level.
                     -   Configure regional
                         redundancy (invest in
                         another server with another
                         host, make sure network is
                         different enough).
 Code approach       -   Design multiple systems that Design for 0 bugs (the formal
                         do the same thing in simple method). Increase QA.
                         ways.
                     -   There is nothing wrong with
                         multiple code paths, even
                         processes.
                     -   Reliability is not having the
                         same bug in the same place.

More Related Content

What's hot

Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsCompuware
 
Squeeze Maximum Performance from your Hosting Platform
Squeeze Maximum Performance from your Hosting PlatformSqueeze Maximum Performance from your Hosting Platform
Squeeze Maximum Performance from your Hosting PlatformSiteGround.com
 
Elite Bug Squashing
Elite Bug SquashingElite Bug Squashing
Elite Bug SquashingTony Brown
 
Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast
Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast
Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast Compuware
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryMandi Walls
 
Automation & Professional Services
Automation & Professional ServicesAutomation & Professional Services
Automation & Professional ServicesMarketingArrowECS_CZ
 
Fuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox TestingFuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox TestingNetSPI
 
Technical guidance in SaaS Startups
Technical guidance in SaaS StartupsTechnical guidance in SaaS Startups
Technical guidance in SaaS StartupsMalinda Kapuruge
 
Sdn not just a buzzword
Sdn not just a buzzwordSdn not just a buzzword
Sdn not just a buzzwordJorge Bonilla
 
How Atlassian made the switch to DVCS
How Atlassian made the switch to DVCSHow Atlassian made the switch to DVCS
How Atlassian made the switch to DVCSJohn Stevenson
 
Moving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learntMoving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learntMalinda Kapuruge
 
Panel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaSPanel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaSJonas Cheng
 
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
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...The Linux Foundation
 
Resilience reloaded - more resilience patterns
Resilience reloaded - more resilience patternsResilience reloaded - more resilience patterns
Resilience reloaded - more resilience patternsUwe Friedrichsen
 
Towards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile AppsTowards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile AppsPhillip Wheatley
 
Game Development Best Practices
Game Development Best PracticesGame Development Best Practices
Game Development Best PracticesPerforce
 
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper MeetupAutomation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper MeetupJorge Bonilla
 

What's hot (20)

Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOps
 
Squeeze Maximum Performance from your Hosting Platform
Squeeze Maximum Performance from your Hosting PlatformSqueeze Maximum Performance from your Hosting Platform
Squeeze Maximum Performance from your Hosting Platform
 
Elite Bug Squashing
Elite Bug SquashingElite Bug Squashing
Elite Bug Squashing
 
Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast
Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast
Go Fast, Go Safe, Go on Vacation - Compuware ISPW Webcast
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
 
Abhi
AbhiAbhi
Abhi
 
Resume
ResumeResume
Resume
 
Automation & Professional Services
Automation & Professional ServicesAutomation & Professional Services
Automation & Professional Services
 
Fuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox TestingFuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox Testing
 
Technical guidance in SaaS Startups
Technical guidance in SaaS StartupsTechnical guidance in SaaS Startups
Technical guidance in SaaS Startups
 
Sdn not just a buzzword
Sdn not just a buzzwordSdn not just a buzzword
Sdn not just a buzzword
 
How Atlassian made the switch to DVCS
How Atlassian made the switch to DVCSHow Atlassian made the switch to DVCS
How Atlassian made the switch to DVCS
 
Moving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learntMoving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learnt
 
Panel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaSPanel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaS
 
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...
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
 
Resilience reloaded - more resilience patterns
Resilience reloaded - more resilience patternsResilience reloaded - more resilience patterns
Resilience reloaded - more resilience patterns
 
Towards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile AppsTowards Continuous Delivery in Mobile Apps
Towards Continuous Delivery in Mobile Apps
 
Game Development Best Practices
Game Development Best PracticesGame Development Best Practices
Game Development Best Practices
 
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper MeetupAutomation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
 

Viewers also liked

Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)
Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)
Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)DataLeader.io
 
10 неща, които учителите не искат да знаете
10 неща, които учителите не искат да знаете10 неща, които учителите не искат да знаете
10 неща, които учителите не искат да знаетеCanko Balkanski
 
Deaf people will talk to gsm and each other in sign language
Deaf people will talk to gsm and each other in sign languageDeaf people will talk to gsm and each other in sign language
Deaf people will talk to gsm and each other in sign languageCanko Balkanski
 
Published last letters of the wife of hitler
Published last letters of the wife of hitlerPublished last letters of the wife of hitler
Published last letters of the wife of hitlerCanko Balkanski
 
Kim Schmidt's Resume
Kim Schmidt's ResumeKim Schmidt's Resume
Kim Schmidt's ResumeDataLeader.io
 
Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...
Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...
Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...Complexity Institute
 

Viewers also liked (7)

Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)
Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)
Microsoft DigiGirlz, Teaching Teens About Databases (Trick!)
 
10 неща, които учителите не искат да знаете
10 неща, които учителите не искат да знаете10 неща, които учителите не искат да знаете
10 неща, които учителите не искат да знаете
 
Deaf people will talk to gsm and each other in sign language
Deaf people will talk to gsm and each other in sign languageDeaf people will talk to gsm and each other in sign language
Deaf people will talk to gsm and each other in sign language
 
Voynata na taralezhite
Voynata na taralezhiteVoynata na taralezhite
Voynata na taralezhite
 
Published last letters of the wife of hitler
Published last letters of the wife of hitlerPublished last letters of the wife of hitler
Published last letters of the wife of hitler
 
Kim Schmidt's Resume
Kim Schmidt's ResumeKim Schmidt's Resume
Kim Schmidt's Resume
 
Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...
Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...
Complexity Management Literacy Meeting - Presentazione di Marinella De Simone...
 

Similar to Managing High Availability with Low Cost

Devops - why, what and how?
Devops - why, what and how?Devops - why, what and how?
Devops - why, what and how?Malinda Kapuruge
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDocker, Inc.
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracled0nn9n
 
Tokyo azure meetup #12 service fabric internals
Tokyo azure meetup #12   service fabric internalsTokyo azure meetup #12   service fabric internals
Tokyo azure meetup #12 service fabric internalsTokyo Azure Meetup
 
A software monitoring framework for quality verification
A software monitoring framework for quality verificationA software monitoring framework for quality verification
A software monitoring framework for quality verificationDileepa Jayathilake
 
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageDr. Spock
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud RoadGert Drapers
 
DevOps Days Vancouver 2014 Slides
DevOps Days Vancouver 2014 SlidesDevOps Days Vancouver 2014 Slides
DevOps Days Vancouver 2014 SlidesAlex Cruise
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
 
Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)ncoghlan_dev
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev opsLen Bass
 
Remote Admittance
Remote AdmittanceRemote Admittance
Remote AdmittanceAjit Yadav
 
The quality attribute of upgradability
The quality attribute of upgradabilityThe quality attribute of upgradability
The quality attribute of upgradabilityLen Bass
 
Managing Performance in the Cloud
Managing Performance in the CloudManaging Performance in the Cloud
Managing Performance in the CloudDevOpsGroup
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMatanGoren
 
Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool sangam biradar
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)ncoghlan_dev
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleArnaud LEMAIRE
 

Similar to Managing High Availability with Low Cost (20)

Db trends final
Db trends   finalDb trends   final
Db trends final
 
NoSQL and ACID
NoSQL and ACIDNoSQL and ACID
NoSQL and ACID
 
Devops - why, what and how?
Devops - why, what and how?Devops - why, what and how?
Devops - why, what and how?
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracle
 
Tokyo azure meetup #12 service fabric internals
Tokyo azure meetup #12   service fabric internalsTokyo azure meetup #12   service fabric internals
Tokyo azure meetup #12 service fabric internals
 
A software monitoring framework for quality verification
A software monitoring framework for quality verificationA software monitoring framework for quality verification
A software monitoring framework for quality verification
 
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific Language
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
 
DevOps Days Vancouver 2014 Slides
DevOps Days Vancouver 2014 SlidesDevOps Days Vancouver 2014 Slides
DevOps Days Vancouver 2014 Slides
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get There
 
Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev ops
 
Remote Admittance
Remote AdmittanceRemote Admittance
Remote Admittance
 
The quality attribute of upgradability
The quality attribute of upgradabilityThe quality attribute of upgradability
The quality attribute of upgradability
 
Managing Performance in the Cloud
Managing Performance in the CloudManaging Performance in the Cloud
Managing Performance in the Cloud
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 

More from DataLeader.io

An Introduction to Amazon Aurora Cloud-native Relational Database
An Introduction to Amazon Aurora Cloud-native Relational DatabaseAn Introduction to Amazon Aurora Cloud-native Relational Database
An Introduction to Amazon Aurora Cloud-native Relational DatabaseDataLeader.io
 
Amazon Aurora Cloud-native Relational Database, Section 2.0
Amazon Aurora Cloud-native Relational Database, Section 2.0Amazon Aurora Cloud-native Relational Database, Section 2.0
Amazon Aurora Cloud-native Relational Database, Section 2.0DataLeader.io
 
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 SeriesAmazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 SeriesDataLeader.io
 
The Zen of Silverlight
The Zen of SilverlightThe Zen of Silverlight
The Zen of SilverlightDataLeader.io
 
The Fundamentals of HTML5
The Fundamentals of HTML5The Fundamentals of HTML5
The Fundamentals of HTML5DataLeader.io
 
How to Build Composite Applications with PRISM
How to Build Composite Applications with PRISMHow to Build Composite Applications with PRISM
How to Build Composite Applications with PRISMDataLeader.io
 
Microsoft Kinect & the Microsoft MIX11 Game Preview
Microsoft Kinect & the Microsoft MIX11 Game PreviewMicrosoft Kinect & the Microsoft MIX11 Game Preview
Microsoft Kinect & the Microsoft MIX11 Game PreviewDataLeader.io
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...DataLeader.io
 
Building Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKBuilding Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKDataLeader.io
 

More from DataLeader.io (9)

An Introduction to Amazon Aurora Cloud-native Relational Database
An Introduction to Amazon Aurora Cloud-native Relational DatabaseAn Introduction to Amazon Aurora Cloud-native Relational Database
An Introduction to Amazon Aurora Cloud-native Relational Database
 
Amazon Aurora Cloud-native Relational Database, Section 2.0
Amazon Aurora Cloud-native Relational Database, Section 2.0Amazon Aurora Cloud-native Relational Database, Section 2.0
Amazon Aurora Cloud-native Relational Database, Section 2.0
 
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 SeriesAmazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
 
The Zen of Silverlight
The Zen of SilverlightThe Zen of Silverlight
The Zen of Silverlight
 
The Fundamentals of HTML5
The Fundamentals of HTML5The Fundamentals of HTML5
The Fundamentals of HTML5
 
How to Build Composite Applications with PRISM
How to Build Composite Applications with PRISMHow to Build Composite Applications with PRISM
How to Build Composite Applications with PRISM
 
Microsoft Kinect & the Microsoft MIX11 Game Preview
Microsoft Kinect & the Microsoft MIX11 Game PreviewMicrosoft Kinect & the Microsoft MIX11 Game Preview
Microsoft Kinect & the Microsoft MIX11 Game Preview
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
 
Building Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKBuilding Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDK
 

Recently uploaded

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 

Recently uploaded (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

Managing High Availability with Low Cost

  • 1. Managing high availability with low cost Experiences from the kitchen
  • 2. Some definitions • Scalability is how big you can get. • Reliability is how consistent you are (in the short term). • Availability is being reliable and scalable (in the long run). • Scalability and reliability are not related (one does not cause the other or impacts the other). • Can’t have availability without scalability or reliability.
  • 3. Without further ado • The requirement: – Emergency responder system requires notifications from emergency workers for availability. • Results in: – System that is available 24x7 to respond to notifications. • Constrained by budget. • Currently at ~1,200 users/sec
  • 4. Without further ado • The requirement: – Call routing system that must respond to every single request as fast as possible. • Results in: – System that is available 24x7 to respond to calls (marketing and others). • Constrained by time.
  • 5. Results • Switch to Word doc
  • 6. What we tried first • What the blogs say – Be redundant in every part of the system (this gets very expensive!) • What the teachers say (by the book) – Formal engineering (this is very expensive too!) • What our gut told us – Test test test!
  • 7. What we learned • Scalability is a process not a destination. • Reliability is not a matter of QA. • The tools matter – but not in the traditional sense. – SQL Server (from 2005 to 2008 R2) – Windows (from 2003 to 2008 R2)
  • 8. Some statistics System availability 2010 14 minutes of failures from at least 2 of 3 monitoring locations 1% IIS 7 8% Network 32% Framework Bugs 52% App Bugs 37% 16% SQL Server - 100% CPU SQL Server - Mirroring 4% SQL Server - No reason 2% * Only outages at the core router are displayed here as network problems.
  • 9. Specific Lessons • Design code for failure (not for 100% reliability or 0 bugs). – Redundancy in code is critical. • Fail fast and fail often. – Don’t wait until the system fails completely. • Monitor and validate. – Monitor as frequently as it is affordable.
  • 10. Design for failure • Why once if you can • Use all available tools twice? – Bidirectional replication for regional duplication of traffic. – Cheap load balancers. – Cheap RAID 10 SATA. – Don’t trust your database.
  • 11. Fail fast and fail often • Specific configuration settings for IIS. – Yes! App pool recycling increases availability. • Specific configuration for queuing. – Use a messaging system that always responds and stores safely in case the database is not available. • Make a lot of noise.
  • 12. Monitor and validate • Monitis – Cheap, but support is not there. • Other tools – Gomez.com – expensive, but if you can afford it, great. • Inside tools – Open source and MS tools.
  • 13. The bottom line Design for failure Traditional Route Database approach - Expect the system to Database Clustering operate without a DB for brief periods of time. - Do mirroring locally. - Do replication remotely. Hardware approach - Configure for redundancy at Redundancy everywhere the telecom level. - Configure regional redundancy (invest in another server with another host, make sure network is different enough). Code approach - Design multiple systems that Design for 0 bugs (the formal do the same thing in simple method). Increase QA. ways. - There is nothing wrong with multiple code paths, even processes. - Reliability is not having the same bug in the same place.

Editor's Notes

  1. Mention how the most scalable systems are not always the most available (banks). Mention how the most reliable systems are not the most scalable (phones, specific purpose stuff).Analogy with orange chicken.
  2. Explain the process a bit more. Tell the story from the perspective of those who use it and those who receive a benefit. Also discuss the AR example and Call routing and call tracking.
  3. Explain the process a bit more. Tell the story from the perspective of those who use it and those who receive a benefit. Also discuss the AR example and Call routing and call tracking.
  4. For reliability, store your session data in the database. For reliability, everything must be redundant.For availability the system must be designed from the ground up.
  5. Explain how scalability is a moving target, maybe add the graphics from IAR.Explain how a system that works now is obsolete faster than you can think of. Mention the debate that is going on with “MySpace failed because of Microsoft”.Lessons from the MS bugs in the asp.net session handling code, enhancements in Windows performance over the different versions (from IIS 6 to IIS 7.5)
  6. Explain how availability is defined in terms of users and not in terms of system