Though a real cloud is a bit amorphous, cloud computing has several specific elements.
There has been a lot of talk recently about cloud computing, and with the PowerVM virtualization engine being released with the Power 520 and 550 Express models, the IBM i world is moving ever closer to the day when IBM users will have the benefits of cloud computing.
But what is cloud computing, and how will it affect my business? This is a question people are reluctant to ask because they will have to let everyone else know that they don't know what it is, even though it sounds simple: It's about clouds!
Attorneys know that you never ask a question unless you already know the answer. So am I going to go around asking, "Hey, everyone, what is cloud computing, anyway?" and let my peers in on the fact that I don't have a clue as to what it means? No, I'm going to avoid the issue altogether, and if someone is naïve enough to ask me what cloud computing is, I'm going to say, "I'd tell you, but it will take too much time." My other favorite response is, "It's difficult to explain. Have you read so and so's book on blah blah blah?" where you insert the title of some esoteric book that even you haven't read. This sends them off with their tails between their legs because they now realize they're talking to someone who is going to expect them to read a book instead of give them a quick 30-second sound bite. Run!
And so the cycle of ignorance is perpetuated because no one wants to spend the time to go to the National Weather Service Web site and find out what cloud computing means. Oh, it's not there? Hmmm, thought it was.... Anyway, it takes time to figure these things, and it's not something I need to learn between now and lunchtime, and by the way, it's macaroni and cheese today.
So the reason for this long lead-in, which some of our brighter readers will recognize as stalling, is that I really don't know what cloud computing is, and yet I'm going to write about it anyway! How's that for sheer lunacy? But it's Friday, so we get to be a little silly today.
First of all, let me say that if you don't know what cloud computing is, you're not alone because it's a fairly new idea that started getting some play late last year when IBM announced that it was building a large cloud computing platform. Prior to that, Amazon.com had begun to sell cloud-based services in the form of its Amazon Elastic Compute Cloud, or EC2, scalable computing capacity that can be used to run applications. Because cloud computing is new, it's generated a fair amount of press already, so it's no mystery, but it may not be that widely understood.
I think most people get the notion that cloud computing implies shared computing resources, so the virtualization reference is in sync. Cloud computing is probably also generally understood to be an alternative to having a local server or individual computer host your applications. The idea of a cloud probably came from the thought of clouds, particularly on a cloudy day, hanging in the air and "hovering" above the earth. If you want a service, you think first about running it from "the cloud." This ubiquitous source of applications is generally thought of as coming from an Internet-like public network.
The one word that is closely interlaced with cloud computing is "grid." While a grid can be several things, you generally aren't going to have a cloud without a grid, and a "computer grid" and "cloud" mean essentially the same thing. However, there is also something known as a "data grid," and that's different. And, to confuse things, there are different kinds of computer clouds.
The thing about a cloud is that it boasts interconnectivity with a variety of processors and operating systems with a high level of automation to manage the allocation of resources. This becomes possible with the introduction of multi-core processors and the potential to perform parallel computing in a manner that exceeds the individual software application's ability to take advantage of it. Suddenly, you have more hardware capability than you can use, so it makes sense to think about sharing that capability. This is a far cry from days gone by when you needed all the hardware you could pay for. So the idea of making a wide variety of services available suddenly leaps past simply offering Web services to being able to offer storage, basic computing power, and a basket of specific services.
The architecture of a cloud is essentially that of a network. It's a network of compatible systems supported by virtualization and management software that allow applications to float between cloud servers running in parallel. There are essentially five components to the cloud: a user interface employed to request services; a catalog providing a list of services; a management system to control the computer resources; a provisioning tool that goes and gets the services from the cloud to meet the requests; and a monitoring tool that tracks usage by each user, and, of course, the servers, and these can be virtual servers as well as physical servers.
In addition to Amazon, there are a half dozen or so companies, including Google, with its Google App Engine, that offer Web services via cloud computing. Developers can use resources from Nirvanix, say, to store projects and have them be available from anywhere on the globe with few annoying delays. 3tera is doing something similar through a network of partners. The thing about a cloud is that, because resources are shared, it is eminently scalable, as Joynet would attest with their on-demand infrastructure they use for running Web sites.
Cloud computing is also being used for storage, and here customers can manage their own virtual servers. The data may by hosted by physical servers that are scattered around the world.
So that's a primer on cloud computing, at least the basic architecture, which seems to be evolving every month. In a future issue, we'll talk a little about the specific software that is currently being utilized to manage the cloud computing resources.