I'm asking this question to find out what are you best practices to prepare your system for scaling, I know that basically you don't have to over optimized before really having to, and that's the best thing would be to monitor almost any aspects of the server/system and see where are your bottle neck and then act, but still.
I am not an expert but the common sense led me to virtualize my dedicated server and separate the different services (for greater security too), in order to migrate them later to other physical servers in case I need to grow fast and with minimal downtime.
I'm interested to hear what's your best techniques, what are you doing to ensure that when your product/service get traction, you'll have enough time to react and scale.
Thanks