Comparing SOA mistakes to Cloud Computing

Are enterprises at risk of making the same mistakes with Cloud Computing that they made with SOA? Funny enough, the answer could easily be yes.

Here is why (in no particular order)

Common SOA Mistake: Don’t involve the business; they will not get it
With Cloud Computing, you easily run the risk of this. Leveraging Cloud Computing must involve the business and that too early. You need the business to understand the adoption model, benefits, cost and risk. Their buy-in will be critical to the overall planning, execution and ultimate success or failure of your initiatives.


Common SOA Mistake: It is an Enterprise effort and will be a huge project
Many SOA projects failed because they were pitched or executed as a multi-year, multi-million project. Let’s not repeat that with Cloud Computing. For example, the goal of your first Cloud Computing project should not be to move your entire data center to the cloud. I think you get what I am saying – Cloud Computing should be adopted strategically, in small bits to start with. Cloud Computing is just another project… one of many in your project portfolio!

Common SOA Mistake: A single vendor or product for maximum simplicity and interoperability
In Cloud Computing, you should not restrict yourself to one vendor. Of course, you need to understand how multiple vendors will talk to each other – integrations, reporting, security etc. However, definitely adopt a multi-vendor strategy.

Common SOA Mistake: Governance is either too little or too much
I believe some Enterprises got into analysis-paralysis and over engineered their Governance policies for SOA. In other cases; they left it for later. Getting governance right and at the right level is critical to a successful Cloud Computing strategy.

We could explore this further and site a few more examples…  it would be interesting and probably equally applicable to the Software-As-A-Service (SaaS) world if you treat SaaS as a sub-set of overall world of Cloud Computing.

TwitterFacebookDiggDeliciousLinkedInGoogle ReaderTechnorati FavoritesGoogle GmailPlaxo PulseHotmailStumbleUponYahoo BookmarksWordPressAsk.com MyStuffBeboShare
Posted in Cloud Computing, SaaS, Service Oriented Architecture | Tagged , , | Comments Off

Maturity Model for SaaS

I am big on using the Maturity Model concept to evaluate the architecture, process and deployment maturity. In the case of Software As A Service, a simple 4 step maturity model can be defined that would demonstrate how a SaaS vendor should consider building their product and how they can be assessed from a technical maturity and viability stand point.

I will describe the Maturity Model based on the Anatomy of SaaS application posting I did a while back. In that note, I described how a typical SaaS architecture would look like. We can use the same architectural elements to describe the Maturity Model for a SaaS application.

Level 1: Adhoc SaaS architecture

This is a simple model to follow and is probably how many SaaS vendors actually started off. The product is deployed in a “cut and paste” fashion for each customer. Thus each customer has their own dedicated instance of the software. This model obviously has drawbacks, but it also does have certain benefits. You cannot beat this model in terms of control and security. However these come with the price of scalability, maintainability, upgradability and several of the other common “ility” factors.

Level 2: Shared Core Functions


In this level of maturity, we are starting to see some of the reusability that becomes the real value of a SaaS solution. Software, process and design is re-used in terms of the “Core Functionality” of the SaaS product. This not only helps in the technical architecture maturity, but plays a huge role in the standardization of business processes and thus the overall business maturity is increased and cost avoided of having to support multiple, isolated business processes or functions.

If I were to gamble, I would bet that many SaaS vendors are inherently in this level of maturity. This does provide some basic level of re-use and addresses some of the drawbacks of Level 1. However, we can do better. Let’s look at Level 3 and 4.

Level 3: Multi-tenant and Configurable


This to me is a stepping stone level of maturity. It addresses some key drawbacks of Level 1 and 2, but really provides a path to Level 4. In this level of maturity, we achieve real multi-tenancy and configurability. The client specific tenants are typically only hosting code specific to a client and the configuration settings (generally XML or database driven) for a client. To the extent possible, we work in a true and complete multi-tenant fashion. This allows us to realize the core benefits of SaaS in terms of scalability, re-use, upgradability etc. When you read Level 4, you will see how Level 3 is a stepping stone to it.

However, it is important to realize that getting from Level 2 to Level 3 is probably where the most time and money will and should be spent by a SaaS vendor. As I am really a gambler by nature, I would bet that the most successful SaaS products would be somewhere between Level 2 and 3, probably closer to Level 3 or have concrete plans to get closer to Level 3.

Level 4: Multi-Tenant-Efficient


Level 4, the final level in this 4 step maturity model is often defined as Nirvana in other maturity models. With respect to SaaS, I am focusing on the true multi-tenancy of a SaaS solution as being the definition of this level. It looks a lot like Level 3, with a Tenant Load Balancer thrown in. This effectively means that there are no client specific tenants. Even the client specific configuration, client specific code etc that were in client specific tenants with Level 3, now are residing on shared tenants and are invoked on demand. The tenant load balancer, creates virtual client specific tenants on demand, as close to session-scope as possible (now we are talking Nirvana). However, it would be good enough if the load balancer is able to create and manage to virtual client specific tenants that can scale and grow based on demand and forecasting of demand from a client.
This was a very high level overview of a maturity model for SaaS. Subsequent blog postings will drill into some more details.

TwitterFacebookDiggDeliciousLinkedInGoogle ReaderTechnorati FavoritesGoogle GmailPlaxo PulseHotmailStumbleUponYahoo BookmarksWordPressAsk.com MyStuffBeboShare
Posted in Cloud Computing, SaaS | Tagged , , | 1 Comment

“SaaS” is just another buzz word

I recently read a blog posting by Don Fornes titled “The Software as a Service Dilemma” at http://www.softwareadvice.com/articles/uncategorized/the-software-as-a-service-dilemma-104071/. Don has made some very interesting obsverations (not all that I agree with), however they provide a lot of insights into your thought process behind SaaS based software.

I think it is interesting to point out that a lot of traditional web applications can really be classified as SaaS applications; even though you might never think of them that way. Let’s take monster.com as an example. In the last several years, you have probably not heard of monster.com as a SaaS application. However, think about it. Why can’t a system like monster.com be classified as SaaS?

1. It is multi-tenant – multiple enterprises (job posters) and people like you and me (job seekers) use the same platform, over the web (browser based)

2. We don’t have to worry about upgrades etc and thus are not tied to their release cycles

3. We use subscription pricing (per job posting or per month etc)

4. The business can buy these services directly; without really involving an IT department

So think about it – monster.com clearly meets the basic definitions of SaaS. While using monster or other web applications for any domain – enterprises typically do not raise the same security and privacy concerns when they consider typical SaaS software.

So in this case; is this just a marketing exercise? If you agree with my line of argument, clearly we have been building “SaaS” software since the advent of web application programming – just not marketing it as such.

The same kinda happened with Service Oriented Architecture (SOA). The buzz words and sales pitches came on very strong – and parallels for SOA could be drawn to almost a decade before the word was coined. Now, since almost everyone agrees “SOA” as a buzz word is dead – the concepts, architectures and design patterns for SOA based software carry on. Thus is SaaS just another buzz word that is poised to die at some point – but the concepts carrying on for a long long time… ?

TwitterFacebookDiggDeliciousLinkedInGoogle ReaderTechnorati FavoritesGoogle GmailPlaxo PulseHotmailStumbleUponYahoo BookmarksWordPressAsk.com MyStuffBeboShare
Posted in Cloud Computing, SaaS | Tagged , , | Comments Off

Anatomy of a SAAS Application

Anatomy of a SaaS application

SaaS architectures are pretty basic. I thought I would write a few words too describe the basics of any SaaS application.

Obviously each SaaS application offers some Core Functionality or Services. This is the core on which a vendor is able to attract customers and earn money. For example – WorkDay is a SaaS vendor that offers HR functionality in the Cloud. The core HR capabilities would fall under the “Core Functionality” bucket.

The core capabilities are also extended by a set of Reporting Services, Identity Services and Integration Services. These are considered the minimum set of capabilities that a SaaS vendor would need to provide from an architectural perspective. Obviously the extent of features and functions provided in each module is based on the several different factors.

Beyond the core architecture, a SaaS application consists of N number on Add on Modules. These are collection of capabilities that clients can choose to buy or not buy. For example, in the HR example, Payroll or Benefits could be considered an Add on Module.

Additionally, a SaaS vendor could provide certain Configurable modules. These would allow customers to customize the capabilities in these modules or affect the capabilities of other modules. Examples of these could be specific modules for governance, compliance and audit.

Two pieces left.

Client Specific modules are modules that a SaaS vendor might choose to develop specifically for a client. The vision would be to build this for a client and later repurpose all or most of the code into an Add on Module or into the Core Functionality.

The last part of the simplified architecture is the 3rd Party Integrations. These are services that the SaaS vendor would write to integrate with external parties. An example in the HR world could be integrating with a Payroll provider to cut the checks, or integrating with a Fidelity like provider for 401K, or integrating with Blue Cross for insurance information.

This is clearly a simplified, non technical view – but will hopefully help describe the basics behind SaaS.

TwitterFacebookDiggDeliciousLinkedInGoogle ReaderTechnorati FavoritesGoogle GmailPlaxo PulseHotmailStumbleUponYahoo BookmarksWordPressAsk.com MyStuffBeboShare
Posted in Cloud Computing, SaaS | Tagged , , , | Comments Off

Multitenancy in the Cloud

I have (like many others) been part of several debates and conversations on why is multitenancy important for the cloud. Alok Misra posts an interesting article in Information World with a lot of valid reasons and certainly I agree with them.

http://www.informationweek.com/cloud-computing/blog/archives/2010/02/why_multitenanc.html?catid=cloud-computing

Here is what I have to add -

I was recently on a call with Oracle and talking through the multitenancy capabilities of a SaaS product that I am consulting for. In that conversation and another conversation with a prospective enterprise customer, one thing became very clear -

A typical enterprise customer does not care whether you SaaS solution is multitenant or not. Actually, they probably rather hear that it is not, thus reducing some of the typical data security and segregation concerns. Based on this first hand experience, I am changing my marketing pitch as follows:

1. To Analysts, VC’s etc – Pitch multitenancy – they care a lot and will not necassiarly consider you a  ”SaaS” solution unless you are multitenant.

2. To Enterprise Customers – Spend as close to 0 time in your sales pitch on multi-tenancy. Focus on the problem you are solving for them and how you will lower their costs; but not on multitenancy.

TwitterFacebookDiggDeliciousLinkedInGoogle ReaderTechnorati FavoritesGoogle GmailPlaxo PulseHotmailStumbleUponYahoo BookmarksWordPressAsk.com MyStuffBeboShare
Posted in Cloud Computing, SaaS | Tagged , , | Comments Off