SlideShare une entreprise Scribd logo
1  sur  27
Performance
Optimization of Cloud
Based Applications
Dr. Peter Smith, Principal Engineer, ACL
Overview
• Why Optimize?
• … business reasons you should care…
• Technical Stuff
• … contact me later if you want more detail…
• Recommendations
• … to take back to your company tomorrow…
About ACL
• Founded in 1987 – Vancouver headquartered.
• Audit for Fraud Detection
• Data-Driven Governance, Risk Management, Compliance (GRC)
• On-Premise Software
• Windows .NET and Java
• SaaS
• Entirely AWS-based
• Ruby-on-Rails, Node.js,
Golang, Scala.
Typical SaaS Architecture
End Users
Edge
Locations
Load
Balancer
Application/Web
Servers
Batch Servers
Database
Why Optimize?
Why Should You Care about Optimization?
Performance: How fast does your system react, even to one user?
Scalability: How many users, or how much data can you handle?
(alternatively, do you have the ability to scale?)
Versus
Why Should You Care about Optimization?
• Improve end-user experience – New Users
• Focus on features, less so on performance and scalability.
• Improve end-user experience – Existing Users
• Lots of “load”, might abandon your product if too slow.
• Reduce cloud operating costs
• Handling the same workload using less infrastructure leads to
lower cost.
Technical Stuff
(three common areas)
Problem Area 1 - Beware of Latency
Latency: The time required for data to travel from Point A to Point B
Vancouver to Virginia 100ms
Vancouver to Singapore 300ms
Between availability zones 1ms
From web server to database 100μs +
From main memory into CPU 100ns
Key Problem – “Chatty Protocols” (repeat
1000x)
Problem Area 1 - Beware of Latency
Example 1: SSL/TLS Negotiation
• TLS is a very “chatty” protocol, compared with non-SSL.
500ms versus 180ms to connect!
• New SSL connections require FIVE round trip messages.
• Solution: Use nearby CloudFront as SSL endpoint.
Example 2: N + 1 SQL Database queries
• Badly written queries => too many queries.
• With large data sets, latency adds up!
• Solution: Rewrite using a single optimized query.
Problem Area 1 - Beware of Latency
Problem Area 2 - Efficiency of Your Code
Modern computers can do:
• Billions of cycles/second
• Millions of RAM accesses/second
• Thousands of disk accesses/second
You will waste them, but you need to know where:
• Understand what’s being stored in RAM.
• Understand what your CPU is doing.
• Understand what your disk or database is busy loading.
Problem Area 2 - Efficiency of Your Code
Problem Area 2 - Efficiency of Your Code
Example: Fetch list of Facebook friends
• From SQL database: 10ms
• From cached copy in memory: 1μs
• 10,000 times faster!
Problems:
• Knowing when to “invalidate” caches is hard!
• Implementing caches is hard!
• Storage is more expensive.
Caching: Storing hard-to-compute results for later reuse
Problem Area 2 - Efficiency of Your Code
Language/Framework – Choose carefully, based on needs.
Example: Ruby on Rails
• Awesome for development of interactive sites.
• Easy to learn, develop, and debug.
Example: Scala with Play Framework
• Awesome for high performance and scalable
systems, including analytics.
• Harder to learn, slower to implement code.
Problem Area 3 - Architecting for “Scale Out”
Always architect your software to be scalable.
• Although not necessarily scaled.
Some common principles:
1. Think distributed instead of monolithic (scale-out not scale-up)
2. Design software components to be stateless (easier scale-out)
3. Assume multiple databases:
• You might start with one database, but eventually it’ll become a
bottleneck – plan for having many.
Recommendations
How to Prioritize?
1. A potential customer is negotiating a deal, but wants a feature
added before they’ll pay.
2. An existing customer is pushing your software to new limits
(more users, more data), but is noticing problems.
3. Your QA team stress-tests your product, making it fail.
TTM
Quality
Performance
Scalability
Strategy 1 - Don’t Optimize Prematurely
• Keep performance and scalability in mind,
but don’t over-engineer your software.
• Keep ahead of the problems, but not too far ahead.
• When building complex software systems, the actual bottlenecks
might surprise you.
Strategy 2 - Define “Good Enough”
• Have an organization-wide consensus on
performance and scalability expectations.
• Don’t leave it up to personal judgment whether
something is good enough – pass/fail must be obvious.
• For example:
• 95% of requests complete within 2 seconds.
• 99.9% of requests complete within 5 seconds.
• The remaining 0.1% might take longer.
Strategy 3 – Use Measurement Tools
• Don’t base problems on “personal feelings”.
• Collect performance data for all users (use New Relic / Data Dog)
• Raise alerts when data goes beyond “good enough” – be proactive
Strategy 4 – Get Upper Management on Board
• There’s nothing worse than conflicting messages:
“You need to focus on performance of the product, but that
customer feature is needed by Friday”
• Software Developers are often conflicted,
needing firm and consistent leadership.
• Don’t pull them in multiple directions!
Strategy 5 – Identify Technical Champions
It’s easy to say “write performant and scalable code”, but HOW???
• Identify knowledgeable and passionate individual
contributors.
• Make these the “go to” people for advising-on
and reviewing performance-critical code.
• Pay special attention to these people when
they’re concerned about issues.
Strategy 6 - Always Test with Realistic Data
Developers often test using small amounts of data, typically on laptops.
• Won’t find performance or scalability issues!
• For example:
• Customers had 1000 network devices, but we
tested with 6. Found an O(n^3) algorithm!
Instead, periodically spin-up servers for scalability testing:
• Use production-sized servers.
• Use production-sized data and workload.
Summary
Take Away Message
Tomorrow, I hope you think differently about performance and
scalability.
1) Do you believe that performance and scalability are
important to think about?
2) What are your company’s quantifiable expectations
on performance and scalability?
3) Are you doing a good enough job to measure and
identify problems?
4) Are there any cultural issues in your organization
preventing you from reaching your goals?
Thanks…
peter_smith@acl.com

Contenu connexe

Tendances

Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-ServicesRandy Shoup
 
AWS Summit Auckland - Running your Enterprise Windows Workload on AWS
AWS Summit Auckland  - Running your Enterprise Windows Workload on AWSAWS Summit Auckland  - Running your Enterprise Windows Workload on AWS
AWS Summit Auckland - Running your Enterprise Windows Workload on AWSAmazon Web Services
 
When small problems become big problems
When small problems become big problemsWhen small problems become big problems
When small problems become big problemsAdrian Cole
 
Digitally Transform (And Keep) Your On-Premises File Servers
Digitally Transform (And Keep) Your On-Premises File ServersDigitally Transform (And Keep) Your On-Premises File Servers
Digitally Transform (And Keep) Your On-Premises File ServersAidan Finn
 
Resilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and ScaleResilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and ScaleJason Chan
 
Cloud Application Security: Lessons Learned
Cloud Application Security: Lessons LearnedCloud Application Security: Lessons Learned
Cloud Application Security: Lessons LearnedJason Chan
 
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...RightScale
 
Cloud Computing Design Considerations
Cloud Computing Design ConsiderationsCloud Computing Design Considerations
Cloud Computing Design ConsiderationsMike Kavis
 
BinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in HadoopBinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in HadoopJason Trost
 
Shared Security Responsibility for the Azure Cloud
Shared Security Responsibility for the Azure CloudShared Security Responsibility for the Azure Cloud
Shared Security Responsibility for the Azure CloudAlert Logic
 
Automating Event Driven Security in the AWS Cloud
Automating Event Driven Security in the AWS CloudAutomating Event Driven Security in the AWS Cloud
Automating Event Driven Security in the AWS CloudAmazon Web Services
 
Chaos engineering & Gameday on AWS
Chaos engineering & Gameday on AWSChaos engineering & Gameday on AWS
Chaos engineering & Gameday on AWSBilal Aybar
 
Slashing Your Cloud Risk: 3 Must-Do's
Slashing Your Cloud Risk: 3 Must-Do'sSlashing Your Cloud Risk: 3 Must-Do's
Slashing Your Cloud Risk: 3 Must-Do'sSecurity Innovation
 
Plan Your IaaS Environment for Optimal Performance
Plan Your IaaS Environment for Optimal PerformancePlan Your IaaS Environment for Optimal Performance
Plan Your IaaS Environment for Optimal PerformanceRISC Networks
 
Benefits of Grid Computing in the Cloud
Benefits of Grid Computing in the CloudBenefits of Grid Computing in the Cloud
Benefits of Grid Computing in the CloudRightScale
 
Integrating security into the application development process
Integrating security into the application development processIntegrating security into the application development process
Integrating security into the application development processJerod Brennen
 
Monitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud InfrastructureMonitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud InfrastructureNewvewm
 
Managing Data in Microservices
Managing Data in MicroservicesManaging Data in Microservices
Managing Data in MicroservicesRandy Shoup
 
Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...
Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...
Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...Beau Bullock
 

Tendances (20)

Azure Security Center
Azure Security CenterAzure Security Center
Azure Security Center
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
AWS Summit Auckland - Running your Enterprise Windows Workload on AWS
AWS Summit Auckland  - Running your Enterprise Windows Workload on AWSAWS Summit Auckland  - Running your Enterprise Windows Workload on AWS
AWS Summit Auckland - Running your Enterprise Windows Workload on AWS
 
When small problems become big problems
When small problems become big problemsWhen small problems become big problems
When small problems become big problems
 
Digitally Transform (And Keep) Your On-Premises File Servers
Digitally Transform (And Keep) Your On-Premises File ServersDigitally Transform (And Keep) Your On-Premises File Servers
Digitally Transform (And Keep) Your On-Premises File Servers
 
Resilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and ScaleResilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and Scale
 
Cloud Application Security: Lessons Learned
Cloud Application Security: Lessons LearnedCloud Application Security: Lessons Learned
Cloud Application Security: Lessons Learned
 
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
 
Cloud Computing Design Considerations
Cloud Computing Design ConsiderationsCloud Computing Design Considerations
Cloud Computing Design Considerations
 
BinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in HadoopBinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in Hadoop
 
Shared Security Responsibility for the Azure Cloud
Shared Security Responsibility for the Azure CloudShared Security Responsibility for the Azure Cloud
Shared Security Responsibility for the Azure Cloud
 
Automating Event Driven Security in the AWS Cloud
Automating Event Driven Security in the AWS CloudAutomating Event Driven Security in the AWS Cloud
Automating Event Driven Security in the AWS Cloud
 
Chaos engineering & Gameday on AWS
Chaos engineering & Gameday on AWSChaos engineering & Gameday on AWS
Chaos engineering & Gameday on AWS
 
Slashing Your Cloud Risk: 3 Must-Do's
Slashing Your Cloud Risk: 3 Must-Do'sSlashing Your Cloud Risk: 3 Must-Do's
Slashing Your Cloud Risk: 3 Must-Do's
 
Plan Your IaaS Environment for Optimal Performance
Plan Your IaaS Environment for Optimal PerformancePlan Your IaaS Environment for Optimal Performance
Plan Your IaaS Environment for Optimal Performance
 
Benefits of Grid Computing in the Cloud
Benefits of Grid Computing in the CloudBenefits of Grid Computing in the Cloud
Benefits of Grid Computing in the Cloud
 
Integrating security into the application development process
Integrating security into the application development processIntegrating security into the application development process
Integrating security into the application development process
 
Monitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud InfrastructureMonitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud Infrastructure
 
Managing Data in Microservices
Managing Data in MicroservicesManaging Data in Microservices
Managing Data in Microservices
 
Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...
Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...
Covert Attack Mystery Box: A few novel techniques for exploiting Microsoft “f...
 

Similaire à Performance Optimization of Cloud Based Applications by Peter Smith, ACL

Scaling apps for the big time
Scaling apps for the big timeScaling apps for the big time
Scaling apps for the big timeproitconsult
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Databricks
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP120bi
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsAchievers Tech
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systemselliando dias
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelDaniel Coupal
 
5 Things that Make Hadoop a Game Changer
5 Things that Make Hadoop a Game Changer5 Things that Make Hadoop a Game Changer
5 Things that Make Hadoop a Game ChangerCaserta
 
Boosting the Performance of your Rails Apps
Boosting the Performance of your Rails AppsBoosting the Performance of your Rails Apps
Boosting the Performance of your Rails AppsMatt Kuklinski
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Lari Hotari
 
Mapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudMapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudChris Dagdigian
 
Challenges of Operationalising Data Science in Production
Challenges of Operationalising Data Science in ProductionChallenges of Operationalising Data Science in Production
Challenges of Operationalising Data Science in Productioniguazio
 
Big Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesBig Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesRob Winters
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsAchievers Tech
 
Doing Analytics Right - Building the Analytics Environment
Doing Analytics Right - Building the Analytics EnvironmentDoing Analytics Right - Building the Analytics Environment
Doing Analytics Right - Building the Analytics EnvironmentTasktop
 
Deliver Best-in-Class HPC Cloud Solutions Without Losing Your Mind
Deliver Best-in-Class HPC Cloud Solutions Without Losing Your MindDeliver Best-in-Class HPC Cloud Solutions Without Losing Your Mind
Deliver Best-in-Class HPC Cloud Solutions Without Losing Your MindAvere Systems
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation ProjectsAmazon Web Services
 
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...Precisely
 
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?TechWell
 
Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...
Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...
Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...Marina Peregud
 

Similaire à Performance Optimization of Cloud Based Applications by Peter Smith, ACL (20)

Scaling apps for the big time
Scaling apps for the big timeScaling apps for the big time
Scaling apps for the big time
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
 
5 Things that Make Hadoop a Game Changer
5 Things that Make Hadoop a Game Changer5 Things that Make Hadoop a Game Changer
5 Things that Make Hadoop a Game Changer
 
Boosting the Performance of your Rails Apps
Boosting the Performance of your Rails AppsBoosting the Performance of your Rails Apps
Boosting the Performance of your Rails Apps
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014
 
Mapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudMapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the Cloud
 
Challenges of Operationalising Data Science in Production
Challenges of Operationalising Data Science in ProductionChallenges of Operationalising Data Science in Production
Challenges of Operationalising Data Science in Production
 
Big Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesBig Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil Games
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty Details
 
Doing Analytics Right - Building the Analytics Environment
Doing Analytics Right - Building the Analytics EnvironmentDoing Analytics Right - Building the Analytics Environment
Doing Analytics Right - Building the Analytics Environment
 
Deliver Best-in-Class HPC Cloud Solutions Without Losing Your Mind
Deliver Best-in-Class HPC Cloud Solutions Without Losing Your MindDeliver Best-in-Class HPC Cloud Solutions Without Losing Your Mind
Deliver Best-in-Class HPC Cloud Solutions Without Losing Your Mind
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
 
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
 
Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...
Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...
Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемо...
 

Plus de TriNimbus

Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooTriNimbus
 
Juni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_Insights
Juni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_InsightsJuni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_Insights
Juni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_InsightsTriNimbus
 
Teri_Radichel_Top_5_Priorities_for_Cloud_Security
Teri_Radichel_Top_5_Priorities_for_Cloud_SecurityTeri_Radichel_Top_5_Priorities_for_Cloud_Security
Teri_Radichel_Top_5_Priorities_for_Cloud_SecurityTriNimbus
 
Peter_Smith_PhD_ACL_10000_Foot_View_of_Big_Data
Peter_Smith_PhD_ACL_10000_Foot_View_of_Big_DataPeter_Smith_PhD_ACL_10000_Foot_View_of_Big_Data
Peter_Smith_PhD_ACL_10000_Foot_View_of_Big_DataTriNimbus
 
Darin_Briskman_AWS_Machine_Learning_Beyond_the_Hype
Darin_Briskman_AWS_Machine_Learning_Beyond_the_HypeDarin_Briskman_AWS_Machine_Learning_Beyond_the_Hype
Darin_Briskman_AWS_Machine_Learning_Beyond_the_HypeTriNimbus
 
Amazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and Beyond
Amazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and BeyondAmazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and Beyond
Amazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and BeyondTriNimbus
 
Using Active Directory in AWS
Using Active Directory in AWSUsing Active Directory in AWS
Using Active Directory in AWSTriNimbus
 
AWS 2017 re:Invent re:Cap - TriNimbus Presentation Slides
AWS 2017 re:Invent re:Cap - TriNimbus Presentation SlidesAWS 2017 re:Invent re:Cap - TriNimbus Presentation Slides
AWS 2017 re:Invent re:Cap - TriNimbus Presentation SlidesTriNimbus
 
Building and Operating AI Services at Scale by Randall Hunt, Amazon Web Services
Building and Operating AI Services at Scale by Randall Hunt, Amazon Web ServicesBuilding and Operating AI Services at Scale by Randall Hunt, Amazon Web Services
Building and Operating AI Services at Scale by Randall Hunt, Amazon Web ServicesTriNimbus
 
Virtual Desktops on AWS by Mike Burke, Farm Credit Canada
Virtual Desktops on AWS by Mike Burke, Farm Credit CanadaVirtual Desktops on AWS by Mike Burke, Farm Credit Canada
Virtual Desktops on AWS by Mike Burke, Farm Credit CanadaTriNimbus
 
Dan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
Dan Crawford - Canadian Executive Cloud & DevOps Summit PresentationDan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
Dan Crawford - Canadian Executive Cloud & DevOps Summit PresentationTriNimbus
 
Justin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentation
Justin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentationJustin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentation
Justin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentationTriNimbus
 
Eric_Gales_Amazon_June_9_2017_presentation
Eric_Gales_Amazon_June_9_2017_presentationEric_Gales_Amazon_June_9_2017_presentation
Eric_Gales_Amazon_June_9_2017_presentationTriNimbus
 
Darin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_PresentationDarin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_PresentationTriNimbus
 
Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017TriNimbus
 
VMware + Amazon Web Services
VMware + Amazon Web ServicesVMware + Amazon Web Services
VMware + Amazon Web ServicesTriNimbus
 
DevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn GandhiDevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn GandhiTriNimbus
 
The New Normal - Eric Gales, AWS Canada
The New Normal - Eric Gales, AWS CanadaThe New Normal - Eric Gales, AWS Canada
The New Normal - Eric Gales, AWS CanadaTriNimbus
 
Staying Secure When Moving to the Cloud - Dave Millier
Staying Secure When Moving to the Cloud - Dave MillierStaying Secure When Moving to the Cloud - Dave Millier
Staying Secure When Moving to the Cloud - Dave MillierTriNimbus
 
Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...
Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...
Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...TriNimbus
 

Plus de TriNimbus (20)

Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency Woo
 
Juni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_Insights
Juni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_InsightsJuni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_Insights
Juni_Mukherjee_The_DevSecOps_Journey_AntiPatterns_Analytics_and_Insights
 
Teri_Radichel_Top_5_Priorities_for_Cloud_Security
Teri_Radichel_Top_5_Priorities_for_Cloud_SecurityTeri_Radichel_Top_5_Priorities_for_Cloud_Security
Teri_Radichel_Top_5_Priorities_for_Cloud_Security
 
Peter_Smith_PhD_ACL_10000_Foot_View_of_Big_Data
Peter_Smith_PhD_ACL_10000_Foot_View_of_Big_DataPeter_Smith_PhD_ACL_10000_Foot_View_of_Big_Data
Peter_Smith_PhD_ACL_10000_Foot_View_of_Big_Data
 
Darin_Briskman_AWS_Machine_Learning_Beyond_the_Hype
Darin_Briskman_AWS_Machine_Learning_Beyond_the_HypeDarin_Briskman_AWS_Machine_Learning_Beyond_the_Hype
Darin_Briskman_AWS_Machine_Learning_Beyond_the_Hype
 
Amazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and Beyond
Amazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and BeyondAmazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and Beyond
Amazon Elastic Container Service for Kubernetes (EKS), AWS Fargate and Beyond
 
Using Active Directory in AWS
Using Active Directory in AWSUsing Active Directory in AWS
Using Active Directory in AWS
 
AWS 2017 re:Invent re:Cap - TriNimbus Presentation Slides
AWS 2017 re:Invent re:Cap - TriNimbus Presentation SlidesAWS 2017 re:Invent re:Cap - TriNimbus Presentation Slides
AWS 2017 re:Invent re:Cap - TriNimbus Presentation Slides
 
Building and Operating AI Services at Scale by Randall Hunt, Amazon Web Services
Building and Operating AI Services at Scale by Randall Hunt, Amazon Web ServicesBuilding and Operating AI Services at Scale by Randall Hunt, Amazon Web Services
Building and Operating AI Services at Scale by Randall Hunt, Amazon Web Services
 
Virtual Desktops on AWS by Mike Burke, Farm Credit Canada
Virtual Desktops on AWS by Mike Burke, Farm Credit CanadaVirtual Desktops on AWS by Mike Burke, Farm Credit Canada
Virtual Desktops on AWS by Mike Burke, Farm Credit Canada
 
Dan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
Dan Crawford - Canadian Executive Cloud & DevOps Summit PresentationDan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
Dan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
 
Justin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentation
Justin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentationJustin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentation
Justin Fox_NuData Security_A Master_Card_Company_June 9 2017_presentation
 
Eric_Gales_Amazon_June_9_2017_presentation
Eric_Gales_Amazon_June_9_2017_presentationEric_Gales_Amazon_June_9_2017_presentation
Eric_Gales_Amazon_June_9_2017_presentation
 
Darin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_PresentationDarin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_Presentation
 
Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017
 
VMware + Amazon Web Services
VMware + Amazon Web ServicesVMware + Amazon Web Services
VMware + Amazon Web Services
 
DevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn GandhiDevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn Gandhi
 
The New Normal - Eric Gales, AWS Canada
The New Normal - Eric Gales, AWS CanadaThe New Normal - Eric Gales, AWS Canada
The New Normal - Eric Gales, AWS Canada
 
Staying Secure When Moving to the Cloud - Dave Millier
Staying Secure When Moving to the Cloud - Dave MillierStaying Secure When Moving to the Cloud - Dave Millier
Staying Secure When Moving to the Cloud - Dave Millier
 
Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...
Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...
Goran (Kima) Kimovski, Beyond Virtualization: IT In a World of Software Defin...
 

Dernier

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Dernier (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Performance Optimization of Cloud Based Applications by Peter Smith, ACL

  • 1. Performance Optimization of Cloud Based Applications Dr. Peter Smith, Principal Engineer, ACL
  • 2. Overview • Why Optimize? • … business reasons you should care… • Technical Stuff • … contact me later if you want more detail… • Recommendations • … to take back to your company tomorrow…
  • 3. About ACL • Founded in 1987 – Vancouver headquartered. • Audit for Fraud Detection • Data-Driven Governance, Risk Management, Compliance (GRC) • On-Premise Software • Windows .NET and Java • SaaS • Entirely AWS-based • Ruby-on-Rails, Node.js, Golang, Scala.
  • 4. Typical SaaS Architecture End Users Edge Locations Load Balancer Application/Web Servers Batch Servers Database
  • 6. Why Should You Care about Optimization? Performance: How fast does your system react, even to one user? Scalability: How many users, or how much data can you handle? (alternatively, do you have the ability to scale?) Versus
  • 7. Why Should You Care about Optimization? • Improve end-user experience – New Users • Focus on features, less so on performance and scalability. • Improve end-user experience – Existing Users • Lots of “load”, might abandon your product if too slow. • Reduce cloud operating costs • Handling the same workload using less infrastructure leads to lower cost.
  • 9. Problem Area 1 - Beware of Latency Latency: The time required for data to travel from Point A to Point B Vancouver to Virginia 100ms Vancouver to Singapore 300ms Between availability zones 1ms From web server to database 100μs + From main memory into CPU 100ns Key Problem – “Chatty Protocols” (repeat 1000x)
  • 10. Problem Area 1 - Beware of Latency Example 1: SSL/TLS Negotiation • TLS is a very “chatty” protocol, compared with non-SSL. 500ms versus 180ms to connect! • New SSL connections require FIVE round trip messages. • Solution: Use nearby CloudFront as SSL endpoint. Example 2: N + 1 SQL Database queries • Badly written queries => too many queries. • With large data sets, latency adds up! • Solution: Rewrite using a single optimized query.
  • 11. Problem Area 1 - Beware of Latency
  • 12. Problem Area 2 - Efficiency of Your Code Modern computers can do: • Billions of cycles/second • Millions of RAM accesses/second • Thousands of disk accesses/second You will waste them, but you need to know where: • Understand what’s being stored in RAM. • Understand what your CPU is doing. • Understand what your disk or database is busy loading.
  • 13. Problem Area 2 - Efficiency of Your Code
  • 14. Problem Area 2 - Efficiency of Your Code Example: Fetch list of Facebook friends • From SQL database: 10ms • From cached copy in memory: 1μs • 10,000 times faster! Problems: • Knowing when to “invalidate” caches is hard! • Implementing caches is hard! • Storage is more expensive. Caching: Storing hard-to-compute results for later reuse
  • 15. Problem Area 2 - Efficiency of Your Code Language/Framework – Choose carefully, based on needs. Example: Ruby on Rails • Awesome for development of interactive sites. • Easy to learn, develop, and debug. Example: Scala with Play Framework • Awesome for high performance and scalable systems, including analytics. • Harder to learn, slower to implement code.
  • 16. Problem Area 3 - Architecting for “Scale Out” Always architect your software to be scalable. • Although not necessarily scaled. Some common principles: 1. Think distributed instead of monolithic (scale-out not scale-up) 2. Design software components to be stateless (easier scale-out) 3. Assume multiple databases: • You might start with one database, but eventually it’ll become a bottleneck – plan for having many.
  • 18. How to Prioritize? 1. A potential customer is negotiating a deal, but wants a feature added before they’ll pay. 2. An existing customer is pushing your software to new limits (more users, more data), but is noticing problems. 3. Your QA team stress-tests your product, making it fail. TTM Quality Performance Scalability
  • 19. Strategy 1 - Don’t Optimize Prematurely • Keep performance and scalability in mind, but don’t over-engineer your software. • Keep ahead of the problems, but not too far ahead. • When building complex software systems, the actual bottlenecks might surprise you.
  • 20. Strategy 2 - Define “Good Enough” • Have an organization-wide consensus on performance and scalability expectations. • Don’t leave it up to personal judgment whether something is good enough – pass/fail must be obvious. • For example: • 95% of requests complete within 2 seconds. • 99.9% of requests complete within 5 seconds. • The remaining 0.1% might take longer.
  • 21. Strategy 3 – Use Measurement Tools • Don’t base problems on “personal feelings”. • Collect performance data for all users (use New Relic / Data Dog) • Raise alerts when data goes beyond “good enough” – be proactive
  • 22. Strategy 4 – Get Upper Management on Board • There’s nothing worse than conflicting messages: “You need to focus on performance of the product, but that customer feature is needed by Friday” • Software Developers are often conflicted, needing firm and consistent leadership. • Don’t pull them in multiple directions!
  • 23. Strategy 5 – Identify Technical Champions It’s easy to say “write performant and scalable code”, but HOW??? • Identify knowledgeable and passionate individual contributors. • Make these the “go to” people for advising-on and reviewing performance-critical code. • Pay special attention to these people when they’re concerned about issues.
  • 24. Strategy 6 - Always Test with Realistic Data Developers often test using small amounts of data, typically on laptops. • Won’t find performance or scalability issues! • For example: • Customers had 1000 network devices, but we tested with 6. Found an O(n^3) algorithm! Instead, periodically spin-up servers for scalability testing: • Use production-sized servers. • Use production-sized data and workload.
  • 26. Take Away Message Tomorrow, I hope you think differently about performance and scalability. 1) Do you believe that performance and scalability are important to think about? 2) What are your company’s quantifiable expectations on performance and scalability? 3) Are you doing a good enough job to measure and identify problems? 4) Are there any cultural issues in your organization preventing you from reaching your goals?

Notes de l'éditeur

  1. Title page
  2. 1 min
  3. Subtitle Page with sub-paragraph
  4. Subtitle Page with sub-paragraph
  5. Subtitle Page with sub-paragraph
  6. Subtitle Page with sub-paragraph