Small installations of the Mambo Platform can run well on any modern server. However, for optimum performance we recommend the following:
- Use 64 bit systems with the 64 bit JRE.
- Use a system with a clock speed above 2.5 GHz.
- Use a system with CPU which has 4 or more cores.
- Use a system with at least 5GB of RAM. Remember to reserve enough RAM for your operating system beyond the memory required for the JVM.
The Mambo Platform can be configured to run on a single server, although we don't recommend that. If you are looking to run small installation of Mambo, then we recommend a 2 server setup:
- MongoDB Server: this server will run your MongoDB database. This should be a server with a good bit of RAM as MongoDB performs best in memory. The Mambo Platform storage needs will grow with time, we recommend reserving up to 100GB of space initially and adjusting as the needs grow. If you are setting up a single node then we highly recommend configuring the MongoDB oplog.
- Mambo Server: this server will run the Mambo Platform. This should conform to the minimal requirements specified above. Obviously the more powerful the box the more it'll be able to handle.
Obviously with this setup if either of the servers goes offline, your gamification system will be offline until the servers are restored to their normal operating conditions.
In order to get reliability and availability in production, the recommended setup includes a minimum of 5 servers and a Load Balancer. The servers would be used as follows:
- 3 MongoDB Servers: these servers will run your MongoDB database. MongoDB should be setup to run with Replica Set configuration enabled. This provides the ability to read 3x as much data. You also get availability and backups out of the box.
- 2 Mambo Servers: these servers will run the Mambo Platform in a clustered fashion. Clustering can be enabled and configured for each server which will improve the caching performance. You can increase the load capabilities of the Mambo Servers by scaling these servers horizontally.
- Load Balancer: the load balancer will balance the traffic between the 2 (or more) Mambo Servers. This will ensure that if any of the servers go offline, the service will still be in operation and your gamification program will continue to be live.