Gartner predicts that by 2025 almost two-thirds of spending on application software will have shifted to the cloud, driven by the demand for integration capabilities, agile work processes, and interchangeable architecture.
But make no mistake. With cloud computing we're still on servers, we're still on hardware - we've simply got connectivity across the planet, which allows us to access this infrastructure, wherever it is in the world. So there's no getting away from it. Surely the 'cloud' has to be one of the most successful publicity campaigns ever run?
What is the cloud?
The word 'cloud' is banded around everywhere. By everyone. But the majority still don't get it. So first and foremost, for those that don't know...
I was talking to someone the other day about the cloud and asked them where they thought the cloud was. "It's up there," they said to me, gesturing to the sky, "out there". I said, "well, no, I mean, technically, realistically, it's not 'up there'. It's still 'down here', it's still on-premise, in a physical data center somewhere on the planet".
So whilst the cloud might very well be used to communicate, it's really about the search for more data computing power, in a very decentralized computing world where things are everywhere. This allows data and applications to be stored on remote servers and accessed via the internet. Hence what the cloud actually means in practice is that we're still on servers, we're still on hardware, and we've simply got the ability to now access this infrastructure from anywhere.
What problem was the cloud invented to solve?
If you go back to the early days, people would use a combination of their server cupboard (and it was, literally, a cupboard back then...!), rather than a server room. They would also have data centers for their public-facing websites, and other more important things that were usually external. And that kind of evolved. From my point of view, we started having to solve the problems of backup, offsite backups, taking the tapes away, and all sorts of other networking challenges.
We then started having to solve the problems of having a singular data center running a website, and clouds kind of came out of both. They solved the problem by distributing all that workload and sharing it across many, many data centers. Not just one or two in your local area. And that also took away the complexity of the underneath.
So you can employ cloud engineers to look after these components who will have a high-level understanding of networking, but they don't necessarily need to know how to go on to a specific Cisco switch and configure certain settings. Meaning the model as a whole is now just sort of commoditizing and making it simpler.
Without the cloud, we could have linked three or four large data centers together, with a data center in every country (and a network linking all of that together), and done it all manually. But it costs a hell of a lot of money to get something like that setup and an awful lot of IT talent would have been required. So what we did instead was essentially to start renting all this infrastructure. This was known as Infrastructure as a Service (IaaS), which worked (and still works) for companies that wanted to be able to control their own services and build applications from the ground up.
The cloud is essentially just hardware rental
With the cloud, all I'm essentially doing is taking my credit card, jumping onto a public cloud provider, and frogging loads of instances and hammering sites as much as I want. I'm just renting the hardware, and then later, just packing it down. So there are no upfront infrastructure costs. I abstract myself away from the hardware, and I don't have to worry about the hardware. Sometimes I don't even have to worry about the operating system. I just do serverless. I have a global presence, just with a credit card. That's the whole concept of Platform as a Service (PaaS) - where the underlying hardware and operating system are irrelevant to the end user, who accesses the service via a web browser or application.
And if your team doesn't want to even handle application software, upgrades, and everything that goes with it then you can go one step further and opt for Software as a Service (SaaS), where the provider will manage all the elements needed for you.
The right platform for your application
So we now have the following services, depending on how you want to orchestrate the application:
- Infrastructure as a Service - Infrastructure elements for networking, storage, servers, and virtualization are provided for you.
- Platform as a Service - Hardware, and software elements are hosted by the provider, while developers can maintain the management of their applications.
- Software as a Service - Web delivery means a third-party deal with the installation, management, and upgrading of software.
In fact, we can now take a tiny bit for a few dollars a month, or a few dollars an hour, and we can abstract certain parts of our application stack. All of this can now be achieved. Nevertheless, at the end of the day, the 'cloud' is still just servers and data centers. If it solves your problem great. But don't assume that because everyone is apparently 'moving to the cloud' that it necessarily makes sense for your infrastructure and use case.
In reality, the cloud is not necessarily cheaper than other forms of computing (in the same way renting a house becomes more expensive in the long term than buying one!). So if you have an application that has a regular and foreseeable requirement for services it may be more economical to keep it on-premise or stick with Infrastructure as a Service.