How will your application do when you succeed?
When planning for capacity, everyone prepares for the average day, or perhaps a couple times that volume; but how about the day when your product or service goes viral and becomes insanely successful overnight? Most of us are not truly prepared for success, and can’t fathom the full potential upside of our actions. This phenomenon has been called the Digg, Slashdot or Reddit effect (among others), and has been the cause of many companies or sites missing out on most or all of their moment in the sun.Don’t miss yours.
How? Though each situation is unique, here are a few tips:
- Choose the right hosting company — Host with a hosting partner who will rapidly scale your service to meet demand. Do your homework, and make sure they won’t simply turn you off if you exceed bandwidth or CPU limits.
- Test your site — find out where and how it breaks under load. There are a plethora of options here, but you will need good technical staff on your side to take appropriate action, even if you hire excellent external resources to perform the test
- Build for scale — Most designs work well for a single user, but scale poorly. Thinking ahead can save many headaches. Build in options to seamlessly degrade by removing nice-to-have features when under load, only add features which are worth the performance hit, use CDNs and geographically diverse web farms, etc.
- Be an optimist — Overcome your presumed failure, and always be thinking of how you will handle success. Not only does this energize you and your team, it also tends to be a self-fulfilling prophecy
Many people think if they succeed, they will have lots of cash and time to fix performance problems then. This may be cause for another post later, but in short, this limits your ability to succeed at all, as you will miss the free publicity, and change the story from your product or service’s awesomeness to one about how you weren’t prepared – and who wants to hire a company which doesn’t think ahead?