Your SlideShare is downloading. ×
0
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Coding, Scaling, and Deploys... Oh My!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

9,109

Published 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.

Published in: Technology
0 Comments
20 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,109
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
64
Comments
0
Likes
20
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

×