1 core supports up to 200 active users, but the application can be a bit slower due to having all workers and background jobs running on the same core. 2 cores is the recommended number of cores and it supports up to 400 users
The number of core CPU can roughly be estimated by the number of users divide by 200. For example, 500 active users = 500/200 = 2.5 so need to round up to 3 CPU cores. For more accuracy, the complexity of your application and transaction should also be considered.
*Assume that 1 user generates 2 requests or transactions to the server per 1 minute.
8GB RAM is the minimum memory size for the development environment.
16GB RAM is the minimum recommended memory size for production environment and supports up to 500 active users
32GB RAM is the minimum recommended memory size for production environment and supports up to 1,500 active users
For more accuracy, you should also consider the complexity of your application and transactions.
Web Server requires at least 2 GB of disk space. However, it depends on what Web Server you use. Please check with their website.
Application Server Application Server has 2 parts to consider about disk space
Middleware (Application Server) : It also depends on what Application Server you use. For common case, you should have at least 5 GB available disk space for this part. For accurate size please check with official website of your Application Server.
ONEWEB binary : ONEWEB binary is Application that runs on Application Server consists of App Designer, App Runtime, Process Designer, Process Runtime, Page Designer, Page Runtime, Microflow Designer, Microflow Runtime, AppSpace, etc. It requires at least 2 GB of disk space.
Database Server ONEWEB requires a Relational Database to store configuration and transaction data. Disk space for Database software usually requires at least 2 GB. But you have to check with their web site to be sure. Another part of the Database is ONEWEB data and your transaction data. ONEWEB data requires at least 200 MB and transaction data depends on the usage of the application.
When you consider the architecture of your Application you should ask the following questions.
Which environment are you considering? Production, Disaster Recovery or Testing Environment.
Is the Application a critical system? If your application is a critical system such that it needs to be online 24/7, like a payment processing or important transaction, you may need to consider Active-Active or Cluster Environment to make sure your operation can run continuously.
Can this system have some downtime for maintenance? What is the SLA? If your application can have downtime and has enough SLA for maintenance or some failure you can use the Standalone Architecture.
Do you need Disaster Recovery? What is your RPO (Recovery Point Objective) and RTO (Recovery Time Objective)? If you need DR (Disaster Recovery) for backup plan in case you cannot operate Production Environment. You need to consider RPO (Recovery Point Objective) and RTO (Recovery Time Objective) to choose the right solution for your DR.
How many Active User? The number of Active Users is one of the important things to consider for deciding the capacity of your architecture. You can choose Standalone Architecture with a high volume of CPU and Memory or you can choose to separate your server as Active-Active Architecture with a load balancer to spray your workload to multiple servers.
How many transactions (Per year or Per Month)? The number of transactions is as important as the number of active users. The number of transactions need to be considered as well to decide the capacity of your architecture because it impacts directly on your server capacity.
How many transactions at peak time or peak event? When you consider your architecture and server capacity your also need to consider number of transactions at peak time or peak event because your server needs to support that situation as well.
How many and how long your data will be kept in the system? (in term of record and size) Size of your data in the system is one of key factors that impact the performance of your system. You should consider this factor when you design the architecture.
Network bandwidth between Web Server, Application Server, and Database Server We recommend using at least 1 Gbps for Production and DR Environment. For Testing Environment, you can use 100 Mbps bandwidth. But we also recommend using 1 Gbps for all environments, if possible.
Network bandwidth between Web Server and Client machine For Intranet (LAN network) - If possible, we recommend using 1 Gbps (gigabit LAN), but you can also use at least 100 Mbps.
For Internet or WAN network - We recommend at least 10 Mbps internet bandwidth for normal application (not more than 50 fields of data per 1 form/page). If your application has more than 50 fields of data or has more than 3 pictures per 1 form/page, you should increase your internet bandwidth to relate with your data. To calculate what bandwidth you should have, we should base with 10 Mbps + your additional data size (data field that more than 50 fields and your additional image or attached file).