The Architecture of Wordpress.com
Friday, February 29, 2008
If these notes are incomplete, inaccurate, or misspelled, it's completely my fault and not Matt's.
Presentation by Matt Mullenweg
Architecture?
Scaling.
Scaling Platform
Matt's Magic Mini-Cluster
- hard to figure out what people really want
scaling is a good problem to have it, if you ever have it
7 boxes about $1500/mo
- 2 load balancers
- any cpu
- 2 gb mem
- any disk
pound + wackamole + Spread
2 databases
- any cpu
- 4GB + memory
- fast disks, RAID
master + slave MySQL setup
3 web servers
- fast cpu
- 2 gb mem
- any disks
well-configured apache
Use HyperDB
- a database class they developed to handle multiple DBs; load balance the DB at the software level
A Few Rules to Follow
- Put Everything in Subversion
- Be Stateless
- stay away from DB session
- let every request stand on it's own
- then it becomes a matter of arithmetic when it comes to scaling
- Memcached
- distributed hash table
- allows you to manage caching well
- caches things in memory
- easily put things in a memcache and pull it out, and expire it
- Just use Wordpress.com
- http://2007.wordcamp.org/schedule/hyperdb-and-performance
Scaling Community
Scaling Business
- Upgrades; free is great
- took an a la carte approach to features
- didn't work entirely
- Ads: personally doesn't like ads
- shows only to random visitors
- if you use firefox, you'll never see an ad on wordpress.com (because Matt likes Firefox)
- pissed fewer people off, and click through rates much much higher
- VIP
- helps run other's blogs
- "fox news" unfortunately (ha ha)
Scaling People
- don't have to micromanage
- ideally are better at their job then you
Hiring
- Great People = rich environment + worthwhile problems
try to tackle something that's slightly out of your league
Passion for Space
- Personality Fit (it's like getting married)
- Ability to Learn (Curiosity)
- no correlation between intelligence and productivity
- skills you came into a job with are not the skills that you'll need in the future necessarily
- Familiarity with Technologies
- least important
- don't hire for specific skill sets
- Taste
- if something seems off with them, default answer is "no"
- if you get any red flags during the hiring process, I would recommend moving on
one mediocre person will drain a sea of bright people (they will not "suffer fools")
work with a person on a contract basis first
Scaling Brand
In a Name