At lunch last week, I was chatting with a “techie” about whether one should spend money upfront on building an infrastructure that scales or whether it should simply be designed to be capable of scaling.
It’s a debate of keen interest to an investor. The latter should be cheaper and hence offers the appeal of keeping the bet size down until the venture is demonstrating success, at which point, no one will refuse money to scale up. You also get the impression that hardware should be capable of being added easily (famous last words).
However, who can predict when the infrastructure will be required i.e. foretelling the timing of success with sufficient certainty that the infrastructure upgrade will begin in time. The big fear, of course, is missing the “wave” of popularity and actually generating negative sentiment when “customers” find the service isn’t working because it’s overstretched.
Artificial peaks are the worst though – an example of which is the “Techcrunch bounce”, that Mike Arrington acknowledges. In this situation, there is a sudden surge of interest in the site following a blog post or launch piece, which then fades away before a “normal” level of traffic is established. The challenge is whether to build an infrastructure capable of dealing with this only for it to be redundant for some time thereafter.
Many argue you should invest upfront. After all, disk spaces and servers are relatively cheap these days. Yet does that include full resilience from the outset such that the likelihood data loss or service outages is minimised/eliminated. After all, depending on the website offering, losing your customer’s data or being temporarily unavailable may wipe out your business on reputation grounds alone eg calendar service, online document storage.
I’m not sure there is a right answer but I know that good design is essential. Peter Van Dijck’s has a useful post linking to 10 presentations from some of the large websites on their scaling efforts which offer some fascinating insights. Essential reading for all sites builders.