I am about to launch my startup company, and we will be going live in a few weeks time. We have really tight budgetary constraints, since we are bootstrapping - and would prefer not to raise external capital.
I cant use shared hosting because I need more control of the server machine (for technical reasons - e.g. using proprietary extensions to PHP, Apache and in the database layer as well) - but want to control costs and dont want to go fully private server route, until we have determined the market size etc. So the only real alternatives AFAIK is between virtual server and the cloud.
At the moment, cloud services seem a bit "vague" to me. My understanding is that they allow an entity to outsource its IT infrastructure, which in my mind (at least), is indistinguishable from what a hosting provider provides (at least from a functional point of view) - I would like to seek some clarification on exactly what the difference between the two is.
Back to my original question, my requirements are:
As an aside, I have decided to deploy on a Debian server (most of my additional libraries etc were compiled and built on a Debian machine).
Mindful of all of the above, I would like some advice (and reason) as to which route to take. I would also like some advice on which backup software to use, from people who have walked a similar path.
and welcome to this site! :-)
cloud ... is indistinguishable from what a hosting provider provides (at least from a functional point of view)Not quite. A cloud provider sells you virtual machines to install you code on, just like a conventional hosting provider does. Beyond that, a cloud provider IMHO delivers:
I would recommend you jump to cloud hosting. These days it is very cheap if you know where to look. The two providers I'm considering for my startup are vps.net and www.stormondemand.com
Why, well both offer the ability to add more processing and memory at very reasonable rates very quickly.
Debian is a good choice, but the one I thing I wish had done when I started to commission my server is to use Puppet http://www.debian-administration.org/articles/526. This allows you to configure your server via a script.
Hope this helps.