I'm a new comer to the region of web design and presently meeting with companies, probably the most favorite questions among what individuals request is:

How can you scale your webserver whether it begins striking millions of queries?

How would you react for those who have only one database instance running at this time? how can you manage that?

These questions are actually intriguing and I must find out about them.
Please pour inside your suggestions / practices (that you simply follow) for such situations


How you can scale:

  • Identify your bottlenecks.
  • Identify the right solution for that problem.
  • Check to help you you are able to implement the right solution.
  • Identify alternate solution and appearance

Typical Scaling Options:

  • Vertical Scaling (bigger, faster server hardware)
  • Load balancing
  • Split tiers/components out onto more/other hardware
  • Offload sort out caching/cdn

Database Scaling Options:

  • Vertical Scaling (bigger, faster server hardware)
  • Replication (passive or active)
  • Clustering (if DBMS supports it)
  • Sharding

At most fundamental level, scaling web servers includes writing your application in a way that it may operate on > 1 machine, and tossing more machines in the problem. Regardless of how much you tune them, the eventual scaling calls for a farm of web servers.

The database problem is much more sticky to cope with. What's your read / write percentage? What type of application is? OLTP? OLAP? Social Networking? What's the database? How can we increase the servers to handle load? Will we partition our data across multiple dbs? Or replicate all changes to lots of slaves?

The questions you have call more questions, i.e. within an interview, if a person just "has got the answer" to some generic question like you've published, they can just learn just one way of doing things, which way might be the greatest one.

You will find a couple of approaches I'd decide to try the initial question:

  1. Exist hardware upgrades that could get some misconception enough to handle million queries very quickly? If that's the case, this really is likely a preliminary indicate investigate.

  2. Exist software changes that may be designed to optimize the performance from the server? I understand IIS has a lot of different configurations that may be accustomed to improve performance to some degree.

  3. Consider starting an internet farm situation instead of make use of a single server. I really did possess a situation where I labored once where we did have countless hits one minute also it was thrashing our web servers rather badly and taking lower numerous sites. Our solution ended up being to alter the load balancer to ensure that a couple of from the servers offered in the site that will thrash the servers to ensure that other servers can keep another sites as it was within the fall as well as in retail here's your large quarter. Although some would start here, I'd likely come here last as this is often opening a little can of earthworms in comparison towards the other two options.

For the database instance, it might be an identical group of options in my opinion though I might perform the multi-server option first as redundancy might be an essential side benefit here that I am unsure it's as simple having a web server. I might be way off, but that's how I'd initially tackle this.

Make use of a caching proxy

Should you serve identical pages to any or all site visitors (say, a news site) you are able to reduce load by a purchase of magnitude by caching produced quite happy with a caching proxy for example Varnish or Apache Traffic Server.

The proxy will sit involving the server as well as your site visitors. When you get 10,000 hits for your top of the page it'll just be produced once, the proxy will be sending exactly the same reaction to another 9999 site visitors without asking your application server again.

most likely before developer beginning to build up the machine, they'll think about the specs from the server you may can decrease utilization of Search engine optimization and block it from internet search engine to craw it (the task that taking lots of resource) attempt to index everything well and steer clear of to creating search easily