Cloud Hosting: the Pros and Cons
This article is part of a series created in partnership with SiteGround. Thank you for supporting the partners who make SitePoint possible.
We’ve recently discussed two types of hosting service:
- Dedicated Servers
You own/rent one or more servers at your host’s data center for your sole use.
- Shared Servers
You rent space and processing capacity on a server which may also be used by many other companies and websites.
In general, a dedicated server is normally more flexible and you can configure it as you wish. A shared server may offer fewer options but is easier to manage and normally costs less.
Cloud hosting can be a good compromise between the two and brings other benefits. Let’s discuss the terminology and concepts before we go any further.
What is the Cloud?
The “cloud” and “cloud computing” are marketing buzzwords for the web. That’s it. Rather than buying software and storing data on your PC’s hard disk, you use an online application. That typically runs and stores data on a web server while displaying the interface within a web browser. In other words, you’re accessing software on-demand and sharing computing resources with others.
A web application can be hosted on a shared or dedicated server but scaling may become difficult. Perhaps the application works well with fifty concurrent users, but how does it cope with 1,000? How quickly could you migrate to a better service or server? What if user demand returned to normal levels after a few hours?
What is Cloud Hosting?
Cloud hosting allows resources to be rapidly provisioned on demand. You can quickly add further processors, RAM or disk capacity and hosts such as SiteGround can automatically scale according to peaks in traffic.
Auto-scaling is a great option for short-term campaigns when you know you’ll have huge traffic while a particular event takes place. In these situations, additional resources will be automatically added when the traffic kicks in, so you won’t have to worry about it.
Technologies differ but most cloud hosts depend on virtual machines.
What is a Virtual Machine?
You have probably encountered emulators which recreate one computing device on another. For example, the Internet Archive allows you to play old arcade games, run Windows 3.1 or an Apple Macintosh from your browser.
canvas code, and an appropriate response is returned. The software thinks it’s running on a compatible device.
A Virtual Machine (VM) is a similar concept. Software such as VWware, VirtualBox and Hyper-V emulate a PC on a PC using software-driven recreations of standard hardware. You can therefore run any guest operating system “within” any other operating system.
Cloud hosts can therefore provide a virtual machine which is functionally identical to a dedicated server. However, they are simply data files emulating a real server so there are several practical implications:
- A virtual server can be created, installed and configured within seconds.
- The virtual server is just data. It can easily be cloned, backed-up, rolled-back, or moved elsewhere.
- Development and deployment is simplified. Developers, staging and production environments can use identical images. It’s easy to test and undo alternative configurations.
- A web application can run within it’s own virtual OS image. A second application can use another virtual machine; there is no risk of clashing or difficulties with differing technology stacks.
- Processing, RAM and storage are no longer tied to a real device. The VM can be deployed to a server farm which can automatically allocate resources as required.
- The risk of failure is greatly reduced because the OS is not running on real hardware.
Do All Cloud Hosts Work in the Same Way?
No. Most cloud hosts use some sort of Virtual Machine architecture but services can differ. For example:
- Infrastructure as a Service (IaaS)
Perhaps the closest to dedicated hosting, IaaS provides virtualization facilities but you choose your OS, install your software stack and keep it updated.
- Platform as a Service (PaaS)
Perhaps the closest to shared hosting, PaaS provides a specific platform for running particular types of application.
- Software as a Service (SaaS)
Typically on-demand software. For example, you could use a third-party service to store data rather than maintain your own MySQL installation.
- Serverless or Functions as a Service (FaaS)
An abstracted application environment which manages logic and state. You write functions or micro-services which use that architecture without having to worry about the underlying software.
Not all services fit neatly into one of these categories!
Cloud Hosting Pros and Cons
My previous articles examined ease of use, flexibility, capabilities, safety and security when comparing dedicated servers with shared servers. These are less relevant to cloud hosting because the service will determine those factors. For example, cloud hosting can be as difficult as an unmanaged dedicated server or easier as the simplest shared server solution. It’s up to you.
This leaves us with three other metrics…
A cloud host can automatically allocate resources as traffic increases although it will depend on your host and service plan. Some may apply specific limits although it is usually possible to upgrade the number of CPUs, RAM and disk space. Hosts such as SiteGround can apply new limits without a reboot.
Dedicated and shared servers fail. Hosts take precautions to minimize risk but an overheating CPU or disk corruption can bring the system down. Cloud services have less dependency on real hardware. Processing can be shared across multiple servers; failures still occur but your website or application remains active.
Cloud hosting is often compared to a utility such as gas, electricity or water: you pay for what you use. The reality is usually more complex and pricing incurs a mixture of fixed and variable-rate charges. Your monthly payment could differ considerably from month to month.
Who Should Choose Cloud Hosting?
Long term, I suspect cloud hosting will replace both shared and dedicated server plans. Everyone will use a cloud service whether they’re aware of it or not.
That said, the cloud hosting industry is in its infancy. The variety of services is growing exponentially and the market changes on a daily basis. Choosing the right plan for your business can be difficult when services are not directly comparable and costs are unknown until you start hosting.
Some hosts pitch cloud services mid-way between shared and dedicated hosting plans. Perhaps that’s the best option at the current time. Consider a cloud service as you move beyond the limits of shared hosting.