Can you help me with my capacity planning?
My question is from a startup company providing a web application for the first time. It consists of an Oracle database (11G), an Apache web server, and a small Java middle tier, connecting to a front-end at the client. The user requests to see data, the application on the server retrieves data from the database, crunches math (c and java programs), and returns results to the user.
The math performed by the server can potentially use large arrays, that could occupy 1 to 6 GB of RAM (best to worst case). Each user's requests (for math crunching) are processed serially by the server to allow for worst-case RAM usage by one user.
Currently I have one dedicated server and was planning to put everything on there with like 8 GB of RAM. Does the security risks of putting a web server with the database warrant avoiding this at all cost?
The service is currently in development so there's no historical data yet. What's a good way to divide up the web server / database / application into multiple servers? Any rules of thumb or conventional wisdom? Is it unrealistic to try to place all in 1 server? If I got a 2nd server, which would go where? Is a VPS a good and inexpensive place to put a web server, and just scale it up as biz grows?