0
Leveraging Open Source Software to
Maximize Your Development Resources(and the problems you can expect with success)
LOGIN 2010, Seattle, WA
March 13, 2010
Brett G. Durrett (@bdurrett)
Vice President Engineering & Operations, IMVU, Inc.
1
Who is This Guy?
• VP Engineering & Operations, IMVU
– 5 years, plan on many more
• VP Operations / GM Consumer, There.com
– 5 years
• CEO, Asylum Entertainment
– Independent game studio
– 7 years, 20+ titles
2
Why Am I Here?
• Talking about Open Source Software
– How it was critical to IMVU’s success
– Problems that resulted
– Why it is probably important to you
• More about business than technology
An online community where members use 3D avatars
to meet new people, chat, create
and have fun with their friends
4
How We Work
• Agile
– 2-3 week sprints
• Continuous Deployment
– No QA or staging servers
– Every commit goes live to production, 20 min
– New code goes live 20-50 times each day
• Data Driven
– Make decisions using customer metrics
5
IMVU is Built on Open Source
Python
PHPBB
OSCommerce
Apache Server
Linux
Memcached
MogileFS
Perlbal
PHP
MySQL
Nagios
Cacti
Coppermine
Buildbot
XULRunner
YUI
jQuery
B2evolution
Audiere
Boost
Ogg Vorbis
Phorum
Cfengine
FAI
Solr
Subversion
Eclipse
6
What Scale are We Talking About?
• Over 4 million user-generated items
• 2 million monthly active users
• 10 million monthly unique visitors
• 50 million registered users
• Peak ~120K concurrent IM client logins
• It’s a real business!
– $40 million run rate
– Profitable and doubled revenue in 2009
7
Don’t Sue Me
I’m not a lawyer – I don’t play one on TV
I am not offering legal advice
Before using Open Source software, read
the license, consult an attorney if needed
8
Is Open Source the right solution for you?
9
What business problem are you trying to solve?
10
Why Open Source?
• Problem is finding right product, not scale
– A product that supports your business
• Limited resources
• Wheels have already been invented
11
Why IMVU Chose OSS
• 2004 – are avatars and virtual goods even
a business?
• Wanted to spend limited resources only on
problems somebody else hadn’t solved
• Quickest path to customer feedback
12
IMVU Launch, 2004
• Small team
– 2 engineers, 3 content / design
• Resources spent on unique problem
– 3D IM Client
– Derivable 3D UGC
• Open Source for everything else
– LAMP stack
– Catalog (and payments)
– Forums
13
OSS Early Value
• Conception to ship in 6 months
• > 80% code was free
• Real customer feedback
– Quickly learning what had to change
14
And we continued…
• Photo galleries
– Coppermine added in weeks
• Blogs
– B2evo added in one day
• Groups
– Phorum added in about a week
15
OSS Opportunities
• Back end (server side)
• Website
– Libraries
– Applications
• Application libraries
Quick mention:
• Development Tools
• Office Productivity
16
Who Is Making This Stuff
Majority of Open Source projects
designed, created and maintained by
technical people
• Good news for systems & infrastructure
• Not so much for UI for non-technical users
17
Back End (server side)
• Software in mature state
• Works “out of the box”
• Scalable solutions for several problems
– Database, caching, storage, monitoring
• Active contributors from large companies
– Facebook and Google are working for you
18
MogileFS
Business problems
• Lots of UGC
• Little cash
• Despise being hostage to vendor upgrade
MogileFS
• Distributed, redundant data store
• Using 32 Tb, 600 million files
19
Website Libraries
• Popular packages are well supported
– YUI
– jQuery
• Already built many common components
– Dialogs, menus, images, pagination
– Fancy AJAX / DHTML
• Can handle browser idiosyncrasies
20
Website Applications – the Bad
• Software varies in maturity & quality
• Usually requires integration work
– UI consistency
– Interfaces with existing data structures
• It probably won’t scale without investment
21
Website Applications - the Good
• Early solution for non-core problems
– Customer service
– Profiles
– Account basics
• Great for testing feature interest
22
Testing Feature Interest
Do our customers care about blogs?
• B2evo integrated & deployed in 1 day
• Real customer feedback (usage metrics)
23
Application Libraries
• Available for big components
– Rendering
– Audio
– Effects
• Double check the license!
24
XULRunner
• 2008 updated IM client
• Wanted to rapidly iterate on UI
• Used Mozilla HTML libraries
• HTML / Javascript programmers for UI
– Was previously C++ programmer
25
Client UI – Old School
26
Client UI – New Hotness
27
Client UI – Catalog
HTML/JS
30
Development Tools
• Lot’s of great tools
– Ranging from editors to testing frameworks
– Built by engineers for engineers
• Extendable
– You have the source!
31
Office Productivity
• Great options when cash critical
– Free alternatives for Office, Photoshop, etc.
• Sometimes obscure compatibility issues
with commercial versions
• Frequently suffers from unintuitive UI
see http://www.osalt.com/
32
Congratulations!
You spent your resources wisely
You built a product customers love
You’re growing a business
Now you have some problems to solve
33
Scalability
• Back-end systems will probably scale
– Easy to scale by following examples
– Some exceptions for trending and alerting
• Web applications will likely require
investment to scale
34
Scaling Web Applications
• Most packages think of users in the hundreds or
thousands
– “SELECT * FROM USERS WHERE 1”
• Usually no shared (network) caching
– Beneficial for scaling by adding servers
• Nobody has horizontal database partitioning
– Eliminates database as scaling limiter
35
Web App Scaling Cheat Sheet
Database is almost always your problem
1. Add read slaves to database
2. Use shared (network) caching of queries
3. Vertical partition
4. Horizontal partitions
…and SSDs will buy you a lot of time!!!
36
Reality Check
In most cases you probably should not have
been solving those problems anyway
(yet)
37
Feature Testing
• Hypothesis test big wins
– highly valuable
– completely worthless
• Additional difficulties when not definitive
– Kill it or invest in improvements?
• Won’t catch right feature, wrong implementation
• Can lead to orphaned features
38
Blogs
• Customers liked them… kinda
• Largest user base within a few days
– Forced investment to scale the software
– (still less than if we had written them)
39
Security
• The world has access to your source code
• Popular back-end systems pretty good
• Web applications less solid
– Cross-site scripting
– SQL injection
– Admin scripts
– Beware PHP “helpers”
40
Free Upgrades FTW!
Active Open Source projects receive
ongoing improvements
New features and security updates for free!
41
No Soup for You
…but you might not benefit from them
• As your source changes hard to integrate
updates (unless they are libraries)
– Keeping your changes compatible with OS
package requires more investment
• Some benefit from diffs / patches
42
Other Challenges
• Code maintainability
– Unlikely matches your coding standards
– May not have test coverage
• New hires learn by example
– Early integrations may not be best example
43
In conclusion…
Open Source Can Work For You!
• Invest to solve your truly unique problems
• Let others solve your common problems
• Yes, this can lead to future problems
– Many are good, they mean you’re successful
– Better than solving problems you won’t have
44
Q&A
Questions?
45
Thank You!
Brett G. Durrett
Twitter: @bdurrett
IMVU was recognized as one of
the “Best Places to Work” (and we’re hiring)
http://www.imvu.com/jobs/