Stories about Software


An Introduction to the Types of Cloud Computing

Editorial Note: I originally wrote this post for the Monitis blog.  You can check out the original here, at their site.  While you’re there, take a look around at some of their other authors and content.

The folks at Gartner have something awesome called the “hype cycle”.  The cycle contains a “peak of inflated expectations” and a “trough of disillusionment”.  So, that alone gives it a pretty significant amusement factor.

But beyond the amusement lies an important insight into our collective psychology.  Those of us working in tech work in a booming and constantly evolving industry.  Because of this, we find ourselves bombarded with buzzwords.  These generate excitement at first and disillusionment later.  Eventually, they reach equilibrium.

Gartner uses this set of observations to advise companies about risk.  But we can use it to identify a term’s likelihood to induce buzzword fatigue and produce derisive satire.

Let’s get specific.  Do you remember a few years back, when “X as a service” really took off?  The world seized on the promise of the cloud.  Don’t maintain it yourself — have a service do it!  As the term rocketed up the peak of inflated expectations, everyone wanted a part of the cloud.

But then it fell into the trough of disillusionment, and satire ensued.  Twitter accounts offered “sarcasm as a service” to poke fun at the hype.  If you saw an offering for “everything as a service,” you had no idea whether it was serious.

Since this time, however, these offerings have ascended the so-called “slope of enlightenment” and established themselves as mainstream.  Actually, let me correct that.  They have established themselves as foundational to the modern internet.

Let’s now unpack this X as a service concept a bit.  In order to do that, I’ll offer a story in contrasts.

The “As a Service” Concept

Imagine that I own a small business.  In this capacity, I want to keep track of prospects, leads, and customers for sales purposes.  You can think of this as “customer relationship management” (CRM) software.

Back in the early days of my career (late 90s, early 2000s), you might have done this with Excel.  At least, you would have used Excel until it became too unwieldy.  Then, you’d have gone to Best Buy and purchased software that you installed from a CD.  Finally, you’d have installed the “client” on anyone’s PC who needed to use it while installing the “server” on some jack of all trades machine running Windows 2000 or something.  From there, using it was as easy as making sure not too many people tried to change things at once.

Fast forward a couple of decades and that seems… odd.  These days, you’d probably just navigate to something like salesforce.com and create a trial account.  Certainly small business owners would take this approach.  Larger organizations with more privacy concerns might still setup servers and install their own software.  But even the ones doing this would probably host a web app and have “clients” access it via browser.

This tale drives at the essence of “as a service.”  Stuffed into that small phrase, you find the large, important concept of “let someone else worry about it.”  You shouldn’t need to think about clients, servers, networks, and the like to have a CRM system.  Let someone else worry about it.  You just want to sign in via the browser.

This concept has become so important and so ubiquitous that it drives today’s internet.  But not all cloud, “as a service” concepts are created equal.  Let’s take a look at the major types of cloud computing, by conceptual level.

Software as a Service

Since we just talked about Salesforce.com, let’s talk first about the top of the stack.  With Salesforce, you have an example of Software as a Service (SaaS).

With the SaaS model, vendors provide applications to consumers.  If you think back through the history of software delivery, you can imagine it by contrast.  Still installing using a CD?  Don’t do that.  Sign up for our service instead.  No installation required!

To get a bit more rigorous about it, SaaS offers you services at the application level of abstraction.  The products generally have business uses, and they license web access in a “one to many” model.  As a defining feature, neither users nor administrators worry about upgrades and patches.  The SaaS provider handles that.

Examples include the aforementioned Salesforce, but also disparate offerings like Google Apps, Twitter, Slack, JIRA and more.  As you can see, inflated expectations or no, SaaS is everywhere.

Platform as a Service

Next up, let’s move down a layer of abstraction.  Sitting beneath the SaaS offerings, we find platform as a service (PaaS).

While SaaS targets users, PaaS generally targets the software developers and DevOps folks that create and manage software.  This evolved for a similar reason to the evolution of SaaS.  After all, software devleopers have all of the same motivations as end-users to want to avoid the burden of distracting maintenance.  So imagine a similar kind of value proposition to SaaS.  Still handling all of your own testing, deployment, and config management needs yourself?  Don’t do that.  Sign up for our service instead!

PaaS offers automation for a lot of the essential, but not domain-specific, concerns of the techies at a company that makes software.  If you’ve logged time in a technical role over the years, you can certainly relate.  Your time is most valuably spent writing the code that drives your company or its offering.  But you still have to concern yourself with the sorts of logistics that every organizations grapples with.  PaaS relives this pain.

Examples include Elastic BeanstalkHeroku, Force.com and Google App Engine.  It should perhaps come as no surprise that a PaaS (Force.com) sits under a highly customizable SaaS (salesforce.com).

Infrastructure as a Service

Lastly, let’s consider Infrastructure as a Service (IaaS).  IaaS lies at the bottom of the stack and the levels of abstraction.

The line between IaaS and PaaS seems perhaps somewhat less clear than the one between PaaS and SaaS, particularly for non-techies.  After all, both solve problems at the technical level.  But you can differentiate between them by thinking about IaaS as outsourcing of hardware.  Still buying a server and disk drives and setting them up every time time you need a test environment?  Don’t do that.  Sign up for our service instead!

IaaS gets you out of the hardware business.  Instead, you can “virtually” requisition additional memory, disk space, processing power, servers, and anything else that you’d historically have housed in your own data center (or wherever).  Not only does the IaaS paradigm make requisition easier, but it solves the problem of waste.  Don’t need the server anymore?  Just log in to your dashboard and cancel it.

Examples of IaaS products include Microsoft’s Azure, Amazon’s EC2, Rackspace, and various web hosting offerings.  Some of these IaaS offerings also layer PaaS services on top, by the way.

The Cloud Value Proposition

Having looked at the various types of cloud computing, you can understand their unified value proposition.  All of them relieve you of burdens faced by all businesses doing similar things and provide a convenient delivery mechanism.  Thus all of them easily help you realize value by freeing you up to focus on things relevant to your business.

Cloud offerings do come with their own set of potential problems.  No matter the guarantees, you lose an element of privacy and control.  And, on top of that, connectivity outages can threaten your dependent business in ways they never could have, historically.  20 years ago, your internet connection going out wouldn’t have rendered you unable to view your contacts in CRM.

But for any potential downside, the realized value far outpaces it.  And mitigation strategies abound.  You should definitely avail yourself of these technologies as much as you can.  They have launched since reached Gartner’s “plateau of productivity” and can help you do the same.