With all the talk about clouds, you'd think we would have a simple definition by now. However, since we don't I'm going to take a quick stab at what I think the different cloud types are and why their distinction is important.
Flat, Vertical, or Rainbow (I'm sure I'll come up with others later)
Flat: Amazon or Google clouds
These are clouds that represent a flat cross section of applications that are largely defined as Web 2.0. They are built around tools like Java and other web technologies.
Simple effective way of delivering and managing Web 2.0 applications in an efficient scalable environment. It's relatively easy to move or build new applications to take advantage of this cloud and make it available via the internet over any browser.
Most companies have vertical applications. These are applications like Oracle, SAP, Seibel, Exchange and others that are not built on Web 2.0 platforms. These applications can't just be shipped out of your company's data center and installed at Google or Amazon. Nor can you send them your data to have it loaded to their platform. The work flows, database integration, third party application integration and other proprietary development make these applications unsuited for life on a Web 2.0 platform.
These are clouds built to deliver a specific application vertical or work flow. Salesforce.com might be considered an example of this cloud. Although a more definitive model would be SAP or Oracle selling SAAS (Software as a Service).
Pick the best of breed solution that accommodates a specific set of applications needed by your organization. You will still gain many of the benefits of the cloud in the sense that you will have a highly scalable environment that "should" allow you to only buy what you need when you need it.
Depending on the solution there may be issues with integration into other applications you have. Your upgrade or patch cycles might become significantly more complex as you'll be negotiating time and process with your cloud provider. However, with time I'm certain these issues would be worked through.
The All Inclusive Cloud or Tolerant Cloud. Personally I like the idea behind the rainbow cloud, as it allows companies to move into it one application or service at a time with the assumption that they can eventually load their entire set of applications into the environment. This cloud is best defined today by VMware's Vsphere solution.
Provides a platform that can accommodate all of the applications in your current environment, from legacy to Web 2.0. You also gain the flexibility of scale (up and down), portability (move from location to location easily). In this type of cloud environment your benefits increase with every application you add. You also simplify your support requirements as you don't have to have multiple providers/solutions supporting your virtualized systems.
This is still a new platform as are all Cloud offerings so your choices must be made with care. My suggestion is to take the low hanging fruit approach of moving your low risk applications first and thoroughly testing how the environment performs and is supported (especially important if you’re buying cloud services as opposed to building an internal cloud). Over the course of 12-18 months use your natural update/replace cycles to help you move the rest of your environment.
Comments are welcome as always!