Monday 4 October 2010

Go cloud – An ISV perspective…Part 1 – SaaS

Typically as the name suggests, an ISV (Independent Software Vendor) could be one of the following:

A) Traditional Software Product companies: Companies who build and sell software products

B) Web based Software companies offering their products as “Services” typically known as SaaS companies

C) Software intensive companies offering services to a market using a software. The main business of such companies is not to sell Software or even SaaS but to “use” them as their tool to sell their services. A typical example of such a company would be one providing “subscription based” clinical information, or a subscription based access to a vast patent database and so on. In such cases, they do not sell software or service instead they sell “information” using a software.

D) A start-up company who intends to become one of the above three.

For the purpose of the article and for ease of reference, let us refer the above as – A-type ISV, B-Type ISV , C-Type ISV or D-Type ISV respectively.

This article is an attempt to provide a clarity to these ISVs as to which of the cloud services they need / should / may need to consider to embark on for the success of their business.

As briefly explained in my previous article, there are three different aspects to cloud computing i.e.– SaaS (Software as a Service), IaaS (Infrastructure As a Service) & PaaS (Platform as a Service). If you are a B-Type ISV,  then I am sure you do not need any more explanation of what SaaS is. Also if you are C-Type ISV then too, you may not be too interested in SaaS as selling software isn’t the main business you are in to. But may be you wish to know more on these other aspects such as PaaS & IaaS.

So this is an attempt from me to put few points across to provide a clarity to all the ISVs out there.

SaaS

If you are A-Type ISV, embarking the SaaS route may be an option for various reasons. It is all about entering a new spectrum of market with a complete new spectrum of operational differences as compared to the on-premise sale model. This new deployment and licensing model fundamentally changes the business model of an ISV, impacting many parts of the organisation – marketing, the sales force, presales engineering, deployment, support, finance, and product engineering and maintenance.  It is no longer just sell a license, ship a copy of the product and provide support for an annual support contract. For your customers, your product (or service) is now an OpEx cost and no longer a CapEx cost.

These are the few  fundamental questions an ISV should ask themselves

- Are there a large proportion of potential customers who do not buy your product due a higher up-front CapEx (in short is your on premise product expensive)?

- With your current product are you able to cater to all sizes of customers – i.e. Small, Medium, Large?

- Are you into selling a software solution which customers may only want to buy after they try it out?

- Would you like to add to your customer list, a mass volume of small customers over and above your existing amount of medium & large customers?

All the above questions are attractive reasons for an ISV to move to a SaaS based delivery model. But as mentioned earlier this impacts fundamentally all parts of the organisation right from presales to support, marketing to maintenance, product development to deployment.  If you are a successful A-type ISV, and if your potential target market is reachable with your current offering, then there is no need for you to take the SaaS route. No one would suggest to get away with the current on-premise model and embrace the SaaS way of delivery (if you are already successful). But providing SaaS based delivery as one more option makes a huge sense to cater to many smaller potential customers.

In my next article I shall provide a detailed analysis of what it takes for an ISV to move to SaaS along with comparisons, pros and cons of this delivery model. As soon as this article is ready I shall change this text to point to that article for ease of reading.

Technically there are three ways of moving to / or extending your product to SaaS:

a) Using PaaS to build a new SaaS version of your product

b) “Extend” your product to enable it to be offered as SaaS

c) Completely re-architect a new SaaS version of your product

Option c) may be the best long term option but it is the most riskiest.

Option a) is the easiest option but in a long run may not be cost effective. (Details in my next blog).

Option b) could be a potential option to choose if the existing architecture is modular, flexile enough to accommodate a SaaS version of it too.

The below chart gives you a high level glimpse of your existing product architecture and whether it allows you to move to a SaaS based delivery too. It also states, what it takes for an existing product to move to be offered as a SaaS – depending upon the type of the product

Microsoft has categorised every SaaS based application in to 4 different maturity models. Please refer to this article from Microsoft for the definitions of these 4 maturity models for reference.

MM

Please note that the above chart should be only used as a reference for a faster way to get into SaaS from a traditional on-premise software and may not necessarily the best way to achieve the same.

An ISV should ideally start thinking over to offer their product offering as SaaS with choosing one of the 3 options above with Option C being the most complex and the most expensive one and Option A would be the more modern method and Option B would be a starting point to extend the existing investment on the on premise software.

Friday 1 October 2010

Cloud Clarity

For many, trying to understand the complexities of Cloud-based services can be like navigating through a minefield, particularly if you're an ISV looking to broaden your product offering.
With that said, here's a quick basic concepts of cloud services, which should help clear the muddy waters a little.

SaaS – Software As A Service

Software as a Service can be defined as "Software deployed as a hosted service and accessed over the Internet rather than a product deployed at the customer’s premises for each customer." This new deployment and licensing model fundamentally changes the business model of an ISV, impacting many parts of the organisation – marketing, the sales force, presales engineering, deployment, support, finance, and product engineering and maintenance.
In words of a common man, an on-premise software application is the one that a user / company purchases and installs on their own machine / server and use it internally to perform a specific operation. The best example of it would be products like Microsoft Word, Excel, Outlook, Exchange Server etc.. The same functionalities / operations are also available over the web, accessed via a Web browser. These are hosted, subscription based “services” which provide a user an option to NOT buy an on-premise software and instead use it as a on-demand service. Taking the same example as Microsoft Word, Excel, if one opts to use a SaaS based offering to meet this functionality, they may choose to subscribe to an offering provided by Google called Google Docs – (http://docs.google.com) or the Microsoft’s SaaS offering @ http://office.live.com/. Thus by using one of these two “services”, the need for installing a software like Microsoft Word, Excel on our local computers is vanished.
Here’s a list of few popular SaaS offerings:
1) Salesforce.com – A complete CRM Suite delivered as SaaS
2) Office Live & Google Apps – Office productivity software delivered as SaaS
3) Microsoft Exchange Online – Email Server Software provided as SaaS for companies who do not wish to host their own Email servers for providing their employee email addresses
4) fourthhospitality.com – Complete Back Office System and ERP for Hospitality industry such as Hotels, Pubs, Restaurants delivered as SaaS
If you are an ISV and you have existing on-premise software that provides a specific business functionality, it is wise to consider providing a SaaS version of your software too.
If you are an end user or a company, thinking of buying a software to perform a specific set of business functionalities, you could potentially think of subscribing to a SaaS based offering as they provide many business advantages compared to on-premise software counterparts
 

IaaS – Infrastructure As A Service

IAAS is essentially delivery of computer infrastructure (typically a platform virtualization environment) as a service. Rather than purchasing servers, operating systems, software, data centre space or network equipment, there is an option to instead buy / rent these resources as a fully outsourced service.
One such example of this service is the Amazon Web Services – EC2 (Elastic Compute Cluster)
With a  “pay-per-use” subscription model, these facilities are really very useful especially for trying out infrastructures.
Here are a few characteristics / advantages of using IaaS:
1) No Capital Expenditure
There is no need to buy any servers upfront as one can rent it thus saving a huge Capital Expenditure.
2) Pay-Per-Use
There is no need to pay for your ‘idle’ resources. IaaS is based on a pay-per-use model. So you pay only for the running server instances. Once done with the usage one can simply ‘switch –off’ the server. This adds to cost-effectiveness.
3) Off the shelf Server Instances
There is no need for formatting  servers or installing operating systems. One can choose the server instance based on configuration required at the click of a button. IaaS providers such as ‘Amazon’ provides quite a few ready made instances of popular Server OS known as ‘Amazon Machine Image’(AMI) thus providing a significant gain for provisioning servers to not days but minutes.
4) On–Demand Scalable Model
IaaS provides an ability to kick-start given number of server instances at a click of a button.
There are lot many more benefits in using IaaS over traditional usage of on-premise servers. I would have a separate blog on IaaS to cover all of it shortly
 

PaaS – Platform As A Service

PaaS is a delivery computing platform and solution stack provided as a service. It facilitates development and deployment of applications without the cost and complexity of buying and managing the underlying hardware and software layers. It provides the facilities required to support the complete lifecycle of building and delivering web applications and services and can also be deployed on the servers provided by the Platform providers.
The following are the three known PaaS providers:
1) Force.com
.Force.com is a Application development & deployment platform provided by Salesforce.com. It provides most used application layers as API which can be used by developers / companies to build applications that can run on cloud.
2) Google App Engine
Google App Engine provides APIs to build and host web apps on the same systems that power Google applications. App Engine offers fast development and deployment with no need to worry about hardware, patches or backups and effortless scalability.
3) Microsoft Azure
Windows Azure is a flexible computing platform provided by Microsoft to build and deploy applications on the cloud. It provides three separate platforms which can either be individually or collectively used to build software solutions:
a) Windows Azure – A platform and a set of APIs to utilise operating system services in the cloud. Windows Azure is an operating system that serves as the development, service hosting and service management environment for the entire Windows Azure platform. It provides developers with on-demand compute and storage to host, scale, and manage web applications on the internet hosted at the Microsoft datacentres.
b) SQL Azure – Hosted version of SQL Server exclusively developed and optimised for providing database functionality to applications developed and deployed on Azure platform. It provides rich set of APIs to build a database for cloud applications.
c) Windows Azure App Fabric – A set of Services provided by Microsoft to bridge the gap between the Windows Azure platform and SQL Azure to build effective clouds solutions. These services include a robust Service bus, Access control, Caching and so on. The goal of Service Bus is to make this simpler by letting an application expose endpoints that can be accessed by other applications, whether on-premises or in the cloud.
The idea of this particular article was to provide the first step to clear the muddy water. There are more cloud service providers than mentioned above. The names provided are only known examples and not the complete list.
I intend to expand more on the above mentioned points on to separate blogs very soon.