Cloud is a promise, rain is the fulfillment!

April 6, 2008 – 7:34 pm

Though, I would like to stay away from primers, I want to explain what my own understanding of some of the terms that I will use regularly on this blog. I will try to write this in as simple non-technical English as I can.

Let’s start with SaaS, Software as a Service. SaaS as the name suggests is a delivery model to provide software as paid service. The software is not installed on your own machines, but the vendor provides the complete package as hosted solution including the infrastructure. The software vendor may in turn rely on hosting providers who manage their server farms, provide disaster recovery, load balancing, mirroring and other infrastructure needs, but the end user does not have to be concerned with this. The end user is mostly interested in functionality, costs per user, uptime, associated SLAs, ability to integrate data with other systems etc. The customer pays for the software on a subscription basis. The poster child for this is Marc Benioff’s salesforce.com.

In general under SaaS, the software delivered is multi-tenant model, as in multiple customers can use it with the clear understanding that one customer will not be able to access another customer’s data. Multi-tenant is not the same as virtualization, a misconception spread by even the gurus in this world. Virtualization is the ability to slice hardware to represent multiple virtual machines (VM). So for example, a high end Sun server can be sliced into 10 different virtual servers. Each VM then represents a server. One VM may host the SQL database on one virtual machine and a web server on another etc.

Providing computing resources including software, storage or hardware as subscription based service is utility computing. The key difference here is utility computing is not limited to software. It could be any form of computing resources. The mainframes providing time-sharing was earliest form of utility computing. Any ISP renting disk space to store backups is another simplest example.

On-demand software is synonymous with SaaS and On-demand computing is synonymous with utility computing. It is opposite to on-premise where you purchase the software/hardware and deploy it on your own servers/networks.

Now coming to cloud computing. There has long been the dissociation of physical infrastructure and software application design. Cloud computing takes this a few steps further where designers and users need not be concerned with how the different computing resources and services that are combined in an application or service are coming from. For example, Amazon S3 is providing storage space to many applications including Basecamp.

Even though we generally talk of external services such as Amazon, clouds could also be internal. Many IT departments have been functioning in this way for a long time. A simple example is having a centralized group to manage all SQL DB resources. The DB group within IT provides an SLA based service to all other groups where developers from can request DB resources for development, testing, staging and production environments. They work with the DB group getting sizing information based on their logical models, number of users and growth expectations.

There are a number of other concepts that come into picture with cloud computing including business services management [BSM] where your business and IT services may reside in or outside of your enterprise boundaries, business process management [BPM] where the services orchestrated may be provided by multiple vendors or internal resources. Enterprise IT architecture will now need to go way beyond the enterprise.

Does this give a sense of impact of cloud computing? The promises are many but fulfillment of this on the way. Reminds me of an old Arabic saying, cloud is a promise, rain is the fulfillment.

  1. 2 Responses to “Cloud is a promise, rain is the fulfillment!”

  2. Questions that have always confused me:

    (Maybe these are good candidates for future posts since a lot of folks I know have gone through the same confusion).

    Question 1 –

    I’m particularly confused between marketing buzz-words and their differences. What’s SAAS and what’s ASP and what’s the key practical differentiating factor? What are some famous SAAS sites out there and what are some famous ASP sites out there and how are they different.

    (Wikipedia offers some help here - http://en.wikipedia.org/wiki/Software_as_a_Service - but I think it lacks explanation with real life examples).

    Question 2 –
    >Multi-tenant is not the same as virtualization, a misconception spread by even the gurus in this world. Virtualization is the ability to slice hardware to represent multiple virtual machines.

    Yes, but Virtualization can be SAAS’ed right? So If I bought a virtual server from Go-Daddy would you refer to it as SAAS or ASP?

    Question 3-

    > Providing computing resources including software, storage or hardware as subscription based service is utility computing

    When I register for a free Gmail account is that SAAS too? Isn’t Gmail providing software, storage and hardware for it in return of my subscription (in Google Apps or free in Gmail). Would you also call it utility computing?

    From your post it appears like SAAS is really a sub-set of utility computing. Did I understand that correctly?

    If yes, what’s an example of SAAS that’s not utility computing?

    And now some questions which makes me take words like SAAS, Utility Computing, Grid computing and others with a pinch of salt:

    1. If the click here to register for a Web-application is SAAS that’s been around for years, right? Why are we suddenly giving them these fancy names and talking about them?

    2. I was building web-applications that had a client-id column in a database somewhere; I’ll continue to build web-applications with a client-id column in a database somewhere, which I will now call SAAS and everyone will get excited. Is that really what SAAS is all about or is there something that we really need to learn and pickup as developers. Something that we might be missing out on. As a developer; are there additional concepts I should know or care to learn?

    By rp on Apr 13, 2008

  3. RP,

    Thanks for you comments and questions. Yes, marketing as usual has created a lot of buzz word and left us regular folks to figure things out. I will try to answer your questions and yes, will try my best in future to put my own understanding here.

    1. ASP is old news. The main difference as I understand is that ASP could be any software that is hosted on someone’s else infrastructure. The concept of multitenant was not important for a ASP. Each client could be installed on a separate set of servers. Most of the time, the domain would be specific to the client, for example company1.aspname.com or company2.aspname.com

    SaaS is purely multitenant. Another great example which you are familiar with is Zimbra. Zimbra is providing a replacement of traditional email servers installed and maintained by enterprises.

    2. Neither. You are renting a virtual server from go-daddy. A Server is a blank canvass for you to draw your masterpiece. This comes more under Utility computing, IMHO.

    3. Gmail is a application, so I would put that under SaaS and yes, SaaS is a subset of Utility. IMHO again.

    And as per your final, 1, 2 comments, yes, SaaS is just a fancy name.

    Having a client_id is a great start but does not make an application ready to provided to multiple clients. I am sure you would agree with me on that.

    The excitment around SaaS is more in the economic implications and how it will change the enteprise computing. I remember when big companies stayed away from salesforce, but now I am surprised many are not just using but also integrating with some of their internal applications. As this gets adopted I am sure other enterprise software that are not truly part of an organization’s true competitive advantage will also go the SaaS way.

    By Shakeel Rashed on Apr 14, 2008

Post a Comment