SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Site Audit 
Drupal Best Practices and Content Analysis 
https://drupal.org/project/site_audit 
2014.10.13 - SFDUG
Jon Peck 
Senior Engineer at Four Kitchens 
@FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce
What is an audit? 
• official inspection of an 
individual's or organization's 
accounts 
• validate the good things 
you’re doing 
• highlight areas of 
improvement 
Electrical inspector in Public Safety Building, 1957 
Item 54948, Engineering Department Photographic Negatives 
(Record Series 2613-07), Seattle Municipal Archives.
Why audit sites? 
• Learn about contents and structure 
• Ensure optimal configuration 
• Discover areas of improvement
Every site is unique, but… 
• Built with the same framework 
• Similar architectural 
requirements 
• One size fits most 
http://www.flickr.com/photos/juliancolton/5360064817
Effective auditing 
• Consistent 
• Quantifiable 
• Contextually aware 
• Easy to understand 
• Actionable recommendations
Static program analysis 
• Performance & behavior gathering 
• Does not execute 
• Non-intrusive 
• Automated
What is Site Audit? 
• Drupal 7 site analyzer 
• Installed on target platform 
• Provides reports in multiple formats 
• Powers Launch Check on Pantheon
Requirements 
• Bootstrappable Drupal site 
• Drush 5.10 or higher 
• Shell access to target
Installation 
• Not a module 
• Place in Drush commands folder 
• Within user profile for just yourself 
• Within Drush installation folder
What does Site Audit check? 
• Best Practices 
• Block 
• Cache 
• Codebase 
• Content 
• Cron 
• Database 
• Extensions 
• Google Insights 
• System Status 
• Users 
• Views 
• Watchdog
What doesn’t Site Audit 
analyze? 
• DOM / front-end performance 
• Usability and site experience 
• Aesthetics 
• Content
Usage 
drush 
help 
-­‐-­‐filter=site_audit
drush audit_cache
drush ac --detail
HTML Output 
drush audit_best_practices --html --detail
JSON output 
drush audit_cron --json
Vendor support 
drush ae --vendor=acquia 
drush ae --vendor=pantheon
Audit All 
drush aa --skip=insights --html --bootstrap
Reports 
What and why.
Best Practices 
• Drupal Fast 404 HTML pages 
• Multisite - informational 
• PHP Filter - should be disabled 
• Settings and configuration - exists, not symbolic 
• settings.php 
• sites/all 
• sites/default 
• Unnecessary files in sites
Block 
• Caching • Cache Report
Cache 
• Anonymous page 
caching 
• Backends - list 
• Bins - list any specified 
• Default class 
• Minimum cache lifetime 
- should be never expire 
• Lock - display default 
locking mechanism 
• Page Compression - 
should be on 
• Expiration of cached 
pages - at least 15 
minutes 
• Aggregate and 
compress CSS, JS
Codebase 
• Size of entire site on disk 
• Size of public files 
• Managed file size, count
Content 
• Available content types and node counts 
• Unused content types - consider removing 
• Available vocabularies and term counts 
• Unused vocabularies - consider removing
Database 
• Collation - check if 
anything isn’t UTF-8 
• Engine - checks if anything 
isn’t using InnoDB 
• Row count - reports tables 
with more than X rows 
• Size in MB - including 
indexes and data
Extensions (modules and themes) 
• Count - 150 as arbitrary warning 
• Dev - reports development modules, provider aware of dev env 
• Disabled but not uninstalled 
• Duplicate - checks for duplicates 
• Missing - enabled, but code is missing 
• Unrecommended - Short list of bad modules 
• Version - specific problems in widely used modules
Status 
• Drupal status report 
• Highlights errors and problems
Users 
• Who is #1, blocked? 
• Count of all users 
• Count of blocked users 
• Role list, counts by role
Views 
• Count enabled 
• Caching rendered output 
• Caching query results
Watchdog 
• Number of 404s 
• How old the logs are 
• Count of entries 
• PHP errors 
• Syslog
Development 
Yes, it is extensible.
Structure 
• Object-oriented, abstract classes 
• Checks - individual checks; treat like unit tests 
• Report - collection of checks, run in a specific order. 
Can abort.
Writing custom Checks and 
Reports 
• Extend abstract SiteAuditReport, SiteAuditCheck 
• Drush hooks 
• Add callbacks 
• Add to audit_all 
• README.md
Hacked! integration
Drupal 8 version in 
development.
Applied site_audit recommendations. 
Good configuration matters. 
https://drupal.org/project/site_audit 
@FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce

Contenu connexe

Tendances

Functional Automated Database
Functional Automated DatabaseFunctional Automated Database
Functional Automated DatabaseErik Onnen
 
Create awesome Azure Functions with PowerShell
Create awesome Azure Functions with PowerShellCreate awesome Azure Functions with PowerShell
Create awesome Azure Functions with PowerShellJaap Brasser
 
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014datafundamentals
 
Automate everything with PowerShell
Automate everything with PowerShellAutomate everything with PowerShell
Automate everything with PowerShellJaap Brasser
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure FunctionsJaap Brasser
 
Go on GAE (Go Israel Meetup)
Go on GAE (Go Israel Meetup)Go on GAE (Go Israel Meetup)
Go on GAE (Go Israel Meetup)Or Hiltch
 
Automate yourself out of a job - Use ChatOps!
Automate yourself out of a job - Use ChatOps!Automate yourself out of a job - Use ChatOps!
Automate yourself out of a job - Use ChatOps!Jaap Brasser
 
Developing for the Atlassian Ecosystem
Developing for the Atlassian EcosystemDeveloping for the Atlassian Ecosystem
Developing for the Atlassian EcosystemAlex Henderson
 
COSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCOSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCarl Su
 
Apache contribution-bar camp-colombo
Apache contribution-bar camp-colomboApache contribution-bar camp-colombo
Apache contribution-bar camp-colomboSagara Gunathunga
 
Using Microsoft Flow for IT Professionals
Using Microsoft Flow for IT ProfessionalsUsing Microsoft Flow for IT Professionals
Using Microsoft Flow for IT ProfessionalsJaap Brasser
 
A Personal Journey
A Personal JourneyA Personal Journey
A Personal JourneyMichael Lihs
 
Rapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaRapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaKunal Dabir
 
Using Chat Automation - ChatOps
Using Chat Automation - ChatOpsUsing Chat Automation - ChatOps
Using Chat Automation - ChatOpsJaap Brasser
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Derek Jacoby
 
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress TodayTrying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress TodayDrewAPicture
 
Workshop automating with microsoft flow
Workshop   automating with microsoft flowWorkshop   automating with microsoft flow
Workshop automating with microsoft flowJaap Brasser
 
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHEREECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHEREEuropean Collaboration Summit
 
GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grailsbobbywarner
 
Red Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Red Hat Summit 2015 : Drools, jBPM and UberFire RoadmapsRed Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Red Hat Summit 2015 : Drools, jBPM and UberFire RoadmapsMark Proctor
 

Tendances (20)

Functional Automated Database
Functional Automated DatabaseFunctional Automated Database
Functional Automated Database
 
Create awesome Azure Functions with PowerShell
Create awesome Azure Functions with PowerShellCreate awesome Azure Functions with PowerShell
Create awesome Azure Functions with PowerShell
 
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
 
Automate everything with PowerShell
Automate everything with PowerShellAutomate everything with PowerShell
Automate everything with PowerShell
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure Functions
 
Go on GAE (Go Israel Meetup)
Go on GAE (Go Israel Meetup)Go on GAE (Go Israel Meetup)
Go on GAE (Go Israel Meetup)
 
Automate yourself out of a job - Use ChatOps!
Automate yourself out of a job - Use ChatOps!Automate yourself out of a job - Use ChatOps!
Automate yourself out of a job - Use ChatOps!
 
Developing for the Atlassian Ecosystem
Developing for the Atlassian EcosystemDeveloping for the Atlassian Ecosystem
Developing for the Atlassian Ecosystem
 
COSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCOSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflows
 
Apache contribution-bar camp-colombo
Apache contribution-bar camp-colomboApache contribution-bar camp-colombo
Apache contribution-bar camp-colombo
 
Using Microsoft Flow for IT Professionals
Using Microsoft Flow for IT ProfessionalsUsing Microsoft Flow for IT Professionals
Using Microsoft Flow for IT Professionals
 
A Personal Journey
A Personal JourneyA Personal Journey
A Personal Journey
 
Rapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaRapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for Java
 
Using Chat Automation - ChatOps
Using Chat Automation - ChatOpsUsing Chat Automation - ChatOps
Using Chat Automation - ChatOps
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7
 
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress TodayTrying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
 
Workshop automating with microsoft flow
Workshop   automating with microsoft flowWorkshop   automating with microsoft flow
Workshop automating with microsoft flow
 
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHEREECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
 
GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grails
 
Red Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Red Hat Summit 2015 : Drools, jBPM and UberFire RoadmapsRed Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Red Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
 

En vedette

Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7OSInet
 
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profitsStop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profitsDesignHammer
 
Drupal 7 performance and optimization
Drupal 7 performance and optimizationDrupal 7 performance and optimization
Drupal 7 performance and optimizationShafqat Hussain
 
Doing an awesome site audit
Doing an awesome site auditDoing an awesome site audit
Doing an awesome site auditJono Alderson
 
Og 102 site survey and layout of bts issue1.5
Og 102 site survey and layout of bts issue1.5Og 102 site survey and layout of bts issue1.5
Og 102 site survey and layout of bts issue1.5Ketut Widya
 
3 g huawei-wcdma-rno-parameters-optimization
3 g huawei-wcdma-rno-parameters-optimization3 g huawei-wcdma-rno-parameters-optimization
3 g huawei-wcdma-rno-parameters-optimizationshagahod
 

En vedette (9)

Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
 
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profitsStop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
 
Drupal 7 performance and optimization
Drupal 7 performance and optimizationDrupal 7 performance and optimization
Drupal 7 performance and optimization
 
Rf optimisation
Rf optimisationRf optimisation
Rf optimisation
 
Antenna alignment tool
Antenna alignment toolAntenna alignment tool
Antenna alignment tool
 
Doing an awesome site audit
Doing an awesome site auditDoing an awesome site audit
Doing an awesome site audit
 
Og 102 site survey and layout of bts issue1.5
Og 102 site survey and layout of bts issue1.5Og 102 site survey and layout of bts issue1.5
Og 102 site survey and layout of bts issue1.5
 
BTS SITE VISIT
BTS SITE VISITBTS SITE VISIT
BTS SITE VISIT
 
3 g huawei-wcdma-rno-parameters-optimization
3 g huawei-wcdma-rno-parameters-optimization3 g huawei-wcdma-rno-parameters-optimization
3 g huawei-wcdma-rno-parameters-optimization
 

Similaire à Drupal Site Audit - SFDUG

DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtNick Santamaria
 
From Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaFrom Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaIvan Verhun
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your WebsiteAcquia
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applicationsTalbott Crowell
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Brian Culver
 
Automated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave SadlonAutomated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave SadlonQA or the Highway
 
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
 
SharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceSharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceBrian Culver
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Migration Concentrate
Migration ConcentrateMigration Concentrate
Migration ConcentrateInnoTech
 
SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)Brian Culver
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsIDERA Software
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceSharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceBrian Culver
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Damian Beresford
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesTeamstudio
 
Drupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup BaselDrupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup BaselNETNODE AG
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterpriseTaylor Lovett
 
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
 

Similaire à Drupal Site Audit - SFDUG (20)

DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an Afterthought
 
From Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaFrom Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@Lohika
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applications
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!
 
Automated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave SadlonAutomated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave Sadlon
 
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...
 
SharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceSharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 Performance
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Migration Concentrate
Migration ConcentrateMigration Concentrate
Migration Concentrate
 
SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure Environments
 
Security for devs
Security for devsSecurity for devs
Security for devs
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceSharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 Performance
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
Drupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup BaselDrupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup Basel
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterprise
 
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
 

Plus de Jon Peck

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
 
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
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceJon Peck
 
SANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeSANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeJon Peck
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarJon 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
 

Plus de Jon Peck (8)

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
 
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...
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interface
 
SANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeSANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every Time
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction Webinar
 
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)
 

Dernier

Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdfShreedeep Rayamajhi
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsRoxana Stingu
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024Jan Löffler
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Shubham Pant
 
Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteMavein
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...APNIC
 
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSlesteraporado16
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfmchristianalwyn
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxnaveenithkrishnan
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSedrianrheine
 
Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilitiesalihassaah1994
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpressssuser166378
 

Dernier (12)

Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024
 
Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a Website
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
 
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptx
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
 
Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilities
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpress
 

Drupal Site Audit - SFDUG

  • 1. Site Audit Drupal Best Practices and Content Analysis https://drupal.org/project/site_audit 2014.10.13 - SFDUG
  • 2. Jon Peck Senior Engineer at Four Kitchens @FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce
  • 3. What is an audit? • official inspection of an individual's or organization's accounts • validate the good things you’re doing • highlight areas of improvement Electrical inspector in Public Safety Building, 1957 Item 54948, Engineering Department Photographic Negatives (Record Series 2613-07), Seattle Municipal Archives.
  • 4. Why audit sites? • Learn about contents and structure • Ensure optimal configuration • Discover areas of improvement
  • 5. Every site is unique, but… • Built with the same framework • Similar architectural requirements • One size fits most http://www.flickr.com/photos/juliancolton/5360064817
  • 6. Effective auditing • Consistent • Quantifiable • Contextually aware • Easy to understand • Actionable recommendations
  • 7. Static program analysis • Performance & behavior gathering • Does not execute • Non-intrusive • Automated
  • 8. What is Site Audit? • Drupal 7 site analyzer • Installed on target platform • Provides reports in multiple formats • Powers Launch Check on Pantheon
  • 9. Requirements • Bootstrappable Drupal site • Drush 5.10 or higher • Shell access to target
  • 10. Installation • Not a module • Place in Drush commands folder • Within user profile for just yourself • Within Drush installation folder
  • 11. What does Site Audit check? • Best Practices • Block • Cache • Codebase • Content • Cron • Database • Extensions • Google Insights • System Status • Users • Views • Watchdog
  • 12. What doesn’t Site Audit analyze? • DOM / front-end performance • Usability and site experience • Aesthetics • Content
  • 13. Usage drush help -­‐-­‐filter=site_audit
  • 16. HTML Output drush audit_best_practices --html --detail
  • 17. JSON output drush audit_cron --json
  • 18. Vendor support drush ae --vendor=acquia drush ae --vendor=pantheon
  • 19. Audit All drush aa --skip=insights --html --bootstrap
  • 21. Best Practices • Drupal Fast 404 HTML pages • Multisite - informational • PHP Filter - should be disabled • Settings and configuration - exists, not symbolic • settings.php • sites/all • sites/default • Unnecessary files in sites
  • 22. Block • Caching • Cache Report
  • 23. Cache • Anonymous page caching • Backends - list • Bins - list any specified • Default class • Minimum cache lifetime - should be never expire • Lock - display default locking mechanism • Page Compression - should be on • Expiration of cached pages - at least 15 minutes • Aggregate and compress CSS, JS
  • 24. Codebase • Size of entire site on disk • Size of public files • Managed file size, count
  • 25. Content • Available content types and node counts • Unused content types - consider removing • Available vocabularies and term counts • Unused vocabularies - consider removing
  • 26. Database • Collation - check if anything isn’t UTF-8 • Engine - checks if anything isn’t using InnoDB • Row count - reports tables with more than X rows • Size in MB - including indexes and data
  • 27. Extensions (modules and themes) • Count - 150 as arbitrary warning • Dev - reports development modules, provider aware of dev env • Disabled but not uninstalled • Duplicate - checks for duplicates • Missing - enabled, but code is missing • Unrecommended - Short list of bad modules • Version - specific problems in widely used modules
  • 28. Status • Drupal status report • Highlights errors and problems
  • 29. Users • Who is #1, blocked? • Count of all users • Count of blocked users • Role list, counts by role
  • 30. Views • Count enabled • Caching rendered output • Caching query results
  • 31. Watchdog • Number of 404s • How old the logs are • Count of entries • PHP errors • Syslog
  • 32. Development Yes, it is extensible.
  • 33. Structure • Object-oriented, abstract classes • Checks - individual checks; treat like unit tests • Report - collection of checks, run in a specific order. Can abort.
  • 34. Writing custom Checks and Reports • Extend abstract SiteAuditReport, SiteAuditCheck • Drush hooks • Add callbacks • Add to audit_all • README.md
  • 36. Drupal 8 version in development.
  • 37. Applied site_audit recommendations. Good configuration matters. https://drupal.org/project/site_audit @FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce