There is a tendency in the technology world to assume we should use the latest innovation to solve all problems. We often express this by paraphrasing the law of Maslow's Hammer: "If you are holding a hammer, every problem looks like a nail." Cloud computing is no exception; everything is going to the cloud -- or so we are told.
To follow the metaphor, whichever piece of the cloud the vendor has provided becomes the hammer, and all of a company's workloads and applications become the nails. The question is which distribution model -- IaaS, PaaS or SaaS -- is right for your needs.
Software as a Service (SaaS) is the classic "make versus buy" decision; if you can buy a service that meets the majority of your needs then that is the most economical flavor of cloud. But don't let the fear of building an application push you into buying something that does not fit your business needs. Your business processes are your fundamental differentiators in the market, so don't compromise them to fit an off-the-shelf option.
If after evaluating off-the-shelf options you decide your needs are best met with a custom-built application, the next step is to determine if you need the cloud. Is your problem a problem of scale? If not, there may be more economical ways of solving it. If so, cloud is the best option, as long as the government or some other external agency doesn't create regulatory or compliance issues that stand in your way.
Having concluded that the cloud is the best approach for your custom-built application, conventional wisdom from cloud vendors presents you with a false dichotomy: You must choose Platform as a Service (PaaS) or Infrastructure as a Service (IaaS). It's clear why cloud vendors would present this choice, but if we look closely, we see that for customers it does not hold up.
Of the three scaling scenarios -- transactions, data and geography -- you can immediately factor out data and geography, as the storage capabilities of PaaS offerings are either identical to Google App Engine or Windows Azure or reliant on Heroku, Cloudbees, etc. -- the IaaS layer. Also, geographic distribution is fundamental to cloud services. The choice needs to be made on the execution resources, which is consistent with this being a software application implementation.
But PaaS offerings like Windows Azure do have a value trade. The developer gains freedom from low-value administrative functions and gives up some fine-grained control of the environment. A PaaS developer works within an environment that is defined by the service. While a product may have involved a change to the underlying environment, that approach is not available in PaaS. The economic value of PaaS comes from not having to create infrastructure images during the design phase and therefore not having to maintain them in production.
With an open mind, PaaS can fully meet the needs of most cloud applications. However, there are scenarios in which running an app in PaaS is just too convoluted to make practical sense. For these scenarios, IaaS generally fills the need. This decision must be made very carefully though, because there is a definite economic impact. In effect it offers the opposite value trade: The developer gains fine-grained control of the environment in exchange for accepting the responsibility for building and managing the environment. That responsibility comes with time-to-market implications at design time and ongoing cost in the maintenance and operations realm.
So how much PaaS is right? To paraphrase Einstein: You should use as much PaaS as possible, but no more.
About the author:
Mark Eisenberg has been doing mobile app development since 2005. He joined the nascent Windows Azure sales team at Microsoft despite being an early cloud skeptic. Now, after embracing the cloud and its technological potential, he combines cloud and mobile expertise with his technological background to help clients realize real value from their technology investments. Mark is also a seasoned business development professional with more than 20 years of experience. He started his career in software development and has since maintained his technology edge, most recently adding cross-platform mobile development skills. His sales career began when he joined Intel's channel and has included positions at other communications-focused firms prior to Microsoft.