Loved by management for its ability to save cash, lauded by developers for its ease of use and programmability, and greeted by sysadmins with a mixture of contempt, caution and celebration, the revolution surrounding cloud services has turned corporate IT on its head. Yet, for such a game-changing technology, the cloud is still widely misunderstood.
I do not claim to be a cloud expert, but after having migrated our infrastructure at Secret Sales to Amazon Web Services last September I learned a thing or two, and there are a few products masquerading as cloud technology that are quite blatantly not.
The cloud is not a single VPS or even a cluster of virtual machines, nor is it a big hard disk in the sky. It is also not a silver bullet that can solve every IT problem or halve your IT budget in a heartbeat. Not everything can be cloudified and not everything should be; I’m an extremely firm believer in “every tool has it’s purpose”, and this applies to the cloud too, even more so than other areas of IT because it is still evolving and maturing.
What the cloud does do amazingly, awesomely well is host applications. It provides both Infrastructure as a Service and Software as a Service combined; an ecosystem of tools and building blocks that together form the entire fabric (or as much of it as you dare) of your application infrastructure - everything from load balancers, databases, virtual machines and cache clusters to object storage, message queues and metrics collectors. Even VPN tunnels, network subnets and firewall rules can all be programatically spun up, scaled out and shut down with a few API calls or a few lines of JSON.
The cloud also abstracts away a whole swathe of problems traditionally associated with running your own IT infrastructure, most notably hardware choice and maintenance - you no longer need to sweat wondering how your RAID5 will hold up or if that database server needs more RAM.
However, to be a true cloud platform, scalability and elasticity are paramount. If you can’t easily scale and shrink your infrastructure, either manually or automagically, you’re not in the cloud. What makes solutions like Amazon Web Services extremely popular is that you scale horizontally, with next to no effort.
Of course scalability isn’t the only predicate for the cloud, but it’s the most often overlooked, and to my mind it’s one of the only demarcations that sets cloud platforms apart from offerings which seem to say ‘Sure, we’ll rent you a few virtual machines by the hour, but if you want more, you need to tell us so we can spin them up for you’.
It’s this skewed, marketing-fuelled tangent that puts the cloud on a rocky road, wrought with misconceptions and companies that want to tag the word onto a product just because it has something to do with the Internet or shares your files out of your home Internet connection.
When done right and for the right reasons, the cloud is an amazing, wonderful thing. Being able to go sleep at night and knowing that you won’t be woken by the sound of screaming web servers and creaking databases if the world has a sudden urge to go on a shopping spree for designer handbags at 3am is nothing short of magical. There are, however, significant hurdles to overcome in understanding and harnessing this new-found power.