The simplest application to write and operate is one that runs in one thread on a single processor. If that’s so easy, why on earth do we ever build anything else? Usually because we also want operational and developmental performance. A single server is a physical and organisational limitation on what you can achieve with an application.
Machine Performance (AKA Things)
There are three main operational performance issues introduced by running on a single machine.
- Scale. You might want more CPU, memory or storage than is available on one server no matter how big, or it might be more efficient (cost/server utilization) to use machines with different properties for different functions. For example: CPUs vs GPUs.
- Resilience. Any software or piece of physical hardware will crash (even mainframes die eventually). A single server is a single point of failure.
- Location. “Propinquity” means useful proximity. Unless the only user of your application will be sitting at a keyboard plugged into your server, eventually your single-machine application will need to talk to something else.
Read more at Container Solutions