Saturday, 6 October 2007

FOWA: Matt Mullenweg - Architecture of Wordpress

This is part of a series of posts with my notes on various talks I attended at the FOWA conference in London. Here are my notes from Matt Mullenweg's talk on the Architecture behind Wordpress:

Architecture of Wordpress - Matt Mullenweg (Founder)

Matt Mullenweg talked about scaling as the biggest technical issue facing Wordpress as the site grew in popularity. He talked about Scaling the Platform, your Community, the Business and scaling the people in the company.

Scaling the platform: Matt explained about a configuration that he calls "Matt's magic mini-cluster". It consists of 7 boxes and costs about $1500 per month.
It consists of:
  • 2 Load Balancers. They can have any CPUs, 2GB RAM, and have Pound+Wackamole+Spread. I don't know these are?
  • 2 Databases. Any CPUs, 4GB or more memory, Fastdisks and RAID.
  • 3 Web servers. Fast CPUs, 2GB RAMs, Litespeed or a well configured Apache and any type of disks.

http://2007.wordcamp.org/schedule/hyperdb-and-performance/

Other tips:
  • Put everything in Source Control (Subversion), including config files, etc.
  • Be Stateless - keep nothing to share between calls. This makes load balancing easy. Username/Password, etc and other session tracking stuff can be put in cookies and read from the request.
  • Use Memcached - which is an in-memory cache table.

Scaling the community: http://photomatt.net/about

Scaling the business: Matt talked about how WordPress changed its business model from that of paid upgrades to that of advertising. He also pointed out that people coming to the blogs from a search engine, generate the highest ad revenue. They have an intent to search, and thus click around more. Other users were not shown ads. Matt does not like ads and prefers to show as little ads as possible.

Scaling people: Hiring is most important for startup. Each new hire should be smarter than you, otherwise the average 'smartness' goes down. Matt said that hiring should be done very carefully, and if there is even a single reason to say no, then we should say no.
Great people = Rich environment + Worthwhile problems

Things to look for in new recruits (in dec. order of importance):
  1. Personality fit.
  2. Ability to learn and gain new knowledge quickly.
  3. Taste
  4. Passion for the space they are in.
  5. Familiarity with the technology. This is less important as smart people can learn new tech, but if deadlines are close, a familiar/experienced person is needed.

No comments: