I recently attended an the OC Roundtable in Foster City. It was a really nice evening and very thought provoking. It's a group of folks that get together periodically that all have ties and responsibilies in the area of social networking. I've been going to these for a few years now. One thing that I have learned over time is that people do not necessarily understand how what I do relates to their efforts. I design, build, and manage the the infrastructure and the web operations that social networking websites are installed on in data centers depend on to work at all. You know, those aracane things like firewalls, servers, storage, networks, and content delivery networks. It's a part of the ecosystem of any social networking site that shouldn't be ignored.
Successful social networking sites can be the most demanding sites and require the most skill and planning becuase, when they succeed, they tend to get very big, very fast. They can have more explosive growth rates than you can imagine or than any of your typical models predict. One needs to pay attention to more than just the marketing and design at very early stages to minimize risks.
Premature optimization is said to be the root of all evil but if you are planning a social networking site is it worth your time and money to spend a little time up front thinking about scalability of the infrastructure and the codebase you will be using. To be clear, what I am saying is that it does matter how you write you code and how you build your servers if you do start to succeed. A little time invested up front can avoid very costly rewrite and redesign work further down the line.
An article I recently read about myspace describing the stages it went through while growin said:
- 500,000 Users: A Simple Architecture Stumbles
- 1 Million Users:Vertical Partitioning Solves Scalability Woes
- 3 Million Users: Scale-Out Wins Over Scale-Up
- 9 Million Users: Site Migrates to ASP.NET, Adds Virtual Storage
- 26 Million Users: MySpace Embraces 64-Bit Technology
- What's Behind Those "Unexpected Error" Screens?
How many users do you have? How many will you have? How many can your system support? What is your system anyway? Can you scale out? Can you scale up? Do you have a plan? When I ask these questions the first time, the answers are almost a universal, "I don't know." Once I get to that point, the fun can begin because we ask the right questions then and make solid business decisions about how we'll move forward.
A colleague of mine recently told me that 99% of all sites will never have to deal with these things. He may be right if you think about ALL sites. But, remember, I'm talking rich experience social media sites. After thinking about it and in the context of this article and the myspace information above I'd say it's more like 80% will never get to stage 3 as experienced by myspace. But, without proper planning, most will hit stage 1 a lot sooner than they expect and they'll do it at a time when their business is sensitive to unexpected expense and change. The stage 1 through 3 problems are completely avoidable with what we know today about building scalable web sites. Stages 4-6 depend on more variables but are managable. 500,000 users just isn't that many these days if you hit on any nerve at all.
In summary, you should think about these things and you should plan for some what if scenarios and make some guidelines that keep you out of hot water and dampen your success when you get there.
OC Roundtable Facebook -