Coding, Scaling, and Deploys... Oh My!

  • 8,766 views
Uploaded on

You're a professional WordPress developer in charge of a professional WordPress site. It's time to have professional development and deployment practices.

You're a professional WordPress developer in charge of a professional WordPress site. It's time to have professional development and deployment practices.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
8,766
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
63
Comments
0
Likes
18

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Coding Mark Jaquith “JAKE-with” Scaling and @markjaquith Deploys mark@jaquith.me markjaquith.com O hM y!Friday, August 12, 11
  • 2. Meanwhile, in 2006... Photo by Sco Beale (Laughing Squid)Friday, August 12, 11
  • 3. Cowboy CodingFriday, August 12, 11
  • 4. PE R! BA D! AD DE VELO B Cowboy CodingFriday, August 12, 11
  • 5. bnj.com/cowboy-coding-pink-sombreroFriday, August 12, 11
  • 6. VCS • or • GTFOFriday, August 12, 11
  • 7. WordPress in your repoFriday, August 12, 11
  • 8. My Ideal index.php wp-config.php content/themes/ content/plugins/ content/uploads/ (ignored) wp ➠ EXTERNALFriday, August 12, 11
  • 9. Local DevelopmentFriday, August 12, 11
  • 10. 1. MAMP, XAMPP, other 2. /etc/hosts 3. local-config.phpFriday, August 12, 11
  • 11. if ( file_exists( dirname( __FILE__ ) . /local-config.php ) ) { include( dirname( __FILE__ ) . /local-config.php ); define( WP_LOCAL_DEV, true ); } else { define( WP_LOCAL_DEV, false ); define( DB_NAME, production_db ); define( DB_USER, production_user ); define( DB_PASSWORD, production_password ); define( DB_HOST, production_db_host ); } Ignore local-config.php so it doesn’t get checked in.Friday, August 12, 11
  • 12. Deploying — with —Friday, August 12, 11
  • 13. 1. gem install capistrano 2. gem install railsless-deploy 3. gem install capistrano-extFriday, August 12, 11
  • 14. releases/ current => {current-release} shared/cached-copy shared/files/Friday, August 12, 11
  • 15. checked in: content/uploads => ../../files/uploads/ done on deploy: files => /srv/www/example.org/shared/files/Friday, August 12, 11
  • 16. Scaling a Single ServerFriday, August 12, 11
  • 17. nginxFriday, August 12, 11
  • 18. proxy to Apache or PHP-FPMFriday, August 12, 11
  • 19. PHP Opcode CacheFriday, August 12, 11
  • 20. WP Object CacheFriday, August 12, 11
  • 21. HTML Output Cache Batcache || W3 Total CacheFriday, August 12, 11
  • 22. Fragment Caching if ( $html = wp_cache_get( expensive-html-chunk, my-theme ) ) { echo $html; } else { $html = dynamically_generate_foo(); wp_cache_set( expensive-html-chunk, $html, my-theme, 3600 ); echo $html; }Friday, August 12, 11
  • 23. MySQL Query CacheFriday, August 12, 11
  • 24. CDN — with — Origin PullFriday, August 12, 11
  • 25. The PlanFriday, August 12, 11
  • 26. The Plan What happens if we outgrow our server? Boss TechFriday, August 12, 11
  • 27. The Plan What happens if we outgrow our server? We’ll just add new Boss servers! TechFriday, August 12, 11
  • 28. The Plan What happens if we outgrow our server? We’ll just add new Boss servers! Brilliant! TechFriday, August 12, 11
  • 29. The PlanFriday, August 12, 11
  • 30. The RealityFriday, August 12, 11
  • 31. The Reality Our site is slow. Let’s add another server. Boss TechFriday, August 12, 11
  • 32. The Reality Our site is slow. Let’s add another server. Uh... Boss TechFriday, August 12, 11
  • 33. The Reality Our site is slow. Let’s add another server. Uh... Boss So this will take like 5 minutes, right? TechFriday, August 12, 11
  • 34. Have a plan Not an ideaFriday, August 12, 11
  • 35. Multiple ServersFriday, August 12, 11
  • 36. Load BalancingFriday, August 12, 11
  • 37. Sharing UploadsFriday, August 12, 11
  • 38. MemcachedFriday, August 12, 11
  • 39. Rinse & RepeatFriday, August 12, 11
  • 40. HyperDBFriday, August 12, 11
  • 41. Maintaining Servers with PuppetFriday, August 12, 11
  • 42. This is the start of a larger conversationFriday, August 12, 11
  • 43. Mark Jaquith “JAKE-with” Thanks! @markjaquith mark@jaquith.me markjaquith.comFriday, August 12, 11