Since it hit the scene in earnest a few years ago, I’ve despised the word ‘cloud’ in the context of what I do for a living. I’ve warned people prior to using it in presentations, proclaimed my joy for having not used the word and bashed it most every time it was mentioned. I’m here to say that my position on ‘the cloud’ has matured now. I don’t hate the word. But I do hate how most people in the world are defining it.
My own definition has taken a long time to develop. I’ve known it was a powerful concept for some time. I’ve also known most of the IT world has been talking about of the side of their neck when they made their salaries by talking about it. I particularly enjoy people proclaiming they know all about the ‘next generation of cloud’ when we were all still defining the first one. At any rate, to define ‘cloud’, I first have to define ‘PaaS’ to my own satisfaction.
PaaS (noun) – short for Platform As A Service. It provides a complete application platform for users or developers (or both) by sufficiently abstracting those services away from their underlying technology platforms.
A little wordy, I know, but we need to be specific here. Not only must a PaaS provide a platform, but it must do it in a way that abstracts developers and users from administration of the platform. It must also handle all of the tertiary services (DNS, port forwarding, scalability, inter-connectivity, etc.) that administers usually have to handle after the fact.
PaaS lets developers develop, and lets administers admin.
So what is cloud?
cloud (noun) – an implementation of a PaaS solution that is seamlessly and automatically scalable to handle load demands and they grow and shrink.
So you start with a PaaS and you build it out so it will grow and shrink automatically as needed for it work load.
What is NOT a cloud?
- provisioning virtual machines really quickly
- setting up a PaaS that is brittle and confining for developers and users
- writing 3 or 4 scripts to help automate your virtualization infrastructure
- almost everything being marketed as a cloud today
To define a cloud you have to define PaaS. PaaS is defined as that slick layer of magic that abstracts the application away from everything the application runs on or in. A cloud is a seamlessly scalable instance of a good PaaS. Easy, isn’t it? Step 3, profit!