SlideShare a Scribd company logo
1 of 43
Download to read offline
Jeff Beeman (jrbeeman)
Erik Webb (erikwebb)
Planning for Performance
About Jeff
• Technical Team Lead
• Focus on Architecture,
Deployment, Delivery
• Joined Acquia in late 2010
• 9+ years with Drupal
• Lead architect on many
large-scale Drupal
projects
About Erik
• Technical Team Lead
• Focus on Performance,
Infrastructure, and
Scalability
• Joined Acquia in early
2010
• 7+ years with Drupal
• 12+ years with LAMP
https://portland2013.drupal.org/node/2208
Lessons we won't cover here...
CDNs
Minification
Far-future
expiration
Cache
purging
Client-side
rendering
Profiling
Lessons we will cover here...
• Don't rely on intuition: Learn how to
measure, assess, and respond based on
real data.
• Tools only solve problems you know
about.
• By the time you're "tuning," it may be too
late.
Top Drupal performance problems
This is about planning!
Why can't we just use X…?
• Deadlines and delivery don't often come
with a second chance.
• Gather data first, then choose to
optimize.
• Bad architecture cannot be "tuned."
Use cases
Make your marketing team happy!
Define goals
Defining goals
• Context is critical when defining goals
• User type: Anonymous vs. authenticated
• Page type: Homepage vs. article page
Defining goals: examples
• Bad: The homepage should load in 3s or less.
• Good: The homepage should be delivered to
anonymous users within 500ms and fully
render within 3s.
• Bad: Any single page should never take
longer than 2s to fully load.
• Good: Any single page should fully render to
users within 2s for 99% of requests.
Setting goals
Page delivery (TTFB) Page render
User type Page type Median Maximum Median Maximum
Anonymous
<Aggregate>
Homepage
User profile
Article page
Static page
Authenticated
<Aggregate>
Homepage
User login
My profile
Post content
Logout
Caching isn't just "on" or "off"
Cache effectiveness
• Cardinality
• Granularity
• Cache expiration (time vs. action)
• Rebuild cost
Granularity
The functional differentiation for each cache
item.
The number of variations created for a
single cache item.
Cardinality
Cache expiration
Period at which cache should be expired.
Resources required to rebuild the cache.
Cost to rebuild cache
Strategic decisions
• This is about establishing a cache
strategy.
• Not every architecture supports the same
performance plan.
• These are not just technical choices.
• Should be driven by stakeholders, not
just developers.
Stop talking about Drupal!
Now for an example!
Use your wireframes!
• Cardinality
• Granularity
• Cache expiration (time vs. action)
• Rebuild cost
New tech solves tech problems, not project
problems.
Monitoring
Client Monitoring
Application Monitoring
Request Profiling
Metrics/Instrumentation
XHProf
Log Monitoring
You know what they say about
assumptions...
• NEVER assume a warm cache, unless
your deployment makes that always true.
• NEVER assume your caching layer is
persistent (even when it is).
• NEVER assume performance will be solid
because of "good architecture."
• NEVER assume all features can be
implemented in a performant way.*
You know what they say about
assumptions...
• NEVER assume that the problem is in
custom code.
• NEVER assume a well-used module is a
well-performing one.
Catch it early
• Develop with data on par with production:
Data volume and values matter!
• Ensure diagnostic tools are available
locally for devs.
• Hold all devs accountable for
performance.
• Don't jump to conclusions without data.
Summary
• Planning for performance means setting
goals and defining strategies.
• Establish a cache strategy for page
components: Cardinality, granularity,
cache expiration, rebuild cost.
• Data matters: Don't make decisions or
assumptions without it.
Questions?
@doogiemac / @erikwebb
We're hiring!
Evaluate this session:
austin2014.drupal.org/schedule

More Related Content

What's hot

100% Backup: Reload & Reload for Retain Deep Dive
100% Backup: Reload & Reload for Retain Deep Dive100% Backup: Reload & Reload for Retain Deep Dive
100% Backup: Reload & Reload for Retain Deep DiveGWAVA
 
Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...
Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...
Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...RightScale
 
The Business Case for Cloud Management - RightScale Compute 2013
The Business Case for Cloud Management - RightScale Compute 2013The Business Case for Cloud Management - RightScale Compute 2013
The Business Case for Cloud Management - RightScale Compute 2013RightScale
 
Scaling Git for the Enterprise
Scaling Git for the EnterpriseScaling Git for the Enterprise
Scaling Git for the EnterpriseTechWell
 
Make Life Suck Less (Building Scalable Systems)
Make Life Suck Less (Building Scalable Systems)Make Life Suck Less (Building Scalable Systems)
Make Life Suck Less (Building Scalable Systems)guest0f8e278
 
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahujaCloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahujaResellerClub
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache CassandraInstaclustr
 
Code Yellow: Helping Operations Top-Heavy Teams the Smart Way
Code Yellow: Helping Operations Top-Heavy Teams the Smart WayCode Yellow: Helping Operations Top-Heavy Teams the Smart Way
Code Yellow: Helping Operations Top-Heavy Teams the Smart WayTodd Palino
 
Why Enterprises Are Embracing the Cloud
Why Enterprises Are Embracing the CloudWhy Enterprises Are Embracing the Cloud
Why Enterprises Are Embracing the CloudRandy Shoup
 
Why Does (My) Monitoring Suck?
Why Does (My) Monitoring Suck?Why Does (My) Monitoring Suck?
Why Does (My) Monitoring Suck?Todd Palino
 
Deployment Orchestration
Deployment OrchestrationDeployment Orchestration
Deployment OrchestrationBryan Baugher
 
Adaptavist unite
Adaptavist uniteAdaptavist unite
Adaptavist uniteAtlassian
 

What's hot (14)

100% Backup: Reload & Reload for Retain Deep Dive
100% Backup: Reload & Reload for Retain Deep Dive100% Backup: Reload & Reload for Retain Deep Dive
100% Backup: Reload & Reload for Retain Deep Dive
 
All engineering 11 21-14
All engineering 11 21-14All engineering 11 21-14
All engineering 11 21-14
 
Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...
Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...
Deployment Checkup: How to Regularly Tune Your Cloud Environment - RightScale...
 
The Business Case for Cloud Management - RightScale Compute 2013
The Business Case for Cloud Management - RightScale Compute 2013The Business Case for Cloud Management - RightScale Compute 2013
The Business Case for Cloud Management - RightScale Compute 2013
 
Scaling Git for the Enterprise
Scaling Git for the EnterpriseScaling Git for the Enterprise
Scaling Git for the Enterprise
 
Make Life Suck Less (Building Scalable Systems)
Make Life Suck Less (Building Scalable Systems)Make Life Suck Less (Building Scalable Systems)
Make Life Suck Less (Building Scalable Systems)
 
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahujaCloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache Cassandra
 
Cassandra o que nao te contaram
Cassandra   o que nao te contaramCassandra   o que nao te contaram
Cassandra o que nao te contaram
 
Code Yellow: Helping Operations Top-Heavy Teams the Smart Way
Code Yellow: Helping Operations Top-Heavy Teams the Smart WayCode Yellow: Helping Operations Top-Heavy Teams the Smart Way
Code Yellow: Helping Operations Top-Heavy Teams the Smart Way
 
Why Enterprises Are Embracing the Cloud
Why Enterprises Are Embracing the CloudWhy Enterprises Are Embracing the Cloud
Why Enterprises Are Embracing the Cloud
 
Why Does (My) Monitoring Suck?
Why Does (My) Monitoring Suck?Why Does (My) Monitoring Suck?
Why Does (My) Monitoring Suck?
 
Deployment Orchestration
Deployment OrchestrationDeployment Orchestration
Deployment Orchestration
 
Adaptavist unite
Adaptavist uniteAdaptavist unite
Adaptavist unite
 

Similar to DrupalCon Austin: Planning for Performance

(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
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLTriNimbus
 
DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtNick Santamaria
 
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
 
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
 
10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...BizTalk360
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara AnjargolianHakka Labs
 
RightScale Webinar: Enterprise-Grade Cloud Cost Management
RightScale Webinar: Enterprise-Grade Cloud Cost ManagementRightScale Webinar: Enterprise-Grade Cloud Cost Management
RightScale Webinar: Enterprise-Grade Cloud Cost ManagementRightScale
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsRebecca Wirfs-Brock
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptkhalidnawaz39
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxssuser0ed5b4
 
BizTalk Server Performance Tips
BizTalk Server Performance TipsBizTalk Server Performance Tips
BizTalk Server Performance TipsBizTalk360
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedAlexander Makarov
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackMark Voelker
 
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
 
7 Secrets to Becoming a Citrix Hero
7 Secrets to Becoming a Citrix Hero7 Secrets to Becoming a Citrix Hero
7 Secrets to Becoming a Citrix HeroeG Innovations
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & AlluxioAccelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & AlluxioAlluxio, Inc.
 
Software development planning and essentials
Software development planning and essentialsSoftware development planning and essentials
Software development planning and essentialsRajesh P
 

Similar to DrupalCon Austin: Planning for Performance (20)

(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
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
 
DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an Afterthought
 
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
 
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
 
10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara Anjargolian
 
RightScale Webinar: Enterprise-Grade Cloud Cost Management
RightScale Webinar: Enterprise-Grade Cloud Cost ManagementRightScale Webinar: Enterprise-Grade Cloud Cost Management
RightScale Webinar: Enterprise-Grade Cloud Cost Management
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.ppt
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptx
 
BizTalk Server Performance Tips
BizTalk Server Performance TipsBizTalk Server Performance Tips
BizTalk Server Performance Tips
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStack
 
Component-first Applications
Component-first ApplicationsComponent-first Applications
Component-first Applications
 
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
 
7 Secrets to Becoming a Citrix Hero
7 Secrets to Becoming a Citrix Hero7 Secrets to Becoming a Citrix Hero
7 Secrets to Becoming a Citrix Hero
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & AlluxioAccelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & Alluxio
 
Software development planning and essentials
Software development planning and essentialsSoftware development planning and essentials
Software development planning and essentials
 

More from Jeff Beeman

Drupal at ASU - Drupalcon 2010
Drupal at ASU - Drupalcon 2010Drupal at ASU - Drupalcon 2010
Drupal at ASU - Drupalcon 2010Jeff Beeman
 
ASU DUG Content Access Control and Workflow
ASU DUG Content Access Control and WorkflowASU DUG Content Access Control and Workflow
ASU DUG Content Access Control and WorkflowJeff Beeman
 
Dug cck and views 2010
Dug cck and views   2010Dug cck and views   2010
Dug cck and views 2010Jeff Beeman
 
ASU DUG - Advanced CCK and Views
ASU DUG - Advanced CCK and ViewsASU DUG - Advanced CCK and Views
ASU DUG - Advanced CCK and ViewsJeff Beeman
 
ASU DUG - SVN and CVS
ASU DUG - SVN and CVSASU DUG - SVN and CVS
ASU DUG - SVN and CVSJeff Beeman
 
ASU DUG - Drupalcon DC, CAS, Feed API
ASU DUG - Drupalcon DC, CAS, Feed APIASU DUG - Drupalcon DC, CAS, Feed API
ASU DUG - Drupalcon DC, CAS, Feed APIJeff Beeman
 

More from Jeff Beeman (7)

Drupal at ASU - Drupalcon 2010
Drupal at ASU - Drupalcon 2010Drupal at ASU - Drupalcon 2010
Drupal at ASU - Drupalcon 2010
 
Decoder Ring
Decoder RingDecoder Ring
Decoder Ring
 
ASU DUG Content Access Control and Workflow
ASU DUG Content Access Control and WorkflowASU DUG Content Access Control and Workflow
ASU DUG Content Access Control and Workflow
 
Dug cck and views 2010
Dug cck and views   2010Dug cck and views   2010
Dug cck and views 2010
 
ASU DUG - Advanced CCK and Views
ASU DUG - Advanced CCK and ViewsASU DUG - Advanced CCK and Views
ASU DUG - Advanced CCK and Views
 
ASU DUG - SVN and CVS
ASU DUG - SVN and CVSASU DUG - SVN and CVS
ASU DUG - SVN and CVS
 
ASU DUG - Drupalcon DC, CAS, Feed API
ASU DUG - Drupalcon DC, CAS, Feed APIASU DUG - Drupalcon DC, CAS, Feed API
ASU DUG - Drupalcon DC, CAS, Feed API
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

DrupalCon Austin: Planning for Performance

  • 1.
  • 2. Jeff Beeman (jrbeeman) Erik Webb (erikwebb) Planning for Performance
  • 3. About Jeff • Technical Team Lead • Focus on Architecture, Deployment, Delivery • Joined Acquia in late 2010 • 9+ years with Drupal • Lead architect on many large-scale Drupal projects
  • 4. About Erik • Technical Team Lead • Focus on Performance, Infrastructure, and Scalability • Joined Acquia in early 2010 • 7+ years with Drupal • 12+ years with LAMP
  • 6. Lessons we won't cover here... CDNs Minification Far-future expiration Cache purging Client-side rendering Profiling
  • 7. Lessons we will cover here... • Don't rely on intuition: Learn how to measure, assess, and respond based on real data. • Tools only solve problems you know about. • By the time you're "tuning," it may be too late.
  • 9. This is about planning!
  • 10. Why can't we just use X…? • Deadlines and delivery don't often come with a second chance. • Gather data first, then choose to optimize. • Bad architecture cannot be "tuned."
  • 12. Make your marketing team happy!
  • 14. Defining goals • Context is critical when defining goals • User type: Anonymous vs. authenticated • Page type: Homepage vs. article page
  • 15. Defining goals: examples • Bad: The homepage should load in 3s or less. • Good: The homepage should be delivered to anonymous users within 500ms and fully render within 3s. • Bad: Any single page should never take longer than 2s to fully load. • Good: Any single page should fully render to users within 2s for 99% of requests.
  • 16. Setting goals Page delivery (TTFB) Page render User type Page type Median Maximum Median Maximum Anonymous <Aggregate> Homepage User profile Article page Static page Authenticated <Aggregate> Homepage User login My profile Post content Logout
  • 17. Caching isn't just "on" or "off"
  • 18. Cache effectiveness • Cardinality • Granularity • Cache expiration (time vs. action) • Rebuild cost
  • 20. The number of variations created for a single cache item. Cardinality
  • 21. Cache expiration Period at which cache should be expired.
  • 22. Resources required to rebuild the cache. Cost to rebuild cache
  • 23. Strategic decisions • This is about establishing a cache strategy. • Not every architecture supports the same performance plan. • These are not just technical choices. • Should be driven by stakeholders, not just developers.
  • 25. Now for an example!
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Use your wireframes! • Cardinality • Granularity • Cache expiration (time vs. action) • Rebuild cost
  • 35.
  • 36. New tech solves tech problems, not project problems.
  • 37. Monitoring Client Monitoring Application Monitoring Request Profiling Metrics/Instrumentation XHProf Log Monitoring
  • 38. You know what they say about assumptions... • NEVER assume a warm cache, unless your deployment makes that always true. • NEVER assume your caching layer is persistent (even when it is). • NEVER assume performance will be solid because of "good architecture." • NEVER assume all features can be implemented in a performant way.*
  • 39. You know what they say about assumptions... • NEVER assume that the problem is in custom code. • NEVER assume a well-used module is a well-performing one.
  • 40.
  • 41. Catch it early • Develop with data on par with production: Data volume and values matter! • Ensure diagnostic tools are available locally for devs. • Hold all devs accountable for performance. • Don't jump to conclusions without data.
  • 42. Summary • Planning for performance means setting goals and defining strategies. • Establish a cache strategy for page components: Cardinality, granularity, cache expiration, rebuild cost. • Data matters: Don't make decisions or assumptions without it.
  • 43. Questions? @doogiemac / @erikwebb We're hiring! Evaluate this session: austin2014.drupal.org/schedule