App Dev in the cloud. What is the benefit?
May 6, 2009 Leave a comment
Taking a bit of a detour from Azure implementation examples into general cloud concepts territory this time. Don’t worry, I’ll be back in the thick of it soon enough.
Several weeks ago I had a coworker I respect highly ask me what appeared to be a simple question. Why would someone already subscribing to one or more SaaS offerings (such as say Microsoft’s SharePoint Online) want to consider Microsoft’s Azure Services? Seems simple until I really started to try and focus on what the concrete benefits would be to such a decision. How would I talk to that companies EIO’s and make the case for doing app development in the cloud.
Then yesterday I attended a webinar given by RightScale. I joined this webinar because my employer’s parent company, Cap Gemini, recently signed a partnership agreement with RightScale. With this news I wanted to learn more about what Rightscale was about. The hour long session was worthwhile. The focus was obviously on Amazon’s cloud offering, but there was still plenty of food for thought. In fact, there are two key items I left with that I hadn’t heard put quite so well before.
There are three types of cloud computing infrastructures:
- Public Clouds – on the internet, built for multi-tenant, subscriber based solution offerings
- Private Clouds – internal systems, built within an enterprise’s existing datacenters
- Hybrid Clouds – a mix of the two previous types
The second idea was one I’ve seen before in various Microsoft slide-decks and have even spoken to others about myself. But recently I had let the topic languish a bit as I focused more on learning the ins and outs of Microsoft’s Azure Services. This concept is about the types of cloud offerings:
- SaaS – software as a service. complete solution offerings delivered via subscription from the cloud
- PaaS – platform as a service. Putting operating systems in the cloud for you to put your own applications on
- IaaS – infrastructure as a service. Cloud based management of either an internal or external infrastructure
Course, these two concepts probably fall into the ‘well duh’ category for most folks working in the cloud computing space. However, I know at least from personal experience that its pretty easy to get lost in whichever solution you’re looking at most closely. And understanding what these terms mean and how they relate to your needs can prove to be helpful when sizing up possible solutions.
Back to topic, how does something like Microsoft’s Azure Services (a PaaS) benefit someone that is already consuming one or more SaaS solutions.
Well the obvious answer is that Azure Services are a PaaS and not a SaaS. When consuming a SaaS that resides in a public cloud, you’re consuming a specific product with its (usually limited) options for customization and extension. When you hit those limits, your options for further extension or integration between that off-premise solution and any other item are limited. To extend that offering the service consumer either has to tie it to to their existing infrastructure likely through the implementation of an on-premise custom or packaged solution. The challenge with this is how to maintain the benefits your organization received when it made the decision to use a off-premise SaaS offering. If you moved to the cloud to gain scalability, you need to make sure your on-premise extension is equally scalable.
Another factor to consider is that the decision to consume a SaaS solution may have been driven by a simple desire to reduce the capital expenditure of implementation. Your organization may have been incapable (due to resources or costs) of building out the infrastructure to support the solution themselves. Or perhaps they were simply unwilling to given the cost savings of leveraging an off-premise solution. Regardless of the scenario, building an on-premise extension to the SaaS product will likely pose the same challenges.
So the ideal solution is to try and leverage either a private or public cloud. Unless you’re a sufficiently large organization, you likely do not have the capacity to build and manage your own private cloud. So in the vast majority of cases, you will want to look at leveraging a public cloud offering.
Its possible at this point that there may already be another SaaS offering that you can couple with your existing solution to extend it. There are many complimentary solution offerings available and “mash-ups” like this are becoming more and more common. However, if you’re stuck with having to build your solution and you still want to realize the benefits of the cloud that pushed you there in the first place, you need an application development platform that also resides in the cloud. You want a robust PaaS. Microsoft Azure Services could be that platform.
This is where the arguments we’re used to seeing about which platform is best come into play. I’ve already gone there briefly in the past and its not really the point of this posting. So lets skip that for now. I will say that regardless of which PaaS you select, the goal should be to meet the same business needs of your organization that justified the move to the cloud in the first place. That, IMHO, is why an organization that is already consuming a SaaS offering should really consider what PaaS and IaaS have to offer.