Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to launch a large-scale website confidently and successfully

How to launch a large-scale website confidently and successfully

Launch day for a website can be a stressful one, especially with the project stakeholders keeping an extra keen eye on how things are going.

Having relaunched Matalan’s website back in May, Ryan will be talking you through various technical and non-technical lessons learned opening the floodgates to large-scale traffic, so you can be far more confident in your next launch.

This talk was given at Leeds JS – October 25th, 2017.

Note: these slides have been expanded with additional notes to cover detail made verbally.

Ryan Townsend

October 25, 2017
Tweet

More Decks by Ryan Townsend

Other Decks in Programming

Transcript

  1. How to launch a large-scale website confidently and successfully Ryan

    Townsend – 25th October 2017 @ryantownsend
  2. Keep things simple • New features or new technology… not

    both • Mature (or ‘boring’) technology and architecture • Limit project scope
  3. Load testing • It’s A LOT harder than people let

    on • Assume user behaviour will change • Use real metrics and logged user behaviour • Use a wide variety of metrics
 – not just traffic • Post-test validate the metrics
 – at source, not just in your load testing tool • Push the limits
 – understand when you need to proactively start load reduction
  4. Caching • Care for the performance of cache misses
 –

    Faster performance = lower load (typically) • Content Delivery Networks
 – Assets: far-future expiry
 – Content: start with low TTLs, raise for desired effect • Consider redirects and 404s • Fragment caching • Low-level method / query caching
  5. Communication • Build a positive, trusting relationship with client /

    stakeholder • Understand their metrics • Authority
 – e.g. who can agree to change the plan? i.e. disabling a feature to reduce load • Perspective
 – what’s critical? what’s a problem? what can be ignored?
  6. Visibility • System monitoring
 – infrastructure & client-side • Client

    / stakeholder dashboards & reporting
 – see what they see • Customer engagement
 – social media, customer support • Instant access to logs
 – filterable, searchable Above shows how New Relic tracked a 3rd party script harming site performance but the server-side was fine.
  7. Roleplay • What could go wrong? • Who would you

    escalate to? • How would you solve? • What systems do you need access to? • What people do you need access to?
  8. Keep calm and carry on • Expect issues • Keep

    a level-head • Be professional • You’re an expert – you’ve got this
  9. Release mechanism • Big bang • Holding page • Easy

    ways out • Feature toggles • Canary release • Start minimal and increase features/percentage
  10. Build Confidence • Gather actual real metrics & usage patterns

    • Revisit your load tests and re-assess • Re-run load tests for future releases • Ship some safe releases • Ship small releases, often