Cloud computing is quietly taking over the world and changing the way we use our computers forever. Whether you're storing your photo collection on Flickr or logging on to Gmail, everyone's now using the cloud, even if they don't realise it. But how does it work and how can we as web designers and developers make it work for us?
Cloud computing runs on virtual servers. Rather than being a single physical box, a virtual server runs as part of a physical box. This type of virtualisation is nothing new and has long been a cost-effective entry-level solution. Virtual machines on the cloud run on clusters of servers. Again, this is nothing new: most medium-to-large server set-ups involve clustering.
Hardware as a service
The big difference with cloud hosting is that it packages all of this up so that it's 'Hardware as a Service' – the clustering, virtualisation and resilience are all a given. The virtual server on the cloud runs across many thousands of servers, in different data centres in different locations: an entire 'cloud' of servers.
The move to cloud hosting requires a shift in mindset similar to that when stepping away from apps stored on your own machine to those managed on the web. In the same way that Google Docs means you no longer have to install Microsoft Word, and Spotify means you can listen to music without downloading it from iTunes, with cloud hosting there's no longer a need to lease a server: you can use as much or as little as you need.
Hosting on the cloud
The big player bringing cloud hosting to the masses is Amazon Web Services (AWS), and its timing couldn't be better. Economically, we're living in uncertain times. When it comes to upgrading a 12-month hosting contract or trying to justify another capital expenditure in terms of new hardware, painful decisions need to be made. But with cloud computing, there's less need to worry.
Because you pay for what you use, rather than having to buy upfront what you think you only might use, cloud hosting provides the ultimate pay-as-you go hosting solution. Rather than compromise on performance or scalability, you can just host on the cloud…
As Amazon's CTO, Werner Vogels, put it: "Anything is crappy, whether it's your hardware, your network, your operating system. Don't let anyone tell you that this stuff is unbreakable; if you have enough of these things sitting around, they all break all the time." This is the philosophy with which the Amazon infrastructure has been set up.
As such, AWS cloud hosting is set up over 19 different data centres globally, each with different power connectivity, internet connectivity and geographical location. What happens if one of these data centres goes down? Well, they do go down all of the time: Amazon pulls the plug on one of its data centres monthly, as a real-life rehearsal of what would happen in a fire.
Hosting security evolves
In the old days, many a CTO used to think that the safest place to keep a server was in the office: that way, security could be ensured by fixing the latest in window locks and alarms and ensuring the night security guard had enough coffee. Of course, this approach was about as resilient as keeping your hard-earned cash under the floorboards.
The next approach to hosting security was to put your server in a data centre, with managed security and support. This approach has proved sufficient for many, but it's as limiting as putting all your money in a bank. And as we've all become aware recently, having all of your savings in one bank is something to be discouraged – if it goes down, so does your business.
Now imagine putting each one of your pounds into a different bank account. If you did, then should one of the banks fail, you'd carry on as normal. The same can be said for cloud hosting.
Developing on the cloud
At 3ev, we approach cloud hosting with enthusiasm, because essentially it enables our techies to get their hands on as many servers at any one time as they like.
Previously, we had a couple of collocated live servers for all of our hosting requirements, and setting up an additional box to test something out on was painful, both in terms of expense and time. Additionally there was a certain level of commitment involved: we'd have had to have that server for a minimum of a month, when often we'd just want to set something up for an afternoon.
Nowadays, on the cloud, the virtual machines look just like normal servers. You can ssh in, move stuff around and even install software. So what's actually different?
First, it's brilliantly easy to take snapshots. You can take a snapshot of your data at any time you like and, because you can buy as much storage space as your requirements dictate, you can just keep going. Working with this level of agility means that if one of your sites needs some immediate and risky maintenance, this is easier than ever before.
You can instantly clone it onto a new server – and work on the clone – in the "live" environment. With the cloud you always have spare servers sitting around, should you need them.