I have used various types of hosting services over the years, from basic shared hosting plans to co-located servers in data centres and more recently have commissioned VPSs (virtual private servers). All of these services have their positive aspects but all have significant limitations.
The greatest problem I’ve encountered is the ‘all your eggs in one basket’ problem that is common to all of these hosting solutions. That is why I was intrigued by the prospect of cloud infrastructure where I could build my systems to be completely resilient and capable of recovery regardless of any underlying hardware or network problems.
Cloud Infrastructure, also known as IaaS (Infrastructure as a Service), provides you with components to build your own hosting infrastructure on the Internet to suit your specific requirements. Common components provided by cloud providers include databases, storage, load balancers and virtual servers on demand. The main difference between regular web hosting and cloud infrastructure is that cloud is fully ‘a la carte’ as you can pick and choose your components and set your own rules for scaling, redundancy etc.
Key Features of Cloud Infrastructure
- Scalable – you can scale your infrastructure up and down automatically depending on demand/workflow without any manual intervention. This ensures your site/application can grow to meet demands but can scale back down and reduce costs when demand is lower.
- Economical – you don’t need to pay large upfront costs for a large hosting plan or large VPS server as you pay only for what you use. In a traditional server environment you have to provision for your peak demand and this results in wasted resources at quieter times. With cloud infrastructure you do not have the responsibility of managing the hardware or the costs of software licensing as these are typically bundled into your hourly costs.
- Fault Tolerant – if you design your infrastructure properly you can build your application to tolerate significant failures and still continue with minimal impact to customers. This can be achieved by splitting your infrastructure over multiple regions and/or setting up load balancers on your servers and spinning up new servers to meet demand or replace failed servers. If you are really paranoid you can even use multiple cloud providers and duplicate your infrastructure. It depends on how paranoid you are and how deep your pockets are!
- More Control – with both Hosted Services and regular Web Hosting you are the mercy of the hosting provider in case of service disruption (as you are at the mercy of your IT department or support company when there is an internal IT problem). With cloud infrastructure you typically have the ability to automatically or manually start resources in unaffected areas of your cloud provider’s infrastructure and failover to these new resources. Cloud infrastructure empowers developers and administrators!
- Limitless Resources – a major benefit to Cloud infrastructure is that you effectively have limitless resources at your disposal. You can scale both horizontally (more servers) and vertically (larger servers) in seconds. The limitless resources can be a negative if they are used to compensate for badly designed applications that under perform or are resource-hungry. Better to fix the problem than throw resources at it – that’s one of the age old IT problems and it hasn’t gone away with the advent of the Cloud.
Things to be aware of before making the move to Cloud Infrastructure
- Learning Curve – there is a learning curve involved when moving to Cloud infrastructure. You have to learn all the components, the limitations and features of those components, how to build your application architecture properly to allow for scaling/balancing/fault tolerance. In some cases you even need to learn new command line tools to manage your cloud resources effectively. This is not a trivial task.
- Beware Bad Architecture – if you haven’t done your homework on your architecture you could accidentally authorise servers to launch based on demand but then not shutdown again when demand drops off. This will rack up charges on your account so watch your bills for signs of this.
- Redundancy Isn’t Automagically There - you can’t expect your application to survive a service disruption if you haven’t designed for this! If you are stuck in a one-box one-location mindset and don’t use the redundant capabilities supplied by your cloud provider then you are no better off than you would be in a single VPS environment.
As that great philosopher Uncle Ben (Peter Parker’s uncle in Spiderman) once said “With great power comes great responsiblity”. He was probably talking about the super powers stuff but I think the same is true of using Cloud Infrastructure. You have great power at your fingertips but you have to know how to use it to get the most from it.





