There is a lot of noise about this thing called the cloud and while many people have a basic understanding that it has something to do with running software on the internet I thought it was about time to throw my hat into the ring to try and clear this up.
Starting With The Basics: How Does a PC Work?
Let us cast our mind back to an ancient time when there was no internet. If you wanted to run software, it required your own computer and it went something like this:
Let’s start from the bottom and work our way up. A computer has a thing called BIOS. This is the program that starts up when the computer is started. It is hard-wired into the mother board (the big flat circuit board inside your computer) and its job is to start the various bits on the motherboard up and to get the operating system going.
The operating system is, ultimately, software but very special software. The operating system is the gateway between the stuff on the motherboard and the software running on the computer. In this sense it is a platform that all other programs run on.
Software is simply computer programs that run on a computer. Therefore anyone that says ‘no software’ (you know who you are) is talking nonsense because even if a program is running on a server in Singapore and the results are being displayed on a monitor in Boise, Idaho it is still software. Anyone who tells you something different is trying to sell you something.
The hard drive is where all data sits. This includes software, data, music and anything else encoded into 1’s and 0’s.
When a program is run, it is copied into memory and the CPU (which actually does everything by coordinating all the other bits) works with it there. The reason it makes a copy is that memory is faster to read and write to. The reason we don’t abandon the hard drive and make the whole computer memory is cost. This being said, back in the early days of home computers, things like the Commodore 64 or Sinclair Spectrum 48k had no hard drive, just memory (64 kilobytes and 48 kilobytes respectively).
Eventually, when the software does something, it needs to tell the user about it and this is where the screen comes in.
As a disclaimer, I am not an IT graduate, I am a physics graduate that got into IT. Therefore this model may not be completely accurate. However, it has been my working model for the last 25 years and works wonderfully for this article.
Thanks For The History Lesson. What Does This Have To Do With The Cloud?
The thing is, if you understand how a computer works, it is easy to understand the cloud because all the cloud does is replace bits from the computer and use bits somewhere else in the world. Generally speaking, the more you use someone else’s bits, the less control you have on what those bits are. This will become evident as we get into the explanation.
Let us look at some of those cloud terms:
Infrastructure as a Service (IaaS)
This is where we want to run our software on someone else’s machines and they get to say what those machines are. In theory we could hold the software (including the operating system) on our computer and have someone else’s machines read it across the internet but this would be quite slow. So while we are really just using someone else’s hard drive, CPU and memory, we generally also load an operating system and software on the other person’s hard dive for quick access by their CPU and memory. An example of IaaS is Rackspace (http://www.rackspace.com). Rackspace also offer to provide one of a selection of operating systems. Although this could construe as Platform as a Service (see below) because the choice is with us and not them on the operating system, it is still considered IaaS.
If we are just looking to use someone else’s hard drive, this also sits under IaaS and an example of this is Amazon S3 (http://aws.amazon.com/s3/).
Platform as a Service (PaaS)
If we do not get to choose the operating system, this is PaaS. A good example of this is Azure (http://www.microsoft.com/windowsazure/). Here we use someone else’s hard drive, CPU, memory and operating system. We can load whatever software we like onto it and even have it read software sitting on our hard drive if we like. We could also have it read someone else’s hard drive, like Amazon S3. The recent iCloud service by Apple appears to be doing precisely this (http://www.neowin.net/news/icloud-uses-amazon-web-services-and-windows-azure-for-now).
Software as a Service (SaaS)
This is where we get no say on anything other than the specifications of our screen. Someone else chooses the servers, the operating system and the specific software that runs on them. Examples include Hotmail, salesforce.com, Miniclip flash games and Google apps.
What is nice about SaaS is that we do not need to worry about our computing power to get the software to run; it is someone else’s concern. In theory, I could dust off my old Sinclair Spectrum 48k and run a Saas application, which normally takes four or five modern servers to run locally (or on-premise as they now say). All my Speccy has to do is coordinate the information coming from the application, via the internet, and display it on my monitor or, in the case of the Spectrum, my television. In reality this would not quite work as the Sinclair Spectrum has no way of talking to the internet. The best it could muster in its day was chatting to cassettes. However, the principle is sound.
There is a lot of noise out there about this cloud thing but it really boils down to one simple concept: if you are happy to give up some control to a provider you trust, you can get great technical services with less headache and probably at a lower cost. If this sounds tempting, it is then a case of working out how far you want to go with it. There is no doubt that as these services become more reliable and more feature-rich businesses will take them up more and more, willing to gain an economic edge on rivals in exchange for losing a little control of their IT infrastructure.