They have become such an important part of our routine that we are using or reading about them on a daily basis – digital transformation, big data or most recently, AI. But do we really know what they mean? I’m not convinced everyone who uses these terms does.
A bit of a refresh and buzzword busting is always good, and this is what I have attempted to do in this three-part blog series. Today, let’s take a look at cloud.
What’s cloud computing?
There are three things in this definition that you should remember for understanding what cloud is all about. Scalable, elastic and as a service.
Think about the cloud as if it were a utility. We all have a meter reading in our homes that counts the number of kilowatts hours used. It measures how much power we have used over time. The nice thing about that is if one day it is cold, we can turn the heating on at whatever temperature and if the next day it is warm, we can turn it off. We don’t need to plan ahead, we can turn on the heating when we need to – it is scalable. We only pay for what we use – it’s elastic. Finally, this is being made available to us as a service.
A bit of history…
Outside of its definition, to understand what cloud computing is, knowing how it came about is essential.
Before the cloud arrived, if you wanted people to access your website, you needed to have a server, I mean own a server… and you could only run one operating system such as Windows, Linux etc on one server at a time.
Then VMware came along. What VMware started to offer is called virtualization. Virtualization is a technology that allows you to create multiple simulated environments or dedicated resources from a single, physical hardware system. A software called a hypervisor connects directly to your hardware (or server) and allows you to split one system into separate, distinct, and secure environments known as virtual machines (VMs).
With virtualization you can run several operating systems in parallel which allows different customers to use the same server. You might have one customer that is using Windows and another one Linux.
Cloud computing couldn’t have existed without virtualization. But surprisingly, it all started with another company…
Amazon
Amazon is a shop, but like for many online or high street retailers, it is very seasonal. It gets very busy during certain times of the year – you should see how many packages arrive at our offices in December!
Because of the seasonality, Amazon had to buy enough servers to cope with the busy periods but when it was quieter, the company had all these servers that it was paying for but not using. Amazon was essentially throwing money out of the window. So, it figured out that what it could do is sell the capacity of the servers it was not using to other companies. This is how it started selling “cloud” by the hour.
Amazon was the first company to offer cloud computing and allow companies to pay for a server by the hour, without having to own it.
KVM
However, to be what we call today “a cloud provider”, you need to use virtualization. To provide its services, AWS didn’t use VMware but an open source virtualization solution called KVM (Kernel-based Virtual Machine) that is part of Linux. If they chose them it’s because they didn’t need any support, they have developers in-house that understand how to use it, fix it etc.
It is thanks to KVM that you are able to log in to your AWS account and just click a button to turn on a server. To go back to my utility analogy, KVM is the cable in your wall.
What happened in 2006, is a natural direction of the market. If Amazon wouldn’t have done it first, someone else would. VMware could have conquered the cloud by creating another business unit that would have sold capacity by the hour, in addition to selling hardware. But the company didn’t react to it and at that time was focused on short-term rather than long-term revenue.
“Cloud” busting
I could continue this blog by mentioning the flexible, efficient and strategic benefits cloud computing can bring but, this is a piece about buzzword busting instead, so let’s get into it.
1. Cloud
Before the term cloud came about, people were talking about IaaS. The first service AWS actually offered was called S3 – Simple Storage Service. It is like Dropbox but at the infrastructure level. You pay for the amount of data you store.
Cloud is just a marketing term. A lot of techies if not all, don’t like it. My partner certainly doesn’t, and I think I can speak for all the software developers I know when I say cloud doesn’t mean anything. Cloud is just a term that encapsulates different things such as IaaS, PaaS, SaaS etc (anything based on IaaS).
This means that by definition, other cloud buzzwords such as public cloud, hybrid cloud and private cloud are marketing terms too.
2. Public cloud
It simply means you operate on a server that is available to the public. Basically, it refers to AWS, Microsoft Azure, IBM Cloud, Google Cloud and Alibaba. Together, they own 75% of the market. AWS is by far the biggest player. One worth watching is Alibaba. Alibaba adds features at a rapid clip, is betting on artificial intelligence and operates a massive e-commerce business. Sound familiar.
3. Hybrid cloud
Hybrid cloud is by far the most confusing term. It sounds like something completely different and innovative doesn’t it? In fact, it is just about connecting your own servers with public cloud. In some cases, it makes sense to have your own servers and to buy public cloud but most of the time it doesn’t!
4. Private cloud
My favourite!
Private cloud means it’s running on hardware you own, in your data centre. However, if you look back at the definition of cloud computing mentioned above, what does it say? It’s scalable and elastic, right? But if you own the hardware, and it is always on, how can it be elastic and how can you scale it up and down? You can’t! This term doesn’t mean anything, it’s just marketing.
Private cloud is just IaaS (Infrastructure as a Service). For big companies, it is essentially VMware running in their data centres. You could argue that “private cloud” could work for a global bank for instance (people working around the globe would use the same servers at different times, so they are being used more than they normally would). But it is still hardware you own, that is always on and that you pay for.
Ultimately, cloud is very easy, but we are trying to make it more complicated. There is a good reason for that, I will let you figure it out…