The cloud computing stack is traditionally regarded as being composed of three layers. The first, lower layer consists of Infrastructure-as-a-Service, that is, basic computing resources sold on a pay-as-you-go fashion. These basic resources consist of servers, raw storage, network bandwidth, load balancing and other low-level elements, and they form the building blocks for the upper layers of the cloud. On top of IaaS lies PaaS’s, that is, Platform-as-a-Service, which conceptually are operating systems on the cloud. They abstract the hardware from the developers and end-users, offering transparent and automatic scalability for functionality such as process execution, messaging, and structured storage. On the uppermost platform lies Software-as-a-Service. There are literally hundreds of different software offerings, from office productivity suites to CRM to ERP. While some of these are built on top of cloud platform offerings, most still rely only on cloud infrastructure directly.

Now, however, we may be witnessing the rise of a new layer in the cloud stack. This new layer, which we may call Solution-as-a-Service (but we’ll have to come up with a new acronym!), lie somewhere between cloud software and cloud platforms, and consist of complete solutions neatly wrapped up, packaged, and sold on the same service model that cloud users are accustomed to. To me, Amazon’s recently launched CloudSearch service is a prime example of this new trend in cloud computing.

Software vs. solution

So what is the difference between cloud solutions and cloud software? Cloud software, much like traditional software, consists mostly of stand-alone packages that perform a collection of functions. It is end-user focused and, in addition to the core functionality, its developers must worry about usability and interface design issues. Google Docs and Microsoft Office 365 are cloud software suites, that is, a collection of applications focused on a specific user need – the need to edit documents and spreadsheets, in this case. A lot of the cloud software that exists today is simply a “cloudified” version of traditional software, running on virtual servers and served over the web, on a browser, to users everywhere.

Solutions, on the other hand are focused on specific problems, be they technical- or business-oriented, and they are less self-contained, in the sense that they may interact with other solutions, or with other parts of the cloud stack. As I mentioned, Amazon’s CloudSearch is an excellent example: it solves the problem of implementing and maintaining a search platform for any kind of content on the web, and offers this solution on the familiar “pay-as-you-go” model of the cloud. Microsoft’s Windows Azure Media Services are another example of an attempt at building a cloud solution. Instead of an end-user tool, developers get access to a set of APIs that let them customize the system and access its underlying functionality without having to worry much about implementation details.

This solution also brings with it several interesting new notions with regards to the cloud. Instead of asking users to configure the system in terms of number and size of instances, it functions as a fully managed service offering. The system itself will monitor resource usage and scale up or down as needed to optimize your costs.

A revolution in a revolution

These Solutions-as-a-Service have the potential to be revolutionary. While several companies claim to be “solution providers”, more often than not they don’t have a structured solution, but rather previous experience in the problem domain that they can apply to build custom software – or customize existing software – that solves a specific business problem. Cloud-based solutions, however, take existing experience and apply a degree of standardization in order to build a one-size-fits-as-many-as-possible offering that still retains some flexibility.

Unlike custom-built solutions, they bring the benefits of cloud computing to common business problems, offering transparent scalability, the possibility of cost optimizations, and a pay-as-you-go, operational expenses-focused business model. They also remove from the equation the complexity of a long running IT project. Unlike a custom-built solution that needs to go through a development process, cloud solutions are supposed to be “ready to go” from the start.

The first of these cloud-based solutions are obviously going to be focused on traditional Internet-related problems (such as search or content distribution), because these are the areas where most of the cloud providers have experience, and where there is a more immediate market potential. I think, however, that it won’t be long before we start seeing more “general” solutions being offered in the market. This is just another area of the IT market that is about to be changed by cloud computing.