SlideShare a Scribd company logo
1 of 10
Download to read offline
Avoiding Performance Issues:
When and How to Debug Production
Best Practices
Best Practice

Steps to Take

Assure code quality

• Version control
• Test coverage

Dedicate time to
performance and security

• Dedicated positions are ideal
• For new projects, build into time estimates
• For older projects, dedicated time to revisit performance/security

Avoid technical debt

• Be proactive about updating versions
• Don’t write untested code

Continuous integration

2

•
•
•
•

Avoid doing work on production!
Proper dev/stage/prod workflow
Use CI tools to integrate and test code commits
Stage should be a (sanitized) clone of prod, but completely separated
from prod
But … Stuff Happens

Unexpected Situations
• Relevant employees are
inaccessible
• Unknown dependencies
• Emergencies affecting the
stakeholder

Bugs that only show up at scale
• Table locks

• ‘Noisy neighbor’ problems

• Queries lacking indexes or requiring
temp tables to disk (occurs with
blob/text columns, string cols >512
char in group by, distinct or unions)

• Rolling outages

• Users with atypical behavior, like
posting thousands of comments,
dozens of “tabs”

3

Bugs caused by third parties

• DNS
5 Steps to…

Writing code that won't
cause debugging headaches
Structuring deployments to keep
them responsive and reversible
Continuous monitoring across production

Agility in following problems through complex
systems

Making the right team members are aware of problems

4
Step 1: Writing code that won't cause debugging headaches

1

2

Dynamic dispatch

3

Evented or highly asynchronous code

4

Difficult data structures (e.g., closures)

5

5

Confusing execution flow

Include monitoring considerations in your codebase
Step 2: Structuring deployments to keep them responsive & reversible
1

2

Consider the cost of backing out: having to do a full database restore can take a huge
amount of time on a large site, so you ideally want to be able to do selective reverts

3

Know what changes are irreversible and what aren’t

4

Keep deployments as small as possible

5

Gradually roll out production changes, rather than all at once

6

Consider where you can make architectural decisions that enable fast changes, e.g.
setting a very low DNS TTL

7

6

Knowledge of what goes into a deployment

Deploy during office hours when possible, and not on Fridays
Step 3: Continuous monitoring across production

1

2

Log files

3

Availability

4

Latency

5

7

Infrastructure health

Cache effectiveness
Step 4: Agility in following problems through complex systems

1

2

Might require dedicated time for building tooling

3

Playbooks for when it goes well, and also for when it doesn’t

4

8

A big part of why DevOps matters

Making monitoring accessible
Step 5: Making the right team members are aware of problems

Doesn’t have to be a “flat
hierarchy”, but how effective are
your channels?

9
Learn More:

AppNeta Full Stack Application Performance Monitoring

More Related Content

What's hot

Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of LifeMelissa Benua
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - FunaroCodemotion
 
Scale your Software development process while scaling your team
Scale your Software development process while scaling your teamScale your Software development process while scaling your team
Scale your Software development process while scaling your teamFlorian Motlik
 
The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentTimothy Fitz
 
BeeCon 2016 Alfresco Engineering lightning talk
BeeCon 2016 Alfresco Engineering lightning talkBeeCon 2016 Alfresco Engineering lightning talk
BeeCon 2016 Alfresco Engineering lightning talkDavid Webster
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentRon Heft
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps worldBert Jan Schrijver
 
Integration Testing as Validation and Monitoring
 Integration Testing as Validation and Monitoring Integration Testing as Validation and Monitoring
Integration Testing as Validation and MonitoringMelissa Benua
 
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Suzie Prince
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deploymentMartijn van der Kamp
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the ApplicationAsh Winter
 
Software development practices & Infrastructure as Code - how well do they wo...
Software development practices & Infrastructure as Code - how well do they wo...Software development practices & Infrastructure as Code - how well do they wo...
Software development practices & Infrastructure as Code - how well do they wo...Equal Experts
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and BuildsBhavin Javia
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps TransformationDevOps.com
 
So you-want-to-go-faster
So you-want-to-go-fasterSo you-want-to-go-faster
So you-want-to-go-fasterOoblioob
 
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...Puppet
 

What's hot (20)

Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of Life
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
Debugging distributed systems
Debugging distributed systemsDebugging distributed systems
Debugging distributed systems
 
Scale your Software development process while scaling your team
Scale your Software development process while scaling your teamScale your Software development process while scaling your team
Scale your Software development process while scaling your team
 
The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous Deployment
 
BeeCon 2016 Alfresco Engineering lightning talk
BeeCon 2016 Alfresco Engineering lightning talkBeeCon 2016 Alfresco Engineering lightning talk
BeeCon 2016 Alfresco Engineering lightning talk
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
 
Integration Testing as Validation and Monitoring
 Integration Testing as Validation and Monitoring Integration Testing as Validation and Monitoring
Integration Testing as Validation and Monitoring
 
Distributed Development
Distributed DevelopmentDistributed Development
Distributed Development
 
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the Application
 
Software development practices & Infrastructure as Code - how well do they wo...
Software development practices & Infrastructure as Code - how well do they wo...Software development practices & Infrastructure as Code - how well do they wo...
Software development practices & Infrastructure as Code - how well do they wo...
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps Transformation
 
Debugging distributed systems
Debugging distributed systemsDebugging distributed systems
Debugging distributed systems
 
So you-want-to-go-faster
So you-want-to-go-fasterSo you-want-to-go-faster
So you-want-to-go-faster
 
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
 

Similar to Avoiding Performance Problems: When and How to Debug Production

Delphix and DBmaestro
Delphix and DBmaestroDelphix and DBmaestro
Delphix and DBmaestroKyle Hailey
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtimeDBmaestro - Database DevOps
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)Peter Kofler
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting examplecorehard_by
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comAviran Mordo
 
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
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerRightScale
 
Continuous integration sql in the city
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the cityIke Ellis
 
Vs11 overview
Vs11 overviewVs11 overview
Vs11 overviewravclarke
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryMandi Walls
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the TrenchesDonald Belcham
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 

Similar to Avoiding Performance Problems: When and How to Debug Production (20)

Delphix and DBmaestro
Delphix and DBmaestroDelphix and DBmaestro
Delphix and DBmaestro
 
Version Control meets Database Control
Version Control meets Database ControlVersion Control meets Database Control
Version Control meets Database Control
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
manage databases like codebases
manage databases like codebasesmanage databases like codebases
manage databases like codebases
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting example
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
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
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
 
Continuous integration sql in the city
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the city
 
Taking Database Development to the 21st Century
Taking Database Development to the 21st CenturyTaking Database Development to the 21st Century
Taking Database Development to the 21st Century
 
Vs11 overview
Vs11 overviewVs11 overview
Vs11 overview
 
Extreme Makeover OnBase Edition
Extreme Makeover OnBase EditionExtreme Makeover OnBase Edition
Extreme Makeover OnBase Edition
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 

More from AppNeta

AppNeta: Network Monitoring during Cloud Migration
AppNeta: Network Monitoring during Cloud MigrationAppNeta: Network Monitoring during Cloud Migration
AppNeta: Network Monitoring during Cloud MigrationAppNeta
 
AppNeta: Know your entire Application Landscape
AppNeta: Know your entire Application LandscapeAppNeta: Know your entire Application Landscape
AppNeta: Know your entire Application LandscapeAppNeta
 
AppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud Era
AppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud EraAppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud Era
AppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud EraAppNeta
 
AppNeta: SD-WAN & End User Experience
AppNeta: SD-WAN & End User ExperienceAppNeta: SD-WAN & End User Experience
AppNeta: SD-WAN & End User ExperienceAppNeta
 
Performance monitoring for remote locations
Performance monitoring for remote locationsPerformance monitoring for remote locations
Performance monitoring for remote locationsAppNeta
 
Measuring Cloud Performance Into and Across Cloud Providers
Measuring Cloud Performance Into and Across Cloud ProvidersMeasuring Cloud Performance Into and Across Cloud Providers
Measuring Cloud Performance Into and Across Cloud ProvidersAppNeta
 
Monitoring to the Nth tier: The state of distributed tracing in 2016
Monitoring to the Nth tier: The state of distributed tracing in 2016Monitoring to the Nth tier: The state of distributed tracing in 2016
Monitoring to the Nth tier: The state of distributed tracing in 2016AppNeta
 
Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...
Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...
Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...AppNeta
 
Are You Finding Out About Application Performance Problems From Your Users?
Are You Finding Out About Application Performance Problems From Your Users?Are You Finding Out About Application Performance Problems From Your Users?
Are You Finding Out About Application Performance Problems From Your Users?AppNeta
 

More from AppNeta (9)

AppNeta: Network Monitoring during Cloud Migration
AppNeta: Network Monitoring during Cloud MigrationAppNeta: Network Monitoring during Cloud Migration
AppNeta: Network Monitoring during Cloud Migration
 
AppNeta: Know your entire Application Landscape
AppNeta: Know your entire Application LandscapeAppNeta: Know your entire Application Landscape
AppNeta: Know your entire Application Landscape
 
AppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud Era
AppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud EraAppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud Era
AppNeta: Challenges of Monitoring the Remote Office in the Hybrid-Cloud Era
 
AppNeta: SD-WAN & End User Experience
AppNeta: SD-WAN & End User ExperienceAppNeta: SD-WAN & End User Experience
AppNeta: SD-WAN & End User Experience
 
Performance monitoring for remote locations
Performance monitoring for remote locationsPerformance monitoring for remote locations
Performance monitoring for remote locations
 
Measuring Cloud Performance Into and Across Cloud Providers
Measuring Cloud Performance Into and Across Cloud ProvidersMeasuring Cloud Performance Into and Across Cloud Providers
Measuring Cloud Performance Into and Across Cloud Providers
 
Monitoring to the Nth tier: The state of distributed tracing in 2016
Monitoring to the Nth tier: The state of distributed tracing in 2016Monitoring to the Nth tier: The state of distributed tracing in 2016
Monitoring to the Nth tier: The state of distributed tracing in 2016
 
Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...
Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...
Slow is the New Down: Keeping Your Business in Business by Ensuring Successfu...
 
Are You Finding Out About Application Performance Problems From Your Users?
Are You Finding Out About Application Performance Problems From Your Users?Are You Finding Out About Application Performance Problems From Your Users?
Are You Finding Out About Application Performance Problems From Your Users?
 

Recently uploaded

ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceIES VE
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...caitlingebhard1
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 

Recently uploaded (20)

ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Avoiding Performance Problems: When and How to Debug Production

  • 1. Avoiding Performance Issues: When and How to Debug Production
  • 2. Best Practices Best Practice Steps to Take Assure code quality • Version control • Test coverage Dedicate time to performance and security • Dedicated positions are ideal • For new projects, build into time estimates • For older projects, dedicated time to revisit performance/security Avoid technical debt • Be proactive about updating versions • Don’t write untested code Continuous integration 2 • • • • Avoid doing work on production! Proper dev/stage/prod workflow Use CI tools to integrate and test code commits Stage should be a (sanitized) clone of prod, but completely separated from prod
  • 3. But … Stuff Happens Unexpected Situations • Relevant employees are inaccessible • Unknown dependencies • Emergencies affecting the stakeholder Bugs that only show up at scale • Table locks • ‘Noisy neighbor’ problems • Queries lacking indexes or requiring temp tables to disk (occurs with blob/text columns, string cols >512 char in group by, distinct or unions) • Rolling outages • Users with atypical behavior, like posting thousands of comments, dozens of “tabs” 3 Bugs caused by third parties • DNS
  • 4. 5 Steps to… Writing code that won't cause debugging headaches Structuring deployments to keep them responsive and reversible Continuous monitoring across production Agility in following problems through complex systems Making the right team members are aware of problems 4
  • 5. Step 1: Writing code that won't cause debugging headaches 1 2 Dynamic dispatch 3 Evented or highly asynchronous code 4 Difficult data structures (e.g., closures) 5 5 Confusing execution flow Include monitoring considerations in your codebase
  • 6. Step 2: Structuring deployments to keep them responsive & reversible 1 2 Consider the cost of backing out: having to do a full database restore can take a huge amount of time on a large site, so you ideally want to be able to do selective reverts 3 Know what changes are irreversible and what aren’t 4 Keep deployments as small as possible 5 Gradually roll out production changes, rather than all at once 6 Consider where you can make architectural decisions that enable fast changes, e.g. setting a very low DNS TTL 7 6 Knowledge of what goes into a deployment Deploy during office hours when possible, and not on Fridays
  • 7. Step 3: Continuous monitoring across production 1 2 Log files 3 Availability 4 Latency 5 7 Infrastructure health Cache effectiveness
  • 8. Step 4: Agility in following problems through complex systems 1 2 Might require dedicated time for building tooling 3 Playbooks for when it goes well, and also for when it doesn’t 4 8 A big part of why DevOps matters Making monitoring accessible
  • 9. Step 5: Making the right team members are aware of problems Doesn’t have to be a “flat hierarchy”, but how effective are your channels? 9
  • 10. Learn More: AppNeta Full Stack Application Performance Monitoring