Free Software, Free Labor, and the Freelancer. Boone drops truth.
Although I didn’t finish my slides until this morning, I did a couple of things I’ll always be doing going forward:
- Produce a list of a few bullet points I want to hit for each slide, in case I get off track. I put these in Apple Notes so I could easily reference from my phone when I got stuck.
- Practice the presentation a couple times. This was really helpful to identify how I wanted to transition between each slide.
The visual representation of the slides are below.
A Journey To The Center Of WP-CLI. I’m speaking at WordCamp NYC. Join me at 4:45 pm on Sunday.
“High performance is not high availability.”
Matt manages five personal servers, including one load balancer, two web servers, and two database servers. The Nginx load balancer is a 512 MB slice from Slicehost, web servers are Nginx with FastCGI and 1 GB a piece, and the MySQL database servers are 512 MB. HyperDB is a WordPress plugin which allows you to partition out your database. Matt has it configured such that reads are done from all of his databases, while writes are only to the master database.
Caching is done with Memcached, PHP APC caching, and Batcache. WordPress.com is Memcached, HyperDB and Batcached. LoadImpact.com allows you to load test your site with between 10 and 50 concurrent users and will give you the page load times based on the number of users. Matt’s load times start at about 1.75 seconds and actually go down over time because caching kicks in.
GlusterFS is a system utility to replicate data across all of your production web servers. Upload an image to one, copy to every. GlusterFS is nice because it works on both physical and virtual machines. Matt has the WordPress directory, PHP directory, and Nginx configuration syncing across his web servers.
In total, he easily handles 4 million pageviews/month across all of the machines.
“If it appears slow, it’s often because of the front-end.”
Scott Taylor discussed front-end optimization.
First, ensure the HTML code you write is semantically correct. The TwentyTen theme packaged with WordPress is a good example to follow. Overrides follow the rule of IDs first, then classes, then elements.
Combine scripts from different plugins to just one script to improve load times.
YSlow and Google Page Speed are good tools for front-end development. YSlow will tell you to make less HTTP requests, add expires heads, use Gzip (same thing as deflate), reduce the number of DOM elements, specify absolute image dimensions and a favicon, and cache AJAX requests.