Last month I happened across this amusing, and ironic, poem describing the dichotomy that exists in trying to define cloud computing. Go ahead and read it, I'll wait, it's worth the time. Seriously.

I am not going to define cloud computing again. I've done that already and the point of this discussion is not what is cloud computing but rather how the cloud is beginning to separate into distinct models, each serving a different set of needs. The common theme between these models is "as a service". Some "thing" traditionally relegated to the local IT data center is being offered in the cloud, as a service. The list is growing, but it appears that we'll likely end up with three service models for the cloud: software, infrastructure, and platforms.


Software as a Service (SaaS) was pioneered and proven as a successful model by, and has since been duplicated successfully by myriad other vendors. The SaaS model works on the assumption that all enterprises need is the ability to customize and integrate software (which is, for the most part, true of a wide variety of software offerings) and need not (a) reinvent the wheel or (b) worry about the actual implementation/deployment details.

SaaS is a good choice when:

  • You need software to support common business processes like customer relationship management
  • You need some customization but it is primarily at the data level and not at the application logic level
  • The software in question needs to support a geographically diverse pool of employees


Platform as a Service (PaaS) is a somewhat emerging concept that is gaining traction for several reasons. PaaS is based on the premise that you want or need a development and deployment platform in the cloud and are willing to essentially outsource the platform to a cloud computing provider because you want to ultimately deploy the application you are developing in the cloud. PaaS moves the development and deployment platform "into the cloud". For a good example of a PaaS, check out Bungee or Google App Engine

PaaS is a good choice when:

  • You want to deploy an application into the cloud but aren't interested in dealing with a virtualized infrastructure
  • You want to try out an application to test adoption or interest but don't have the budget to invest in the necessary infrastructure
  • You would otherwise build a departmental level applications that would traditionally be served from an unmanaged server hiding under someone's desk
  • You're a startup whose offering will be a web based application


Lastly, we have Infrastructure as a Service (IaaS). IaaS is what most people think of when they hear the term "cloud computing". This model essentially leases out infrastructure resources on which applications are deployed. The applications are then able to scale up and down as necessary, on-demand, using the provider's infrastructure - saving the organization a lot of capital expenditures and operating expenses in acquiring, deploying, configuring, and managing the infrastructure.

IaaS often takes the form of virtualized computing environments, leveraging virtual images to alleviate the typical problems associated with remote hosting of applications in aligning operating systems, application servers, hardware, and other application specific details with the needs of the customer. Virtualized computing environments allow the customer to configure and deploy the application in a virtual image locally and then execute it within a remote environment without worrying about the underlying server and network infrastructure.

BlueLock and Amazon EC2 are good examples of IaaS providers.

IaaS is a good choice when:

  • You need a second data center for disaster recovery only but the investment in land, building, and infrastructure is too costly
  • You have a need for seasonal capacity but the revenue generated during those times would be diluted or erased by investing in the infrastructure to support the rushes
  • You want to leverage geographical based global load balancing to better serve international visitors but wish to avoid the investment in multiple data centers or hassle of co-locating servers around the globe
  • You want to use the cloud to host bandwidth or storage intense resources (video, images) and integrate them with your applications to offset the cost of more bandwidth or a new storage infrastructure.



Yes, cloud computing is very much part of the buzzword bingo game today (I failed to win, as you can see, but I'll try harder next time), but there are real benefits and valid reasons for looking into it right now. Don't let the hype surrounding cloud computing distract you from the potential benefits, but don't drink the kool aid too deeply, either, and commit to a model that isn't a good fit for you and your needs.


Follow me on Twitter View Lori's profile on SlideShare AddThis Feed Button Bookmark and Share