Successfully reported this slideshow.

Anatomy of a high-volume, cloud-based WordPress architecture

2,248 views

Published on

Published in: Technology, Business
  • Be the first to comment

Anatomy of a high-volume, cloud-based WordPress architecture

  1. 1. ANATOMY OF A HIGH-VOLUME, CLOUD-BASED WORDPRESS ARCHITECTURE presented by Gabriel Koen WordCamp LA 2011
  2. 2. Gabriel KoenPrinciple Technical Architect at PMC@mintindeedhttp://gabrielkoen.com
  3. 3. www.pmc.com
  4. 4. REQUIREMENTSAvailabilityPerformance
  5. 5. AVAILABILITYSystem availability
  6. 6. • 2 availability zones• 2 web servers per zone• 1 memcached server per zone• Multi-zone RDS master• Single zone RDS read replica• S3 for user-uploaded and generated content• Akamai CDN
  7. 7. AVAILABILITYSystem availabilityData availability
  8. 8. USER-UPLOADEDCONTENTEBS doesn’t have failover S3 is designed to providenor automatic recovery 99.999999999% durability and 99.99% availability ofEBS can only be attached to objects over a given yeara single EC2 instance S3 is accessible from anyEBS recovery is limited to availability zonerestoring a point-in-timesnapshot
  9. 9. USER-UPLOADED Downtime per Availability % Downtime per Downtime per CONTENT year month week 99.9% EBS doesn’t have 8.76 hours(“three nines”) failover 43.2 minutes to provide S3 is designed 10.1 minutes nor automatic recovery 99.999999999% durability and 99.99% availability of 99.99% EBS can only be52.56 minutes attached to 4.32 minutes a given year objects over 1.01 minutes (“four nines”) a single EC2 instance 99.9999% is limited to EBS recovery 31.5 seconds 2.59 seconds 0.605 seconds (“six nines”)point-in-time restoring a snapshot99.999999999% WTF WTF WTF(“eleven nines”)
  10. 10. WP_FILESYSTEMS3 isn’t a filesystem WP_Filesystem transparently proxies...wait, what? filesystem commandsWe tries S3FS, it failed WordPress’s mediamiserably functions already use WP_FilesystemEnter WP_Filesystem Plugins customized to use WP_Filesystem will work with any WP install
  11. 11. MAKING WORDPRESSWORK WITH AUTOSCALINGS3 transport forWP_FilesystemAny plugins that interactwith user-uploaded orgenerated content need touse WP_FilesystemCDN rewrite for frontendCDN rewrite for admin
  12. 12. AVAILABILITYSystem availabilityData availabilityContent availability
  13. 13. HYPERDBMaster configured as a failover read slave Dynamic read slaves
  14. 14. AKAMAIWorldwide content distribution Static content caching Page caching
  15. 15. MAKING WORDPRESSWORK WITH AUTOSCALINGS3 transport forWP_FilesystemAny plugins that interactwith user-uploaded orgenerated content need touse WP_FilesystemCDN rewrite for frontendCDN rewrite for admin
  16. 16. MAKING WORDPRESSWORK AT SCALES3 transport for Things normally doneWP_Filesystem server-side need to be done client-sideAny plugins that interactwith user-uploaded orgenerated content need touse WP_FilesystemCDN rewrite for frontendCDN rewrite for admin
  17. 17. DEPLOYMENTSNo FTPNo persistent filesystemHow do you push code?
  18. 18. DEPLOYMENTSYou pull it.
  19. 19. DEPLOYMENTSCommit to version controlStart build in JenkinsJenkins pushes code to S3Web servers check in to S3,see new code, pull it

×