What Is A Distributed System?

86

“Hello world!”

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