An absolute beginner's guide to cloud computing - Part 3
As seems to have become traditional we’ll start this article with a brief recap of what we have covered so far.
We started off by simply looking at what the cloud was and decided that the simplest way of describing it was that “on the cloud” just meant “on someone else’s computer”. Obviously, those other computers are hugely powerful, and offer all sorts of amazing things. But in the simplest possible sense cloud simply means “remotely stored and accessed”.
Then we spent some time looking at how that remote access was carried out. We looked at what an API was and how it worked. We also briefly touched upon some of the services that were available to people using the cloud.
In this article we’re going to look into cloud in a little more depth. We’re going to look at the difference between Infrastructure, Platform, and Software.
You’ve probably noticed that the business model for pretty much everything to do with computers has changed over the last few years. Instead of buying something with a one-off transaction and then owning it forever you now pay a monthly subscription fee to use it. Whether this is accounting software or listening to music the model is everywhere.
At this point in the article I am obliged by tradition to talk briefly about Blockbuster and Netflix.
Blockbuster’s business model was based around people paying for an individual video hire, returning the video, and then hiring another. In 2008 they had a revenue of $5bn. Netflix, a new player in the market used a different model. That of unlimited views for a set monthly recurring price. In 2008 their revenue was just over $1bn.
Two years later Blockbuster was bankrupt and Netflix had more than doubled their revenue.
The era of selling things that weren’t services, as if they were services was upon us.
Applying that model to Cloud Computing has led to three different categories of “service”. We’ll look at each in turn. Then, once we’ve looked at them we’ll try to explain them in terms that make more sense.
Infrastructure as a Service (IaaS)
Traditionally for large or even small businesses you have had to have access to powerful physical computers (servers) either in datacenters, or in your own premises. You used the resources of these computers, and if you needed more, then you bought more computers and put them in the datacenter, or the air-conditioned server room in the office.
You’d use these servers for things like web hosting, document repositories, database storage and so on. If there was a hardware failure or the machines went offline you lost access to these services until the server was back up and running.
With the IaaS model you don’t need to spend vast amounts of money on buying complex and fragile machines. And you don’t need to employ people specifically to look after them. You pay another company to provide those infrastructure services for you. They already have masses of machines in datacenters, masses of connectivity, and dedicated staff to look after them. You pay a regular recurring fee, and they set you up virtualized infrastructure on their systems. If the machines you are using develop a problem, there is enough redundancy built into the system that it simply switches to a different machine and you don’t even notice.
There are a variety of different providers for IaaS. For example at Wirehive we offer our own lightning fast public cloud, we also offer Amazon Web Services, Google Cloud Platform, and also Microsoft Azure. They all have their place.
Platform as a Service (PaaS)
You probably noticed that when we looked at IaaS there was no talk of Operating Systems or things that the infrastructure can do. That is because those things are not really considered infrastructure. They are considered “platform” and, yes you guessed it, you can access them by a regular monthly fee as well.
Your needs when it comes to Platform as a Service depend entirely on what it is you are looking to do.
It could be server software, it could be a database management system, it could be a development environment for your tech experts to work in.
PaaS essentially takes IaaS and makes it do something. It is built on top of Infrastructure and is what allows you to work. Common examples you may have come across include Shopify, an ecommerce platform, VMWare, the platform we use on our own public cloud, and Salesforce, the popular customer relationship management platform.
Software as a Service (SaaS)
Traditionally you’d have bought a one-off license to use a piece of software that was linked to a specific PC, and then felt very sad when it was superseded and became out dated leaving you forced to buy another license. Software as a service allows you to access a cloud based version of that software from anywhere in the world you can log in. It is kept up to date by the provider and you simply use it when you need to.
It allows you to switch if you need to without any large financial commitments, it allows you to add or remove users as you need to.
It also allows you to access specialized expert software at a tiny fraction of the price it would cost you to buy a dedicated one time license.
As you might expect SaaS sits on top of PaaS.
So what does that actually mean?
I’m going to diverge from the norm here and not use the standard pizza based analogy.
I like to eat Chinese food.
I like it far more than I should, and when given the opportunity I eat way too much of it.
That shall be my analogy. I’ll start with the traditional model
In effect this is the equivalent of me having my own kitchen, a fridge full of ingredients, pots, pans, and an oven on which I can cook. I also have a table and chairs to sit and eat at, bowls, plates, and cutlery, and drinks to go with the food.
If I run out of ingredients it is my responsibility to get more, if my oven breaks I need to get it fixed, if my chairs aren’t comfy that is my fault, everything at every step of the way is down to me.
It costs a fortune to set up, and maintain, and the chances of me being able to do all of that without getting specialist help is almost non-existent.
Right, now that is out of the way let’s look at the different levels of cloud provision using the same analogy.
Infrastructure as a service is the same as buying ready-made Chinese food from the local supermarket and re-heating it at home.
Someone else sourced all the ingredients, prepared them appropriately, and cooked them. They dished them up into portions they thought were about right. Yet I provided the oven to reheat it, the table and chairs, the cutlery and crockery, and the drinks to go with it. But the fundamental aspect of what makes the meal Chinese food was outsourced. I pay for the pre-cooked food, the maintenance of the kitchen, the electricity bills, and the cost of maintaining the dining area.
Platform as a Service is the equivalent of ringing for take away.
Let’s say my oven has come to the end of its natural life and instead of replacing it I have subscribed to Oven as a Service. My Chinese food arrives piping hot, when I order it.
I don’t need to prepare it, I don’t need to cook it, I don’t even really need plates to eat it from. I simply need somewhere to sit down and eat it. This of course is at my own table, on my own chair, in my own house.
For the purposes of completeness I also need cutlery, which I will have to wash at some stage after the meal.
Software as a Service goes even further. I still want Chinese food.
Of course I do, have you met me? Yet I don’t want to cook. I don’t want to go shopping, I don’t even really fancy the idea of washing up afterwards. I am also, not entirely sure how much I am going to want.
Usually I get this bit wrong. I either eat the lot and end up wishing there was more, or I am so full it is unhealthy and yet I am still surrounded by uneaten food. For the purposes of the analogy, and in a futile attempt to restore a little dignity to myself I should say that this is either me needing more computational resource than I have paid for, or having paid for more resources than I need. It is not just a public confession.
I am going to an all-you-can-eat Chinese buffet restaurant instead. I don’t have to buy ingredients, I don’t have to cook, I don’t have to pay gas bills, I don’t have to own pots and pans, plates, knives, forks and spoons (or even chopsticks). If the chairs are worn I don’t have to replace them. I simply turn up, eat as much food as I want (usually too much to be fair) and pay a single fixed price.
And that in a nutshell is what cloud computing is.
It’s Chinese food.
This wraps up the beginner’s guide to cloud computing, but keep your eyes open over the next few weeks as we’ll be putting some more advanced articles on things you can do, and cool innovative ways to use the cloud. In the mean time if you’d like to talk to one of our cloud computing experts about how you can utilize some of the cloud services we’ve talked about then why not give us a ring?
I don’t know about you, but I’m hungry now.