For the cloud to become more like an operating system and less like an amorphous mass, and by definition more useful to business, some basic functions need to become part of the fabric.
By that, I mean seamless (and near invisible) integration with the underlying infrastructure components (operating system, virtual machine, hardware, networking). These kinds of things will drive developers to the cloud and make it a more manageable environment. Package management, akin to what's found in Linux distros, is one milestone that seems the easiest for existing and aspiring providers of cloud services to achieve.
As the name implies, a package management systems help you install or remove, upgrade or configure the packages in a system - Linux and Unix mostly. Typical functions include: upgrading from a repository, verifying signatures and checksums and managing dependencies.
Examples of Linux package managers include Red Hat's RPM, the Fedora YUM or APT from Debian/Ubuntu. Each manager has some different features or functions and they also cross borders to other distributions. Sun Microsystems' vice president of developer and community marketing Ian Murdock has posited that package management is "the single biggest advancement Linux has brought to the industry" here.
On Ubuntu Linux, the apt-get utility provides a command-line interface to system packages. It's easily invoked with a simple command plus an argument.
Let's say I want to install Gimp on my Ubuntu box, then I type the following:
[Dave-ElReg:~] dave% sudo apt-get install gimp
If there is a new release of Gimp or other software I have installed, I run the update command to update my local package index of what's available:
[Dave-ElReg:~] dave% sudo apt-get update
And to run an upgrade of all the software on my machine I use the following command - note the -u option shows the complete list of packages, which will be upgraded:
[Dave-ElReg:~] dave% sudo apt-get -u upgrade
The upgrade command will detail out the packages that will be updated and then work it's magic.
OK, let's get back to the cloud.
Let's say you are running multiple different Amazon Machine Images (AMIs), which contain your applications, libraries, data and configuration settings on Amazon's Elastic Compute Cloud (EC2), and you are using Amazon's S3 for storage. Don't think running everything in the cloud will abstract away potential management problems. You'll still have a system administration headache until you script something or update your AMIs with your new software and application code.
A better - and obvious - answer would be if you could have all of your images, code and applications available in a dashboard where you could simply update everything on the fly.
An even better answer would be to not have to perform any system administration functions at all. Currently, the only way to make that happen with Amazon is through third-party tools like 3Tera and RightScale.
Amazon may be the best-known cloud provider, but it's certainly not the only one. There are a variety of arguments in favor of other approaches, such as Microsoft's yet-to-launch Azure Services Platform and the existing Salesforce.com service.
I guess we'll have to wait and see what transpires with Azure, as it's still available only in early access to a selected number of testers. That leaves Salesforce.com's hosted platform, Force.com, which Salesforce.com was pushing hard this month as a cloud.