Multi-server environments
There are two reasons why you would configure Platform as a multi-server environment. One is to improve performance and the other is to provide high availability.
Performance
The performance of Platform is dependent on variables such as the following:
-
Devoting as much CPU and memory as possible for production servers and database servers will help increase performance.
- Low complexity applications can support up to 50 times more concurrent users than those that use a lot of formulas, templates, custom filtering, reports, and anything that is processor or database-intensive. You might be able to architect a system by creating different related applications rather than one all-inclusive application. This might allow you to limit the functionality that requires more processing to a smaller number of users.
- The fewer object definitions and applications in a particular customer tenant, the faster Platform can load it into memory when requested, and the smaller amount of memory it will require.
Platform includes a set of auxiliary runtime components which can be run on a single host for small loads or be deployed across multiple hosts for scaling purposes. As Platform usage grows, you can add instances of these runtime components to provide adequate performance for all users. When you run Platform production servers on multiple hosts, the router component calculates the least loaded server and directs newly logged in users to that server.
High Availability
High availability means that the system can continue to respond to requests despite individual component failures. Besides individual component failure, a component can stop responding to requests because its host failed, because of network outages--or even severe latency--, or in the case of Platform, if the web server or the database failed.
See Configuring high availability for more information about high availability in Platform.