Search code examples
database-designserverarchitecture

Web application server architecture: is it better to have one big server or many small servers?


I am creating the server architecture for my web application. I have a load balancer distributing requests to multiple servers.

Is it better to use one big server or multiple smaller servers?

Example:

1 server with 16GB of ram and 6 CPUs

or

4 Servers with 4 GB ram and 2 CPUs each.

My application sends many HTTP requests per second to the servers, but nothing that puts much stress on even the small servers.


Solution

  • Unless you have very specific reason to Scale up (Single Big Server) , you must be scaling out (having redundant servers) with Auto-scale in place. This is most acceptable pattern now for couple of reasons.

    Avoid Single point of failure

    The main reason to scale out (having multiple servers) is to avoid single point of failure. In case of one big server , if that goes down your application goes with it.

    Scale out benefits

    • Instant and continuous availability
    • No limit to hardware capacity
    • Cost can be tied to use
    • You’re not stuck always paying for peak demand
    • Built-in redundancy
    • Easy to size and resize properly to your needs