There are many decisions which need to be considered when launching a new application onto the Internet. One of the most critical centers around what type of infrastructure technology to deploy. In this article we will explore and compare the features of Dedicated Servers vs. Cloud Servers and try to give You some insight into which product is right for you.
In 99% of cases a dedicated server will handle workloads faster than a cloud server with the same specifications. This is primarily due to the overhead introduced by the virtualization technology. However, with each new generation of server hardware and virtualization software the real world difference becomes more and more narrow.
Another reason that a dedicated server might outperform a cloud server is due to the shared CPU (in the physical server) and disk resources (either on the SAN, or local disks in the server itself). Most cloud offerings managed by service providers (including the XLHost cloud) are carefully monitored and maintained to ensure consistent performance. The other shared resource involved with cloud servers are the network connections. If you have throughput requirements higher than 2Gbps it would be recommended to use dedicated servers.
One thing to consider is that most of the time the physical servers, storage, and network connections that a cloud service provider uses for their public cloud offering have much higher specifications than an average dedicated server. This is due to the fact that the underlying server has to be able to handle anything that the cloud servers running on it can throw at it.
Winner: Dedicated servers
If you need 100% of the CPU, network and disk IO of a server 24x7x365 then dedicated servers are probably the right choice for you.
With dedicated servers, the two primary methods of scaling are hardware upgrades and migration. CPU, RAM and (sometimes) hard disk upgrades require at least a reboot. If you have a load balanced cluster and you can easily shut down a server without impacting your application then this might not matter to You. If your server already has the maximum amount of RAM, CPU, and physical hard drives it can utilize; then You would likely need to migrate to a new server. If You are running your applications inside of virtual machines this is usually a simple task, if not it can take a fair amount of work depending on how your operating system handles being moved from one platform to another.
With cloud servers, You have the ability to upgrade and downgrade your servers on the fly. In some cases depending on the Operating System running on the cloud server it may still require a reboot. Migrating your cloud server to a different physical server can usually be accomplished with no downtime via hot migration.
Winner: Cloud servers
If you have a cluster of dedicated servers or can withstand downtime associated with scaling dedicated servers are great. However the versatility of cloud servers puts them way ahead in this category.
Management and Provisioning
If done properly, the management and provisioning of Cloud Servers will usually have a much better user experience than that of dedicated servers. Cloud server operations are completely self-service and everything takes place in real time. The video below shows You how to create a cloud server in under 90 seconds using the XLHost Cloud. This can be done even faster using the API.
Winner: Cloud Servers
Dedicated servers have come a long way in terms of provisioning and management but the benefits of abstracting the hardware from the process makes this an easy choice.
If we assume that the dedicated server and the cloud server we are comparing would be running on the exact same hardware than the reliability should be equal. However in most cases building a high-availability solution is much easier and less expensive on a cloud server. Depending on the storage used cloud servers can be extremely fault tolerant.
Applications built on dedicated servers or cloud servers can have the same level of reliability if they are deployed appropriately.
Cloud server isolation, while not perfect has come a long way since the very first hypervisor products were released. Security researchers are finding fewer and much more difficult ways to circumvent the isolation techniques used in modern hypervisors. In general, for all applications exposed to the Internet (cloud servers, dedicated servers, VPS, shared hosting), the most popular attack vector is still going to be exploiting software vulnerabilities or brute force attacks because this is the lowest hanging fruit available.
There are much easier ways to compromise an application hosted on the Internet aside from attacking hypervisor isolation. The only time XLHost would recommend dedicated servers over cloud servers for security purposes is if Your company operates in a regulated industry which requires complete isolation.
When we examine value we are weighing the actual benefits of dedicated servers vs. cloud servers against how much each product costs. Dedicated servers are generally billed monthly and You pay a consistent amount each month no matter how much of the server you actually use. Many businesses find that it is much easier for them to budget with flat-rate monthly billed services.
With cloud servers on the other hand you are (usually) billed by the hour and pay only for the resources you consume. Cloud server resources are usually priced higher than the equivalent dedicated server resources but because you can dynamically scale a cloud server deployment vertically and horizontally there is a good chance that the TCO of a cloud solution will be lower.
Even though "The Cloud" has come a long way many applications are still not built for hyperscale environments.
If You have the ability to constantly manage the resources you are consuming to control costs then deploying your applications on a cloud server makes a lot of sense. If not, it could end up costing You more to deploy your applications on a cloud server for the same computing resources.
There is no simple answer for all workloads or all organizations. Although they will work well on the XLHost Cloud, applications with higher disk IO or network throughput requirements will most likely have a better TCO hosted on dedicated servers. Keep in mind that you can always run a hybrid deployment and host your front-end applications on cloud servers and the back-end databases on dedicated servers.
Like everything related to application deployment the key is to test and collect data to see what gives your users the best experience at the lowest possible cost.
As always please contact us if you have any questions about anything in this article, if you agree or disagree please let us know in the comments.