Process — an instance of a computer program that is being executed. It has its own set of resources (e.g. memory) that are not shared with other processes.
Thread — a process may run multiple threads to perform instructions in parallel. Threads within a process share resources (e.g. memory).
Server — a program running to serve the requests of other programs. The term is also used to refer to a physical computer dedicated to run one or more services.
Multi-Process — adding more throughput by running multiple instances of a process or service. These can be on a single server or can be distributed across multiple servers.
Multi-Threaded — within a process, being able to perform multiple tasks simultaneously across multiple CPUs.
Scalability — scalability is about supporting multiple simultaneous actions, not about making a single action faster.
Availability — the ability of a solution to be resistant to component failures. Increasing the availability of a solution will increase the cost.
Scale Up vs Scale OutScale Up — adding more resources (CPU, RAM, etc) to a single server.
Scale Out — adding more resources (CPU, RAM, etc) by adding more servers in a “cluster”.
Single Point of Failure – within a solution, a component that if it fails will cause the solution to fail as a whole.
Active/Active – when all instances of a multi-process service will process requests.
Active/Passive – when only some instances of a multi- process service will process requests and the other instances are only activated in the event of a component failure. Hardware Architecture Terminology