It's conference season, and lately that means I find myself surrounded by talks extolling the virtues of "the cloud." I've noticed in the past year or so that the tone of such presentations, however, is disturbingly moving from, "Give this a try, it's gonna be great" to sneering at those who aren't, well, on Cloud 9 about the whole thing (sorry, couldn't resist). Tell some folks that you're a bit skeptical about the cloud (as I sometimes do) and the cloud pushers behave as if you'd just expressed the belief that the earth was flat. Now, I've always felt that when the conversation starts getting religious, it's time to start getting analytical.
Before we can get too far in cloud-related discussion, though, I think it's important to define a few terms. Cloudites use the phrase "the cloud" as if it meant something specific when in fact calling something a cloud service is about as exact a phrase as calling something a transportation device. That term just as accurately refers to roller skates as it does to a Rolls Royce, so let me take some time this month to describe the range of things that fall under the cloud rubric.
Types of Cloud Services
About the best all-encompassing definition of cloud service that I can come up with is "pretty much any sort of service that you access via the web, whether the global web or your intranet's web," and I'm only joking a little when I say that. In truth, cloud has become one of those terms usable by marketing folks in any way that they like, sort of like when about 12 years ago every business started adding "dot com" to their names in an attempt to sound tech-savvy. Most folks classify clouds into three categories (and none of those categories have names like stratus, nimbus, or cirrus, oddly enough).
Hardware as a Service. The first type is known either as Hardware as a Service or Infrastructure as a Service, usually shortened to HaaS and IaaS, and Amazon's S3 and EC2 cloud services are a good example of that service type. Amazon's S3 and EC2 basically (I'm simplifying in all of these cases) spins up a virtual machine for you, puts Windows on it, gives you a web interface to interact with the computer (instance is the common cloud phrase), and that's about it. You're responsible for backing it up, installing software, and the like. Why this appeals to some is that running an S3 VM for a year will, in many cases, be cheaper than leasing a computer for a year. Additionally, if you need more computing power, you can get it with a few clicks on an Amazon webpage. (That ease of rescaling up or down is touted as a plus for all kinds of clouds.) HaaS seems to me to be the least disruptive of the three sorts of clouds, as all you're basically doing is moving your servers from your server room to a warehouse in Virginia. (Well, that and probably acquiring some really high speed Internet bandwidth.)
Software as a Service. The big success story in the cloud business, the one that everyone wants to either imitate or beat, is an outfit called Salesforce.com. As its name suggests, the company's main objective is to produce tools that make sales folks more productive. Salesforce.com basically took its suite of CRM applications and stuck them on the web. As those apps are largely used by highly mobile folks, the company's sales-related apps and anytime-access via the web was a marriage made in heaven. Where Amazon essentially rents out computing hardware, Salesforce.com essentially rents out access to its software, and so it'll be no surprise that this sort of cloud is called Software as a Service or SaaS. Other examples of Software as a Service would include the many Exchange hosting companies, or Microsoft's Business Productivity Online Suite (BPOS). As you'd imagine, moving from a model of running software locally on your computer to one where you do your work on the web takes a bit more getting used to than does moving your hardware usage to the cloud, as in HaaS—but, again, if you've got a very mobile workforce and essentially constant Internet connectivity, then SaaS could potentially save you money and make your folks more productive.
Platform as a Service. The third type of cloud, and the one that involves some of the biggest changes, is called Platform as a Service or PaaS. Basically it enables you to build and run your own applications in the cloud. The Salesforce.com folks offer a PaaS-type option, but I think the better example for people reading this article would be Microsoft's PaaS offering, Azure. Azure is basically (again, I'm oversimplifying here) one Windows-like operating system running on zillions of physical computers. The OS is massively multitasking and, as Microsoft can throw as many CPUs on it as they like, this monster OS can potentially allow any number of customers to each run their own apps on Azure. While it's a Windows-like platform—it offers both Win32 and .NET program support—Microsoft says that the only types of apps that make sense on Azure are either web-based apps (like existing ASP.NET apps) or console applications.
Whether you're considering just dipping your toe into the cloud with HaaS or rebuilding your entire suite of line-of-business apps on a PaaS cloud, there are a bunch of questions that I think any would-be cloud user should ask, and I'll start discussing them next month.