Choosing the best optional hardware for a server is something that happens often, and making the right decision can prevent issues later on with those servers, so how do you choose server hardware?
Ask
my approach is to ask first, what is the server meant for? what tasks should that server run?
the more you ask the better and more informed decision you’ll make.
Calculate
make a list of hardware flavors and add prices, choose the lowest price with the closest hardware requirements of the application.
Test
once you’ll have the information regarding what tasks the server should do you’re ready to test solutions.
start a test server with the minimal hardware requirements, install the application and work it in a lab environment, obviously you can’t test production systems like that but you can test everything except traffic and user behavior.
keep playing with the server’s hardware flavor until you’ll get the best performing and cost efficiency option.
Disposable Application Resources
build your server as disposable application resources, what does it means?
it means the application that is installed on your server is just the application, no database and no local configuration is saved. just the runtime code of the application.
for data and config use mounted volume or disk or NFS and attach it to the server thus making the server a disposable compute resource.
using this approach you can scale your server however you need or per runtime and load.