I'm going to rent a 1/4 rack at a colocation center and put some servers there.
The purpose of this project is to host applications we have developed so our customers can use them. In the past we have mostly developed one-off intranet applications that we have installed on the customers own infrastructure and then maintained.
I feel that that is a dead end from a business point of view and it's long overdue for us to become a SaaS provider, albeit at a very small scale. Our current customers are enterprise customers but the applications themselves don't have that many users, from maybe 20 users up to about 300. In any case the applications have happily been running on single servers, without any load balancing, database clusters or other similar techniques.
First step for this project is to find an infrastructure that will get the job done without overspending but that we could expand upon. I don't feel that we need high availability from a business point of view. If we have a hardware failure though we need to be able to get up and running again in a few hours.
I'm thinking two VM hosts without HA and without running on shared storage could do that. If one host goes down we could manually fire up the backup on the other host.
This is what I had in mind:

VM host nodes will have 1 CPU, 10 cores, 64GB RAM, 500GB SSD storage. In my mind that would allow us to run 8 VMs per node with 4 vCPU, 8GB RAM and 50GB storage per VM. Every VM will be linux/bsd.
Nodes are also easily expandable to 2 CPU, 20 cores, 128GB RAM and whatever storage that is needed (6x3.5" bays).
I like the management of Xenserver so that is what I'd like to use, well actually XCP-ng.
What do you guys think?