Here is an older but still interesting article written by Joe Brockmeierover at Linux
This may not be the year of the Linux desktop, but it’s definitely the year of Linux powering cloud computing. Even though cloud computing is gaining popularity; it’s still not well-understood. Want a bit more on the basics of cloud computing? Read on!
Behind the smokescreen of hype, there’s actually something to cloud computing. You’re already a consumer of cloud computing in the same way that we’re all Linux users. Using Amazon or Gmail? You’re using cloud computing. But that’s not the same as working directly with cloud solutions.
Just like virtualization, the right cloud solution — if any — depends entirely on the workloads you have and your requirements for data handling. Most businesses of any size are probably using at least some cloud computing in the form of Software-as-a-Service (SaaS), if nothing else.
What is Cloud Computing?
Cloud computing, at least as initially defined, comprises on-demand computing delivered over the Internet. This includes several types of computing. First, Platform-as-a-Service offerings (PaaS) that allow users to run applications on cloud infrastructure. This includes services like Google’s App Engine. The infrastructure is completely controlled by the service provider and the customer doesn’t need to worry about the management of the systems or infrastructure that the service is running on. In fact, the user may not know whether the underlying platform is running on Linux, Windows, FreeBSD, some mixture of all the above, or something else entirely. All they need to know is the interface and how to run jobs on the system.
Next is Infrastructure-as-a-Service (IaaS), such as Amazon’s Elastic Compute Cloud (EC2) that delivers on-demand and scalable services over the Internet where organizations can deploy workloads that can grow and shrink on demand to meet the need. This allows organizations to run operating systems or other infrastructure on top of a computing service. Again, customers don’t manage the underlying hardware or platforms that their infrastructure is running on top of — they simply define the level of services that they need and run their infrastructure on top of that.
Finally, SaaS, which has been around for a while now. Instead of installing and running software on your own infrastructure, it runs on someone else’s infrastructure in a pay per use model. Some SaaS, like Google Docs, might be entirely free to the end user. Other services charge per user, by service tier, or a combination of the two. Typically SaaS offerings are Web-based and run through the browser, like the 37 Signals suite.
You’ll find a lot of packages that are designed to be offered by third-parties as SaaS as well. For instance, the Parallels Automation and Plesk Control Panel offerings from Parallels, or Open-Xchange groupware that can be customized and deployed by hosting providers.
It should go without saying, though I’ll say it anyway, that Linux powers the bulk of cloud computing solutions. You’ll find some Windows-based offerings, but Amazon, Google, and other major players are running their cloud infrastructure on top of Linux.
Grid, Cloud, What’s the Difference?
Before there was cloud computing, there was grid computing and Sun telling us that “the network is the computer.” Is there any difference between grid and cloud computing, or is it just technical hairsplitting? Though the two are similar, it’s easy to make the distinction between grid computing and cloud computing.
The best description I’ve seen so far came from RightScale’s blog, attributed to Rich Wolski of the Eucalyptus Project. Wolski describes grid computing as suitable for environments where users make fewer requests, but for larger allocations of computing power. So a project may only have a few jobs to run, but they’re large jobs and tend to consume a fair amount of computing power.
Conversely, cloud computing consists of a lot of smaller requests. Think of applications running on App Engine, or users hitting a SaaS offering. The requests are minimal, but the actual number of requests are much larger. The data sets are typically smaller, but the number of requests over time is much greater.
Clouds and Appliances
If you want to talk about mixed metaphors, think about running a software appliance in the cloud. Though it’s a jarring clash of metaphors, the actual practice of deploying software appliances in the cloud is smooth as silk. (To use yet another metaphor!)
Some vendors are packaging their software as virtual appliances that can be run on top of your internal infrastructure or using cloud computing services. For instance, the BitNami folks have been packaging popular open source stacks and applications to run on top of VMware, Amazon’s EC2, and MyGSI GoGrid. (You can also run the stacks on top of regular servers as well, if you’re still doing old-fashioned computing…)
Appliances on top of cloud platforms simplify deploying and managing applications. Rather than having to provision your own hardware and deal with software dependencies, you can simply fire up a virtual appliance and start using it.