Making a server bigger refers to choosing more powerful hardware. Take your city server and move it to a server with more CPUs, more RAM, bigger BinSSDs etc. This is called vertical scaling.
Horizontal scaling is where you just add more servers. Horizontal scaling is more desirable as it works out cheaper. Commodity hardware is cheaper than high end hardware. Google data centers are full of commodity hardware not super computers.
The FreeSO server is split into 4 pieces.
- HTTP API (Authentication, negotiates connection to city server, SAS)
- City Server (Everything you can do when in city view)
- Lot Server (Runs SimAntics VM)
- MySQL Database (Stores all the persistent data, lot state, what skills you have, what city you live in etc)
Each one of these components can run on the same server or be spread across multiple servers. Both the HTTP API & the Lot servers can scale horizontally. You could start out with 1 modest server. This might work well for 10 or 20 concurrent lots (we still don't really know). If you have more demand than this you can add more lot servers to increase the capacity.
The city server only scales vertically. It is very clear that the lot server will be intensive to run. That is why we have made it highly scalable. However, the city server is not like this. Therefore it would be a "premature optimization" to make that horizontally scalable now. The complexity of doing this is high and the value is low.
A node in my example is a server. A cluster in my example is a group of servers. If you had a busy city that had 1 city server, 1 api, and 5 lot servers, all that hardware is considered the "cluster". Each item I just listed is a node.