Meet the fearsome spectre of cloud computing. He’s staring at you for a reason. Despite the fact that the cloud computing is currently the most overused, misunderstood, and over-hyped phrase in our industry, trying to ignore it any longer is probably not a good idea. Though still in a very early phase, the clouds are forming, and we all need to start paying closer attention to which way the winds are blowing them and what the future implications are going to be for our infrastructure.
After spending several days this week listening to the major players in the industry outline their current offerings and future plans, it was quite obvious that what I was talking about back in April was not caused by lack of sleep or hallucinogenic substances:
A short history lesson tells us all we need to know about cloud computing. In the 1800’s power generation was the responsibility of those who needed it. Be it steam, water, or electricity, if I had factory with electrical machinery and lights, I had to generate my own power, and if you needed power, so did you. And both of us had the hassles of building, operating, and maintaining a power generation infrastructure which, by the way, was not our core business. Power was necessary to the operation, but it was not the product or service we delivered for profit.
Eventually Edison and Westinghouse figured out how to transmit electricity, and entrepreneurs realized if they could build a Really Big Generator and implement a delivery method, they could sell power to industrial users. The case from the entrepreneurs to business was clear: “Let us worry about the hassles of generating power so you can focus on your core business, and oh by the way, it’s going to cost a lot less than doing it yourself.”
Fast foward to the present…has the light just come on (pun intended)? Cloud computing is nothing more than the name-du-jour for the centralization of computing resources so that they can be delivered as a utility service. Nothing more, nothing less.
Cloud computing is here now, perhaps in nascent form, but it’s here nonetheless.
The cloud is not new technology we’re going to go out and buy, per se. It’s not in a box, and it doesn’t have a part number. It’s more of a paradigm shift back to way things used to be in the Golden Age of the Mainframe (which never died by the way…according to people who enjoy crunching the numbers, IBM’s System z sales last year were in the $3.5B range). You can read the popular Wikipedia page on cloud computing, but I would suggest you think of the cloud more as a way that technology is delivered, much like electricity or water. You only consume the goods delivered rather than first having to generate or pump them yourself.
From a cloud provider’s standpoint, this means a virtualized and highly automated infrastructure, fast and easy provisioning, self-service, enormous scalability, a usage-based billing model, and a very granular portioning of resources. And that means programmers. Hosting companies that plan to operate cloud offerings are going to need a talented programming staff of substantial size along with a very sharp support staff to build and operate all of the plumbing to deliver computing resources to your doorstep. Proof of this lies in the list of the brave few heavyweights that currently occupy the lion’s share of the cloudscape: Google, Amazon and Rackspace. Building these utility services is not for the faint-at-heart or low-on-cash, and the average hosting company is simply not going to be able to really play in the clouds until the Big Boys blaze the trail.
Currently, we can find cloud services offered to us in three flavors, or if you like, three different levels of abstraction:
Infrastructure as a service (IaaS). This is closest thing to hosting as we knew it before today – computing and network hardware offered as a utility service, but essentially without limits or long term commitments. Rackspace’s current cloud offerings are of this type. Here, the hardware layer is abstracted away, leaving you to worry only about the operating system and applications.
Platform as a service (PaaS). PasS takes the hardware layer and adds the operating system and a development environment (software APIs), which you then use to develop your applications. The development environment ostensibly hides all the details of where your code executes and how your data is stored and protected. So at this level, in addition to the hardware layer, the OS and the development environment are now effectively abstracted away. Google’s AppEngine is a prime example of PaaS. You may have already surmised a possible evil in PaaS. If you develop an application on a particular vendor’s proprietary cloud platform (e.g. Google), they’ve got you locked in to their service, and there is no small amount of chatter going on about this in the industry. The open community is crying for an industry standard set of APIs, while the big players are fighting to establish dominance with their proprietary systems. Obviously, it’s best to stay on the sidelines here until the dust settles.
Software as a service (SaaS). With SaaS, everything is abstracted – you are simply presented with a user interface for an application. Salesforce.com is the premier poster child for this model.
Cloud computing is becoming a deeper and more pertinent topic every day, and we’d do well to begin keeping a sharp eye on it. Cloud is not necessarily an either/or strategy. For small business, and to a large degree medium business, the server room will eventually disappear into the cloud, and that will be a blessing for many. For the enterprise space, however, cloud services will be just another tool in the arsenal to solve business problems along with, dare I say it, the mainframe.
If you work in IT for a small or medium-size business, there is a career signpost up ahead in the clouds. Make sure you don’t ignore it.
//spk




