Surviving your success

Every website or application that it taken seriously by their owners should  be prepared for two types of “success”:

  1. Flash success: you have been in the news, or some other reason gives you suddenly huge traffic. Can you handle it?
  2. Fast growth success: how to ensure you can keep up with the growth curve?

Flash success

You are the news of the day. TODAY everybody comes to your website as some-how you have some remarkable story for them. Every blog writes about you. You story is retweeted and retweeted and everybody seems to ‘like’ you on Facebook. Wauw! What a great business day to get so much PR.

Obviously, this is not the right moment for the servers to give up, as the positive news or story should be strengthened by your strong web presence. Although poor performance during giant flash success are sometimes understood by the audience, it is better be prepared to engage with them with a proper website instead of a 503-error page.

Main ways to prepare yourself for flash success:

  1. Ensure all static assets, like images and videos, are on a Content Distribution Network
  2. Invest in preparing extra servers. Reserve some servers at a hosting providers or prepare them in the cloud. This often means your application/ site need to be prepared for this as well, which, in some cases is not as straightforward as it seems. Also databases need specific attention, as you can’t easily scale up most database servers. Some providers have some special offerings in this.
  3. Create a downgraded version of your website that is lighter to be served. Using less requests to your server, maybe less functionality and less queries. Ideally these pages can be fully cached on a network as well (see 1).

 

Fast growth success

Anticipating your own success is challenging. Deciding how much to invest in speed optimization is a difficult trade-off. Should developers focus to optimize the application, or work instead on the new feature? Finding the right moment to decide when to invest in extra services (hardware, cdn, cloud) is not straightforward at all. Many start-up nowadays start with a few visitors a day, hoping to make their site a success, leading to the millions of visitors that are potentially out there. Ensure you keep on plotting your visitors growth rate to be able to best prepare your site for growth.

Although an application and database can always be further optimized, you need to find the right balance in where to invest and when. Sometimes it is better to scale servers first before you spend money & time in optimizing code. Here 3 main levels of server scaling that can be distinguished. Ensure you prepare yourself from one level to another well in advance. Obviously a CDN should always be considered asap, as they start cheap and simple.

1. Virtual web hosting or outsourced server hosting.

Pro: you don’t need to do much, except uploading your files to the server. If a hard-disk breaks at 2am, you don’t have to worry – the hosting provider should take care of it.

Cons: you are not in control (likely you can’t configure much to optimize)

2. Own it yourself: split up proxy, application and database into dedicated servers (can be cloud!), optimized for your application/sites

Pro: you are in control, and depending on your needs you can scale up your application servers quickly if needed

Con: your application need to be build for it, also you need to have an expert in your team who can take care for the right security and support. Next to that, likely you need a 24/7 service stand-bye to fix your broken hard-disk at 2pm.

3. Same as 2, but geographically replicated across different countries

Pro: take away the geographic latency.

Cons: difficult to maintain. Keeping databases in sync between locations can be a pain.

 



2 comments

Leave a comment

optional