SlideShare una empresa de Scribd logo
1 de 53
Descargar para leer sin conexión
A Prefect Lunch…
Evry Tim
#SANDcramp 2014
A Perfect Launch…
Every Time
#SANDcamp 2014
Challenges for a perfect launch
● On time
● On budget
● On Plan
Encourage self-sufficient users
● Reduce cost
● Easier to work and learn
● Maintain good communication
Onboarding
Converting Newbies to Pros
How we prepare for launch
● Aim: Get rid of all the “uh-oh” moments
● Recipe: Set clients up for success
● Stakeholders:
○
○
○
○

Project Manager - scheduling, best practices
Developer - platform knowledge, integration
Sys Admin - responsibilities, delegation
Business owner - flawless launch
Have a system and tools
● Specify common workflow requirements
○ Repeatable tasks, delegatable

● Project management - Wrike, JIRA, etc.
● Orientation logistics
○ Scheduling - calendar, deadlines
○ Real-time communication
■ Phone, Video Conference, GoToMeeting, IRC
○ Training - documentation, Slides, Videos
Mapping the territory
● Scoping of responsibilities
○ Reduce confusion, set stage

● Channels of communication
○ Define emergency procedures
○ Issue tracking as primary inbox

● Staying in touch
○ Available, open, and regular
○ Proactive
Site Audit
Landmines, acid pools, and dead weight.
Why audit sites?
●
●
●
●
●

Ensure optimal configuration
Every site is unique, but…
Built with the same framework
Similar architectural requirements
One size fits most.
What is static program analysis?
●
●
●
●

Performance & behavior gathering
Does not execute
Non-intrusive
Automated
Why use static program analysis?
● Fast
● Repeatable
● Detects common problems
What is Site Audit?
● Drupal 7 static analysis
○ https://drupal.org/project/site_audit

● Best practices
● Actionable report
● Vendor agnostic
○ Optional Pantheon specific recommendations
What can Site Audit analyze?
●
●
●
●
●
●
●

Drupal caching settings
Codebase and file size
Database structure
Modules, including duplicate / missing
Non-standard code structures
Views caching
Watchdog logs
What does it not analyze?
●
●
●
●

DOM / front-end performance
Usability and site experience
Aesthetics
Content
Drush format
HTML format with optional Bootstrap
JSON format
Launch Check
● Site Audit in the Pantheon dashboard
○ Uses --vendor=pantheon config

● Most actionable checks
● Runs automatically
Best practices
Drupal caching settings
Drupal cron
Drupal’s database
Extensions (modules & themes)
Drupal’s System Status
Users
Views
Watchdog
Test Configuration
● Simple Drupal 7 site
● Apache Bench
○ 10,000 requests to home page (5 concurrent)

● Warmed cache, cleared watchdog
● Comparison
○ Bad config, 1 PHP notice and warning in theme
○ Good config, no PHP notices or warnings
Result? Doubled performance.
Bad config, errors
● 20 min, 52 sec
● Requests per
second: 7.98
● Time per request:
626.192 ms

Good config, no errors
● 10 min, 25 sec
● Requests per
second: 15.99
● Time per request:
312.780 ms
Good configuration matters.
Load Testing
Obliterate surprises with actionable results
What does a load test measure?
●
●
●
●
●

Performance
Smoke
Spike
Stress
Capacity
Why load test?
● Resource planning
● A/B testing
● Budgeting
When should I load test?
● Before you write your first line of code!
○ Xdebug, Webgrind, Devel, Syslog, Watchdog, New
Relic

● Incrementally during development
● Prior to launch
Caching
● Opcode Cache
○ APC, Zend Opcache, eAccelerator

● Backends
○ Memcached, Redis, MongoDB, file system, APC

● Front-end caching
○ Varnish, Squid, reverse-proxy CDNs
Testing Varnish with cURL
What to expect during & after
● Benchmark often (datapoints vs aggregate)
● Be reasonable
● Numbers should dictate expectations (backend not just Google analytics)
PHP Slow Log
Nginx error log
MySQL slow log
# Time: 130320 7:30:26
# User@Host: db_user[db_database] @ localhost []
# Query_time: 4.545309 Lock_time: 0.000069
Rows_sent: 219 Rows_examined: 254
SET timestamp=1363779026;
SELECT option_name, option_value FROM
wp_options
WHERE autoload = 'yes';
Pay attention to watchdog
6652 11/Oct 15:05 warning php Warning: Cannot modify header
information - headers already sent by (output started at
/srv/www/code/includes/common.inc:2700) in drupal_goto() (line
6643 11/Oct 14:21 notice php Notice: Trying to get property of
non-object in cap_ui_preprocess_page() (line 27 of
/srv/www/code/sites/all/themes/cap_ui/ template.php).
6595 11/Oct 13:00 notice php Notice: Unknown: Can not
authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid
credentials (Failure) (errflg=2) in main() (line of ).
New Relic
Who should execute the test
● Developers execute
● Involve stakeholders
Where to perform the test
● Live environment
○ Bandwidth

● Resource limitations
● SaaS
Tools for load testing
● DIY and simple
○ Apache Bench

● Complex / dynamic
○ Apache JMeter
○ Load Impact
○ Load Storm
Interpreting results
● Hard numbers
● Business impact
Load Test report
Own the results.
Thank you! Questions?
@getpantheon
irc.freenode.net #pantheon
getpantheon.com

Más contenido relacionado

La actualidad más candente

PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPROIDEA
 
StripeEu Twistedbytes Presentation
StripeEu Twistedbytes PresentationStripeEu Twistedbytes Presentation
StripeEu Twistedbytes Presentationtwistedbytes
 
Db in-memory
Db in-memoryDb in-memory
Db in-memoryfbenault
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Implementing High Performance Drupal Sites
Implementing High Performance Drupal SitesImplementing High Performance Drupal Sites
Implementing High Performance Drupal SitesShri Kumar
 
Massively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPMassively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPDemin Yin
 
Barcelona mysqlnd qc
Barcelona mysqlnd qcBarcelona mysqlnd qc
Barcelona mysqlnd qcAnis Berejeb
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance DrupalChapter Three
 
RESTful with Drupal - in-s and out-s
RESTful with Drupal - in-s and out-sRESTful with Drupal - in-s and out-s
RESTful with Drupal - in-s and out-sKalin Chernev
 
Moodle performance and stress testing
Moodle performance and stress testingMoodle performance and stress testing
Moodle performance and stress testingmoorejon
 
Islamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuningIslamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuningUmair Shahid
 
JMeter performance and scalability in Moodle Montana Moot 2014
JMeter performance and scalability in Moodle Montana Moot 2014JMeter performance and scalability in Moodle Montana Moot 2014
JMeter performance and scalability in Moodle Montana Moot 2014moorejon
 
DrupalCamp SP 2015 - Escalando PHP e Drupal- Performance ao infinito e além!
DrupalCamp SP 2015 -  Escalando PHP e Drupal- Performance ao infinito e além!DrupalCamp SP 2015 -  Escalando PHP e Drupal- Performance ao infinito e além!
DrupalCamp SP 2015 - Escalando PHP e Drupal- Performance ao infinito e além!Taller Negócio Digitais
 
Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015
Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015
Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015Handrus Nogueira
 

La actualidad más candente (17)

PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
 
StripeEu Twistedbytes Presentation
StripeEu Twistedbytes PresentationStripeEu Twistedbytes Presentation
StripeEu Twistedbytes Presentation
 
Lean and mean MongoDB
Lean and mean MongoDBLean and mean MongoDB
Lean and mean MongoDB
 
Db in-memory
Db in-memoryDb in-memory
Db in-memory
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Implementing High Performance Drupal Sites
Implementing High Performance Drupal SitesImplementing High Performance Drupal Sites
Implementing High Performance Drupal Sites
 
Massively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPMassively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHP
 
Barcelona mysqlnd qc
Barcelona mysqlnd qcBarcelona mysqlnd qc
Barcelona mysqlnd qc
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 
Memcache d
Memcache dMemcache d
Memcache d
 
RESTful with Drupal - in-s and out-s
RESTful with Drupal - in-s and out-sRESTful with Drupal - in-s and out-s
RESTful with Drupal - in-s and out-s
 
Managing 600 instances
Managing 600 instancesManaging 600 instances
Managing 600 instances
 
Moodle performance and stress testing
Moodle performance and stress testingMoodle performance and stress testing
Moodle performance and stress testing
 
Islamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuningIslamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuning
 
JMeter performance and scalability in Moodle Montana Moot 2014
JMeter performance and scalability in Moodle Montana Moot 2014JMeter performance and scalability in Moodle Montana Moot 2014
JMeter performance and scalability in Moodle Montana Moot 2014
 
DrupalCamp SP 2015 - Escalando PHP e Drupal- Performance ao infinito e além!
DrupalCamp SP 2015 -  Escalando PHP e Drupal- Performance ao infinito e além!DrupalCamp SP 2015 -  Escalando PHP e Drupal- Performance ao infinito e além!
DrupalCamp SP 2015 - Escalando PHP e Drupal- Performance ao infinito e além!
 
Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015
Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015
Escalando php e drupal- performance ao infinito e além! - Drupal camp sp 2015
 

Similar a Challenges and Best Practices for Launching and Optimizing Drupal Sites

MidCamp 2014 - A Perfect Launch, Every Time
MidCamp 2014 - A Perfect Launch, Every TimeMidCamp 2014 - A Perfect Launch, Every Time
MidCamp 2014 - A Perfect Launch, Every TimeSuzanne Aldrich
 
DrupalCamp LA 2014 - A Perfect Launch, Every Time
DrupalCamp LA 2014 - A Perfect Launch, Every TimeDrupalCamp LA 2014 - A Perfect Launch, Every Time
DrupalCamp LA 2014 - A Perfect Launch, Every TimeSuzanne Aldrich
 
Scaling Magento
Scaling MagentoScaling Magento
Scaling MagentoCopious
 
Web performance optimization - MercadoLibre
Web performance optimization - MercadoLibreWeb performance optimization - MercadoLibre
Web performance optimization - MercadoLibrePablo Moretti
 
Web performance mercadolibre - ECI 2013
Web performance   mercadolibre - ECI 2013Web performance   mercadolibre - ECI 2013
Web performance mercadolibre - ECI 2013Santiago Aimetta
 
Drupal 7 performance and optimization
Drupal 7 performance and optimizationDrupal 7 performance and optimization
Drupal 7 performance and optimizationShafqat Hussain
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersJon Peck
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Severalnines
 
Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)Ricardo Amaro
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud EraMydbops
 
Tech meetup: Web Applications Performance
Tech meetup: Web Applications PerformanceTech meetup: Web Applications Performance
Tech meetup: Web Applications PerformanceSantex Group
 
Developing word press professionally
Developing word press professionallyDeveloping word press professionally
Developing word press professionallyAustin Gil
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsBrettTasker
 
DevOps Braga #15: Agentless monitoring with icinga and prometheus
DevOps Braga #15: Agentless monitoring with icinga and prometheusDevOps Braga #15: Agentless monitoring with icinga and prometheus
DevOps Braga #15: Agentless monitoring with icinga and prometheusDevOps Braga
 
Nagios Conference 2014 - Eric Mislivec - Getting Started With Nagios Core
Nagios Conference 2014 - Eric Mislivec - Getting Started With Nagios CoreNagios Conference 2014 - Eric Mislivec - Getting Started With Nagios Core
Nagios Conference 2014 - Eric Mislivec - Getting Started With Nagios CoreNagios
 
PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)David Timothy Strauss
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarJon Peck
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)rc2209
 
Apache Airflow in Production
Apache Airflow in ProductionApache Airflow in Production
Apache Airflow in ProductionRobert Sanders
 

Similar a Challenges and Best Practices for Launching and Optimizing Drupal Sites (20)

MidCamp 2014 - A Perfect Launch, Every Time
MidCamp 2014 - A Perfect Launch, Every TimeMidCamp 2014 - A Perfect Launch, Every Time
MidCamp 2014 - A Perfect Launch, Every Time
 
DrupalCamp LA 2014 - A Perfect Launch, Every Time
DrupalCamp LA 2014 - A Perfect Launch, Every TimeDrupalCamp LA 2014 - A Perfect Launch, Every Time
DrupalCamp LA 2014 - A Perfect Launch, Every Time
 
Scaling Magento
Scaling MagentoScaling Magento
Scaling Magento
 
Web performance optimization - MercadoLibre
Web performance optimization - MercadoLibreWeb performance optimization - MercadoLibre
Web performance optimization - MercadoLibre
 
Web performance mercadolibre - ECI 2013
Web performance   mercadolibre - ECI 2013Web performance   mercadolibre - ECI 2013
Web performance mercadolibre - ECI 2013
 
Drupal 7 performance and optimization
Drupal 7 performance and optimizationDrupal 7 performance and optimization
Drupal 7 performance and optimization
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
Caching
CachingCaching
Caching
 
Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
Tech meetup: Web Applications Performance
Tech meetup: Web Applications PerformanceTech meetup: Web Applications Performance
Tech meetup: Web Applications Performance
 
Developing word press professionally
Developing word press professionallyDeveloping word press professionally
Developing word press professionally
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applications
 
DevOps Braga #15: Agentless monitoring with icinga and prometheus
DevOps Braga #15: Agentless monitoring with icinga and prometheusDevOps Braga #15: Agentless monitoring with icinga and prometheus
DevOps Braga #15: Agentless monitoring with icinga and prometheus
 
Nagios Conference 2014 - Eric Mislivec - Getting Started With Nagios Core
Nagios Conference 2014 - Eric Mislivec - Getting Started With Nagios CoreNagios Conference 2014 - Eric Mislivec - Getting Started With Nagios Core
Nagios Conference 2014 - Eric Mislivec - Getting Started With Nagios Core
 
PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction Webinar
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
 
Apache Airflow in Production
Apache Airflow in ProductionApache Airflow in Production
Apache Airflow in Production
 

Más de Jon Peck

Built it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineeringBuilt it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineeringJon Peck
 
How to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practicesHow to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practicesJon Peck
 
Creating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey SolutionsCreating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey SolutionsJon Peck
 
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...Jon Peck
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...Jon Peck
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Jon Peck
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUGJon Peck
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceJon Peck
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Jon Peck
 
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Jon Peck
 

Más de Jon Peck (10)

Built it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineeringBuilt it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineering
 
How to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practicesHow to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practices
 
Creating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey SolutionsCreating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey Solutions
 
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUG
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interface
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013
 
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
 

Último

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Último (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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!
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Challenges and Best Practices for Launching and Optimizing Drupal Sites

  • 1. A Prefect Lunch… Evry Tim #SANDcramp 2014
  • 2. A Perfect Launch… Every Time #SANDcamp 2014
  • 3. Challenges for a perfect launch ● On time ● On budget ● On Plan
  • 4. Encourage self-sufficient users ● Reduce cost ● Easier to work and learn ● Maintain good communication
  • 6. How we prepare for launch ● Aim: Get rid of all the “uh-oh” moments ● Recipe: Set clients up for success ● Stakeholders: ○ ○ ○ ○ Project Manager - scheduling, best practices Developer - platform knowledge, integration Sys Admin - responsibilities, delegation Business owner - flawless launch
  • 7. Have a system and tools ● Specify common workflow requirements ○ Repeatable tasks, delegatable ● Project management - Wrike, JIRA, etc. ● Orientation logistics ○ Scheduling - calendar, deadlines ○ Real-time communication ■ Phone, Video Conference, GoToMeeting, IRC ○ Training - documentation, Slides, Videos
  • 8. Mapping the territory ● Scoping of responsibilities ○ Reduce confusion, set stage ● Channels of communication ○ Define emergency procedures ○ Issue tracking as primary inbox ● Staying in touch ○ Available, open, and regular ○ Proactive
  • 9.
  • 10. Site Audit Landmines, acid pools, and dead weight.
  • 11. Why audit sites? ● ● ● ● ● Ensure optimal configuration Every site is unique, but… Built with the same framework Similar architectural requirements One size fits most.
  • 12. What is static program analysis? ● ● ● ● Performance & behavior gathering Does not execute Non-intrusive Automated
  • 13. Why use static program analysis? ● Fast ● Repeatable ● Detects common problems
  • 14. What is Site Audit? ● Drupal 7 static analysis ○ https://drupal.org/project/site_audit ● Best practices ● Actionable report ● Vendor agnostic ○ Optional Pantheon specific recommendations
  • 15. What can Site Audit analyze? ● ● ● ● ● ● ● Drupal caching settings Codebase and file size Database structure Modules, including duplicate / missing Non-standard code structures Views caching Watchdog logs
  • 16. What does it not analyze? ● ● ● ● DOM / front-end performance Usability and site experience Aesthetics Content
  • 18. HTML format with optional Bootstrap
  • 20. Launch Check ● Site Audit in the Pantheon dashboard ○ Uses --vendor=pantheon config ● Most actionable checks ● Runs automatically
  • 21.
  • 28. Users
  • 29. Views
  • 31. Test Configuration ● Simple Drupal 7 site ● Apache Bench ○ 10,000 requests to home page (5 concurrent) ● Warmed cache, cleared watchdog ● Comparison ○ Bad config, 1 PHP notice and warning in theme ○ Good config, no PHP notices or warnings
  • 32. Result? Doubled performance. Bad config, errors ● 20 min, 52 sec ● Requests per second: 7.98 ● Time per request: 626.192 ms Good config, no errors ● 10 min, 25 sec ● Requests per second: 15.99 ● Time per request: 312.780 ms
  • 34. Load Testing Obliterate surprises with actionable results
  • 35. What does a load test measure? ● ● ● ● ● Performance Smoke Spike Stress Capacity
  • 36. Why load test? ● Resource planning ● A/B testing ● Budgeting
  • 37. When should I load test? ● Before you write your first line of code! ○ Xdebug, Webgrind, Devel, Syslog, Watchdog, New Relic ● Incrementally during development ● Prior to launch
  • 38. Caching ● Opcode Cache ○ APC, Zend Opcache, eAccelerator ● Backends ○ Memcached, Redis, MongoDB, file system, APC ● Front-end caching ○ Varnish, Squid, reverse-proxy CDNs
  • 40. What to expect during & after ● Benchmark often (datapoints vs aggregate) ● Be reasonable ● Numbers should dictate expectations (backend not just Google analytics)
  • 41.
  • 44. MySQL slow log # Time: 130320 7:30:26 # User@Host: db_user[db_database] @ localhost [] # Query_time: 4.545309 Lock_time: 0.000069 Rows_sent: 219 Rows_examined: 254 SET timestamp=1363779026; SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
  • 45. Pay attention to watchdog 6652 11/Oct 15:05 warning php Warning: Cannot modify header information - headers already sent by (output started at /srv/www/code/includes/common.inc:2700) in drupal_goto() (line 6643 11/Oct 14:21 notice php Notice: Trying to get property of non-object in cap_ui_preprocess_page() (line 27 of /srv/www/code/sites/all/themes/cap_ui/ template.php). 6595 11/Oct 13:00 notice php Notice: Unknown: Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid credentials (Failure) (errflg=2) in main() (line of ).
  • 47. Who should execute the test ● Developers execute ● Involve stakeholders
  • 48. Where to perform the test ● Live environment ○ Bandwidth ● Resource limitations ● SaaS
  • 49. Tools for load testing ● DIY and simple ○ Apache Bench ● Complex / dynamic ○ Apache JMeter ○ Load Impact ○ Load Storm
  • 50. Interpreting results ● Hard numbers ● Business impact