#failability How to not Fail on Launch http://adammalone.net Adam - - PowerPoint PPT Presentation

failability
SMART_READER_LITE
LIVE PREVIEW

#failability How to not Fail on Launch http://adammalone.net Adam - - PowerPoint PPT Presentation

#failability How to not Fail on Launch http://adammalone.net Adam Malone @adammalone drupal.org/user/1295980 aka typhonius Adam Malone | How to not Fail on Launch about:me Client Advisory - Acquia APJ Created my first HTML site: 2009


slide-1
SLIDE 1

#failability

How to not Fail on Launch

http://adammalone.net @adammalone drupal.org/user/1295980

Adam Malone

aka typhonius Adam Malone | How to not Fail on Launch

slide-2
SLIDE 2

about:me

  • Client Advisory - Acquia APJ
  • Created my first HTML site: 2009
  • SSH’d into my first server: 2010
  • Found out about Drupal: May 2011
  • First core commit: Aug 2012 (Issue #304540)
slide-3
SLIDE 3

about:acquia

  • Drupal as a Service
  • Infrastructure, Support, Workflow
  • Hosted on scalable managed AWS instances
  • Centuries of combined knowledge
slide-4
SLIDE 4

about:launches

slide-5
SLIDE 5
slide-6
SLIDE 6

How to fail on Launch

  • The ‘Double Jeopardy’
  • The ‘Bulletproof Glass’
  • The ‘Franken-Server’
  • The ‘Naked Gun’
slide-7
SLIDE 7
slide-8
SLIDE 8

healthcare.gov Problems

slide-9
SLIDE 9

healthcare.gov Solutions

  • More authenticated caching
  • Staggered/phased roll-out
  • Asynchronous signups/tasks
  • Client-side processing
  • Reduce Single Points of Failure
slide-10
SLIDE 10

How to not Fail on Launch

  • Size accurately
  • Load test thoroughly
  • Audit custom modules
  • Use good caching strategies
  • DNS
  • Scotch
slide-11
SLIDE 11

How to not Fail on Launch

slide-12
SLIDE 12
slide-13
SLIDE 13

How to fail on Launch ...cont

  • The ‘Sleeping Beauty’
  • The ‘LOST’
  • The ‘General Custer’
  • The ‘100 Years War’
slide-14
SLIDE 14

Load Testing

  • Use historical logs
  • Break your site
  • Tell your host
  • Remove the need for changes near/during launch
slide-15
SLIDE 15

Sizing

  • Page views per month
  • % Authenticated
  • Docroots
  • Memory limit
  • PHP (FPM/CGI)
slide-16
SLIDE 16

DNS

  • Tell your host
  • Drop the TTL before launch
  • Use correct records
slide-17
SLIDE 17

Caching

  • External: Varnish/CDN
  • Internal: Memcache/Redis
  • Drupal Core
  • Contrib
slide-18
SLIDE 18
slide-19
SLIDE 19

How to fail on Launch ...cont ...cont

  • The ‘Marty McFly’
  • The ‘Sell by date’
  • The ‘Spider bite’
  • The ‘One Ring to rule them all’
  • The ‘MacGuyver’
slide-20
SLIDE 20

Module Anti-patterns

  • variable_set every page load
  • Setting sessions for anonymous
  • *_ui / dblog / statistics
  • Unnecessary functions - *_load
  • External calls
slide-21
SLIDE 21

Scotch

slide-22
SLIDE 22

How to not Fail after Launch

slide-23
SLIDE 23

Questions?

slide-24
SLIDE 24

Resources

  • Caching

○ Varnish ○ Memcache ○ Redis ○ DynamoDB ○ Entity Cache ○ Views Cache Bully ○ Cache Audit ○ Variables that suck less

  • Static-ify

○ httrack ○ boost

  • Scaling

○ Stack Demo

  • Load Testing

○ Blazemeter ○ jmeter ○ SOASTA ○ ab

  • Profiling

○ XDebug ○ XHProf

  • Launch

Checklist

  • Scotch

○ Any good bottle shop