Supersize me: Making Drupal go large

Post on 08-May-2015

3.660 views 0 download

description

My talk from Drupalcamp London Business Day on 1st March 2013 When building big websites, you're going to face a lot of problems regardless of your technology choice. This talk unveils some of the common problems, and shows how the Drupal community will help you solve these problems.

Transcript of Supersize me: Making Drupal go large

SUPERSIZE MEMaking Drupal go large

INTRODUCTION

•Who are we?

• Building BIG Drupal

• Three pillars of scale

• Care in the community

•Q&A

WHO ARE WE?

COMMON MISCONCEPTIONS

• “Drupal is slow”

• “Drupal doesn’t scale”

• “It’s only good for a hobby site”

WRONG!

DEVELOPING BIG WEBSITES WITH DRUPAL IS NO DIFFERENT TO

DEVELOPING THEM WITH ANY OTHER SOFTWARE

DEVELOPING BIG WEBSITES WITH DRUPAL IS NO DIFFERENT TO

DEVELOPING THEM WITH ANY OTHER SOFTWARE

DRUPAL IS NO DIFFERENT TO

ANY OTHER SOFTWARE

SCALING PERFORMANCEThe first pillar-box of scale

SCALING COMPLEXITY

• Caching and Reverse proxy caches

•Queues

• Alternative database backends

• Throttling

MONITORING

• All the common open source tools...

•Munin, Nagios, etc

• Plus some new ones

•New Relic, Boundary

• Social media

• saved our site...

SCALING PEOPLEWe’re going to need a bigger boat

COMMUNICATION

PRIORITISATION

DISTRIBUTED WORKING

REDUNDANCY

PROJECTS CONSIST OF CODE

PROJECTS CONSIST OF CODE

CODE IS WRITTEN BY PEOPLE

PEOPLE DELIVER PROJECTS

PROJECTS CONSIST OF CODE

CODE IS WRITTEN BY PEOPLE

SCALING PROCESSES

YOU STILL NEED TO DO ALL THE THINGS YOU WOULD DO

ON ANY BIG SOFTWARE PROJECT

WHAT THINGS?

• Provide clarity of purpose

• Automated and manual testing

• Continuous integration

• Performance testing and benchmarking

• Code review

• Source control

• Release management

• Address technical debt

• Be agile (with a little ‘a’)

CLARITY OF PURPOSE

• Your team must know how to “do”

• The definition of “done”

•What “good” looks like

TESTING

• Know how you’re going to test, before you write a single line of code

•Do it regularly

•Make it repeatable and consistent

• Automate as much as possible

• Test Driven Development (TDD) or Behaviour Driven Development (BDD) is even better

CONTINUOUS INTEGRATION

• Fail fast, Fail early

• Start your project the way you mean to go on

• Provide an environment where developers are allowed to make mistakes (not just dev)

• Automate your environment setup

• Regularly build your environments - including deploying to production

“IT DOESN’T MATTER HOW YOUR BUILD SCRIPT WORKS, IT ONLY MATTERS THAT IT

WORKS”

PERFORMANCE TESTING

• Know what you’re aiming for

• Test early, test regularly

• Benchmark common journeys and monitor changes over time

•Memory usage, Page execution time etc

• Acknowledge that Production is your only real test

KNOW YOUR PEAKS

CODE REVIEW

TECHNICAL DEBT

CARE IN THE COMMUNITYThe good news

YOU DON’T NEED TO REINVENT THE WHEEL

YOU’RE NOT THE FIRST

• Pressflow

• Published approaches to solving performance problems

• Catch’s Github page

•Drupal.org documented performance improvements

•Drupal 7 Fields optimisation (ported from Drupal 8)

• Porting performance improvements from newer versions

EXPERTS ARE OUT THERE

•Drupal issue queues

•Drupal High Performance Group

• IRC

•Meet-ups

•DrupalCamps and DrupalCons

• Large Scale Drupal (LSD) programme

DRUPAL PLAYS WELL WITH OTHERS

CONTRIBUTION

• Contribution encourages good developer practice

•Testing: core changes always accompanied by a test

•Review: minimum of 2 people will review any change to core

•Technical debt: critical issue thresholds block new features

SHARE AND SHARE ALIKE

• Route

• STOMP

• SQL No Revisions

• Drupal 8 Configuration Management Initiative (CMI)

• Test and Target

• Panels Filter Cache

• Various core and contrib patches

CONTRIBUTION CYCLE

WRAPPING UP

DRUPAL IS NO DIFFERENT TO

ANY OTHER SOFTWARE

THE COMMUNITY IS

WRAPPING UP

• If you’re building big, a lot of problems exist regardless of the technology

•Drupal provides ways to solve these problems

• The Drupal community is one of the best communities to have a problem in

•Drupal does scale, in performance, in people, in process

QUESTIONS?

Tweet: @tsphetheanDrupal.org: tsphethean

IRC: tsphethean

Tweet: @alexpottDrupal.org: alexpott

IRC: alexpott

WE’RE HERE ALL WEEKENDCome visit us on our stand

and see our other presentations

• Drupal 8 Configuration system for coders - Alex Pott (Sunday 10:30am)

• Please hold: your call is in a queue - Tom Phethean (Sunday 10:30am)

• zip-BDD-do-dah zip-BDD-ay! - Graham Taylor and Andrew Larcombe (Sunday 11:30am)

IMAGE ATTRIBUTIONS

• The Elephants are coming - http://www.fromthewilderness.com/free/ww3/011905_university_washington.shtml

• Pillar Box - http://www.oxfordhistory.org.uk/streets/post_boxes/edward_vii/index.html

• Jaws - http://edge.ascd.org/_Youre-Gonna-Need-a-Bigger-Boat/blog/6287739/127586.html

• Communication - http://familybugs.wordpress.com/2012/04/30/communication-part-1/

• Prioritisation - http://neilkillick.com/2011/12/17/tips-on-speedy-product-backlog-prioritisationordering/

• Remote working - http://www.wolfden.co.uk/RemoteWorking.html

• Redundancy - http://blog.800hosting.com/2011/07/workstation-backup-solutions-pt-3-redundancy/

• Scaling rock face - http://www.flickr.com/photos/alexindigo/2571638877

• Christmas - http://www.tunisia-live.net/2011/12/23/christmas-celebrations-in-tunisia-tis-the-season/

• Volcanic ash cloud - http://www.guardian.co.uk/world/blog/2010/apr/15/volcano-airport-disruption-iceland

• Technical debt - http://agileandbeyond.blogspot.co.uk/2011/05/velocity-handle-with-care.html

• Reinventing the wheel - http://www.sbi-conferences.com/dont-reinvent-the-wheel.html