Dedicated server or Cloud Hosting [closed]
I just finished the BETA version of my Web SaaS application, it provides more than 15 service to WP users.
Programming language : PHP 5 DB : MySQL 5
I used Codeigniter framework.
The application run 4 cron jobs every 5 minutes.
I'm now confused about deploy it in a Dedicated server or Switch to Cloud Hosting, I always deployed my apps on LAMP Dedicated Server, I don't have any experience with the Cloud hosting infrastructure.
I found OVH Private Cloud : http://www.ovh.co.uk/private_cloud/ , but it's a little bit complicated.
If you were in my place, what solution you are going to choose? and why ?
Thanks in advance.
Solution 1:
This question seems to get asked a lot - usually with specific reference to Amazon's EC2 - but I think the general ideas still apply here.
Firstly, see this question and this question for an advantages/disadvantages comparison of cloud vs. vps/dedicated.
As to your specific scenario, you haven't given enough information to provide a definitive answer. All the points you have mentioned can be successfully implemented in the cloud (and really shouldn't be any more complicated than if you were using a dedicated server).
I will provide specific reference to Amazon's EC2 cloud - since that is what I am familiar with, but the concepts should generalize to other clouds as well.
The bottom line is going to come down to evaluate your resource requirements and then compare the cost of running dedicated vs. in the cloud. If you are just starting out, with few (couple thousand?) users and are not running computationally intensive scripts I would suggest that the cloud is likely less expensive.
To address a few points in your question:
'15 services' and '4 cron jobs every 5 min' really don't describe the complexity or resource requirements. Look at your load averages, memory utilization, and bandwidth usage - these will determine whether or not the cloud would be cost effective for you. Typically for an initial setup the cloud offers a low cost, low risk investment, whereas dedicated servers have a higher start-up cost. On the other hand, if you have an application that consumes significant quantities of bandwidth, a dedicated server will probably work out less expensive.
PHP 5 and MySQL are really not significant considerations - cloud platforms allow you to customize everything from the operating system up - which means you will have no issues running either of these. The only consideration comes from the fact that these make for a dynamic application - which requires more processing power. The cloud can handle that, but with cloud computing you pay for what you use - greater processing requirements translate into greater costs. Keep in mind though, that depends on both the number of requests being processed and the complexity of each request. The smallest (EC2) server can easily handle several tens of thousands of Wordpress page requests a day, if reasonably optimized.
Codeigniter is reasonably efficient to my knowledge, but again, it is dependent on what exactly your application does (what kind of resources it requires). A cloud environment will have no problem running a Codeignitor app. In most cases, I would suggest it is less computationally expensive than running WordPress.
End result: estimate your resource consumption and determine the minimum plans required to meet those needs on various platforms. Then estimate your likely growth over the next few months/year, and decide how you would go about scaling up (would you start small and then upgrade, etc). Consider the difficulty in doing so on a dedicated server vs. on a cloud (as well as the projected costs on each).
Typically, for an 'average' application just starting out I would recommend 'the cloud'. On the other hand, if your application(s) are particularly resource intensive (especially bandwidth, but also CPU, disk I/O, memory, storage) then a dedicate package often works out better. The real advantage of the cloud is the ability to start small and easily scale up - the idea of pay for what you use, not what you think you might need (which only works out good if you need a lot less than you 'might need'). Even if you don't end up going with Amazon's EC2 - I'd start by looking at it. It is well known (meaning lots of people use it = easily available help), fairly mature (as far as cloud computing goes), and fairly inexpensive - it forms a good baseline to which you can compare other services. Rackspace, Joyent, GoGrid, and Linode are other popular choices.