Though the trend to cloud computing is now well established, when I talk to some business owners, I realise there is still some misunderstanding out there. If any of the following terms are confusing to you; public cloud, private cloud, hybrid cloud, IAAS, PAAS, or SAAS, then let me shed some light -- and add my 2c while I am at it!
“Cloud computing” or just “the cloud” has been around for a while now, and was really brought into mainstream IT conversation back around 2006 when Amazon Web Services launched their “Elastic compute cloud” (EC2).
Wow, nearly 10 years ago? That seems like yesterday!
There are three common types of “compute clouds”; public, private and hybrid. There are many different service models (think of them as types of delivery). The most common three are; Software as-a-service (SaaS), Platform-as-a-service (Paas) and as Infrastructure-as-a-service (IaaS). I will talk about each of these.
However there are also many other as-a-service models, such as backend as a service (BaaS), payments as a service (PaaS), and some are gaining in popularity such as mobile backend as a service (mBaaS). Pretty much anything can be as-a-service, and that is called XaaS (anything as a service) as a term to cover all the as-a-service models.
Lets get back to the big three. What’s the difference? And what does it mean for your business? To answer that, we have to get back to basics.
What is cloud computing?
It seems cloud computing is notoriously difficult to grasp for those not in the IT industry. Let’s define what we mean by the term before we highlight the different types and modes of delivery.
Like any technology, as it becomes more ubiquitous, the machinery and complexity that drives the technology escapes further and further into the background. When automobiles were first introduced, operating them required a good deal of technical know-how. Many people (like me) actually did their own servicing, parts replacement and tuning. As the technology evolved, cars got more and more complicated, and the technical knowledge required fell more and more on the industry itself. Now, of course, cars are more complex than ever and we get specialists to service them for us – but to drive them, we require very little knowledge of what makes them tick. For the most part, we just turn the key and go.
The same can be said of computing. We no longer require a knowledge of the underlying technology to send an email from a laptop. We just open a web browser or email application, then type the email, and send it. Examples could be Google Mail in a browser or maybe Office 365 with Outlook, Microsoft’s desktop mail app.
Both those email systems are actually examples of cloud computing. The underlying infrastructure required to run them is handled by Google and Microsoft respectively. They maintain the servers, storage, databases, networking, security, accounts, web services, and countless other things. You and I simply access them, usually through a web browser, desktop/laptop app, or a smartphone app. Like cars, we basically just turn the key and go. Google Docs and Office 365 mail are examples of Software-as-a Services (or SaaS), where almost everything is handled for you. Most web-apps are like this, and so are software as a service.
To get a feel for how we got here, lets start with what life was like before the cloud. Lets not go back as far as the mainframe days, but instead, kick off in the 1990s with the rise of the personal computer and client-server apps. Now imagine you are heading the IT team in a company, and you need to roll out a new application to the company employees. In a sentence, this is what you need to do;
(OK, before i list them, yes, I have simplified it enormously, there are a LOT more steps, and MANY options at each step along the way – I am just summarising)
In short: Buy a server -- put it in your datacentre (that you may or may not have to also manage) -- connect it you your network -- buy some storage for the server -- install a virtualisation layer tool on the server -- install the server operating system -- install a database -- maybe some middleware -- install the actual server application -- configure the application -- import the user data -- set up security at all levels -- test at all levels -- then, do all the previous steps again because you need to run another copy in another datacentre for high availability (in case the first one fails). Now go set up the applications on the users desktops -- test it all -- roll out to all users -- accept the company accolades -- and finally, take a vacation! Now you are home from the vacation. You find the success and uptake has been beyond your wildest dreams, and the servers are not coping. Go back to the start. Sort of. Actually, that’s why you virtualised it - so its not so difficult to increase the capacity. But you get the drift ... that this is a complex, expensive, specialised, lengthy, iterative process.
And then you have to manage it all. This was true D.I.Y.
Before we launch into the cloud delivery models in more detail, here is a diagram that I have used, enhanced, and updated over the years to help explain the cloud service models. See the “You manage” indicator on the far right? That shows you doing all the above.
In the traditional software model, you are responsible for all the boxes. So now lets look at Infrastructure as a service (IaaS).
IaaS takes the “DIY” service model and removes some of the burden. The provider worries about the datacentre, the internetworking, the actual server and storage capacity, and builds and manages the virtualisation layer. All you see (and pay for) is a virtual server on which to install your operating system etc. You still have to manage the device, the internet connection, your application software, databases etc. and operating systems.
There are immediate benefits. Mostly the economic benefits of this model are around scale (it costs way less to run 10,000 servers in one datacenter than to run 1000 customer datacenters with 10 servers each). But there are other benefits also.
Amazon Web Services EC2, Rackspace, and more recently, Microsoft Azure would be three of the largest and most known IAAS providers, but there are 1000’s of providers, and they do more than that, as we will find out.
You still have lots of control, but there are benefits now in terms of scale, specialist management, utilisation etc. But hey, you don’t care about the operating system, you just want to run your application. OK, time to introduce PaaS.
PaaS takes the model of IaaS, and does another chunk of the work for you. As well as all the infrastructure, Platform as a Service providers also manage the operating system, database and middleware layers – presenting you with a application platform to load or develop your application on.
Examples would be Servicenow’s CreateNow Delelopment Suite, Salesforce’s force.com platform, AppFog, and the Google Apps Engine.
Definition wise, there is already an issue though because the lines between PaaS and IaaS are blurring. For example, there are some services from AWS that are mostly IaaS but some of the functionality is done for you, more like PaaS. Don’t get hung up on this. It’s the outcome and functionality that is most important!
So, with PaaS, you just need to handle the device, internet connection, and then build or run your specific application software.
Its getting easier folks!
The ‘least hands on’ type of cloud service model is SaaS, and as we said earlier, these are applications that reside on someone else’s servers, are maintained by someone else, scaled by someone else.
With SaaS, you manage the device and the internet connection. That’s it.
It is likely you already use many SaaS products: Gmail, Salesforce, Office 365, Twitter. Actually, pretty much anything delivered via the web that is not a static web page! For example, I am writing this blog post in Hubspot, a very popular and fast growing inbound marketing software platform that is delivered as SaaS.
SaaS is arguably the way of the future – as apps, and their enabling technologies and systems become more complex.
Now, if you are still not quite there in coming to grips with as-a-service, there is more ‘everyday’ example of this; check out Albert Barron’s Pizza-as-a-service analogy.
'Types' of cloud
Before we finish, I did promise to talk about the cloud types; public, private and hybrid. So now you know about the service and delivery models, this is an easy one!
Private clouds are where an organisation creates (or more often it is created for them) a compute cloud(s) for ONLY that that company's use. Sometimes larger companies, or companies or organisations with unique security requirements, go down this path.
Public clouds (like AWS EC2, Azure, etc) are exactly that, Compute clouds that are shared and available publicly. This does NOT necessarily mean they are less secure, and no, the general public cannot access your data unless you set up your servers with no security. This is the path most organisations would go down. Competitive pressures, and economies of scale, are causing the costs of public cloud services to continually decrease over time.
Hybrid clouds, as the name suggests, are where deployment is a mix of both in-house infrastructure, public, and private clouds.
Cloud computing has some tremendous advantages. First, it makes managing everything a pay-as-you-go affair, much like your water or electricity bill. You only pay for what you use. Cloud computing eliminates capital expenses, maintenance costs, and specialist skills (although introducing some specialist skills of its own). It also gives you the ability to deploy and scale up (and down) much more quickly.
Of course, like any move, there are risks to be weighed, like the security risks inherent in storing sensitive data off-premises. Determining whether IaaS, PaaS, or SaaS is the right fit requires two things: an industry expert that has experience in deploying in the cloud (that’s us) and someone with extensive knowledge of your business’s particular needs (that’s you).
Yes, VERY oversimplified, but that’s cloud computing in a nutshell !